Programavimas

Nauja JVM kalba skiriasi nuo „Scala“, „Clojure“

Į sceną atvyko dar viena JVM kalba - Haskellio dialektas Eta, vėl orientuotas į funkcinį programavimą.

„Eta“ yra suprojektuota funkcinė kalba, skirta kurti keičiamo dydžio sistemas. Tai panašu į „Scala“, JVM kalbą, kuri taip pat pabrėžia funkcinį programavimą ir mastelį, ir „Clojure“, dar vieną funkcinę JVM kalbą.

Tačiau Eta išsiskiria iš tokių konkurentų, nes pagal numatytuosius nustatymus ji yra nekintama, ji naudojasi tingiu vertinimu ir turi labai galingą tipo sistemą, sakė „Eta“ įkūrėjas Rahulas Muttineni, „TypeLead“, prižiūrinčios kalbą, vadovas. Šis derinys suteikia statines garantijas ir glaustumą „Scala“ ar „Clojure“ paprasčiausiai neįmanoma.

Šiuo metu naudojant alfa versijos versiją 0.0.5, „Eta“ yra suderinama su „Java“, leidžianti pakartotinai naudoti „Java“ bibliotekas „Eta“ projektuose ir naudoti „Eta“ modulius „Java“. Dėl stipraus tipo saugumo kūrėjai gali pasakyti kompiliatoriui daugiau informacijos apie kodą, o „Eta“ nekintamumas padidina sutapimą.

Eta taip pat pasižymi grynumu, kai iškvietus funkciją su tais pačiais argumentais, kaskart gaunami tie patys rezultatai; funkcijų apibrėžimai traktuojami kaip lygtys, o pakaitalus galima atlikti kaip matematikoje. „Eta“ šalininkai teigė, kad taip lengviau suprasti kodą ir užkirsti kelią daugybei klaidų, būdingų imperatyvioms kalboms. „Grynumas leidžia jums traktuoti savo kodą kaip matematikos lygtis ir daug lengviau apsvarstyti kodą, ypač lygiagretumo ir lygiagretumo nustatymuose“, - sakė Muttineni.

Eta yra „tingus pagal numatytuosius nustatymus“, o tai reiškia, kad duomenys lieka neįvertintos būsenos tol, kol funkciją reikia pamatyti viduje. Tai leidžia kūrėjams programuoti nesijaudinant, ar jie atliko daugiau skaičiavimų, nei buvo reikalaujama. Kūrėjai taip pat gali rašyti daugkartinius algoritmus vienu leidimu. „Tingumas leidžia nebesijaudinti dėl savo pareiškimų rašymo tvarkos“, - sakė Muttineni. "Tiesiog nurodykite duomenų priklausomybes, apibrėždami išraiškas ir jų santykius tarpusavyje, o kompiliatorius jas vykdys tinkama tvarka ir tik tada, jei jų reikės."

Planuose reikalaujama, kad Eta būtų suderinta vykdymo trukmė, interaktyvus REPL, metaprogramavimas, didelis paralelizmas ir sandorių sutapimas. Taip pat kuriama parama „Maven“ komponavimo vadybininkui ir pagrindinei bibliotekai, taip pat „Java“ užsienio funkcijų sąsajos importavimo katilų generavimas.

$config[zx-auto] not found$config[zx-overlay] not found