Programmēšana

Jauna JVM valoda atšķiras no Scala, Clojure

Uz skatuves ir ieradusies cita JVM valoda - Haskela dialekts Eta, kas atkal koncentrējas uz funkcionālo programmēšanu.

Paredzēta mērogojamu sistēmu veidošanai, Eta ir ļoti tipizēta funkcionālā valoda. Tas ir līdzīgs Scala, JVM valodai, kas uzsver arī funkcionālo programmēšanu un mērogojamību, un Clojure, kas ir vēl viena funkcionāla JVM valoda.

Bet Eta izceļas no šādiem konkurentiem, jo ​​pēc noklusējuma tā ir nemainīga, tā izmanto slinku novērtējumu un tai ir ļoti spēcīga tipa sistēma, sacīja Eta dibinātājs Rahuls Muttineni, TypeLead, kas pārrauga valodu, CTO. Šī kombinācija pieļauj statiskas garantijas un kodolīgumu Scala vai Clojure vienkārši nav iespējams.

Pašlaik alfa laidiena versijā 0.0.5 Eta ir savietojama ar Java, ļaujot atkārtoti izmantot Java bibliotēkas Eta projektos un izmantot Eta moduļus Java. Spēcīga veida drošība ļauj izstrādātājiem pateikt kompilatoram vairāk informācijas par kodu, savukārt Eta nemainīgums palielina vienlaicīgumu.

Eta raksturo arī tīrību, kurā funkcijas izsaukšana ar vieniem un tiem pašiem argumentiem katru reizi dod vienādus rezultātus; funkciju definīcijas tiek uzskatītas par vienādojumiem, un aizvietojumus var veikt tāpat kā matemātikā. Eta atbalstītāji teica, ka tas atvieglo koda izpratni un novērš daudz kļūdu, kas raksturīgas imperatīvajās valodās. "Tīrība ļauj jums apstrādāt savu kodu kā matemātikas vienādojumus un padara to daudz vieglāk pamatotu par savu kodu, it īpaši vienlaicīguma un paralēlisma iestatījumos," sacīja Muttineni.

Eta pēc noklusējuma ir "slinks", kas nozīmē, ka dati paliek nenovērtēti, kamēr funkcijai nav jāredz iekšā. Tas ļauj izstrādātājiem programmēt, neuztraucoties par to, vai viņi ir veikuši vairāk aprēķinu, nekā bija nepieciešams. Izstrādātāji var arī rakstīt vairākkārtēju algoritmu vienā piegājienā. "Slinkums ļauj jums vairs neuztraukties par kārtību, kādā jūs rakstāt savus paziņojumus," sacīja Muttineni. "Vienkārši norādiet datu atkarības, definējot izteicienus un to attiecības savā starpā, un sastādītājs tos izpildīs pareizajā secībā un tikai tad, ja izteiksmes būs nepieciešamas."

Plāni prasa uzstādīt Eta ar vienlaicīgu izpildlaiku, interaktīvu REPL, metaprogrammēšanu, masveida paralēlismu un darījumu vienlaicīgumu. Tiek izstrādāts arī atbalsts Maven būvniecības pārvaldniekam un galvenajai bibliotēkai, kā arī katlu ģenerēšana Java ārējo funkciju interfeisa importēšanai.

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