Programiranje

Novi jezik JVM se ločuje od Scale, Clojure

Na prizorišče je prispel še en jezik JVM, narečje Haskell Eta, ki se je spet osredotočil na funkcionalno programiranje.

Eta je namenjen izdelavi razširljivih sistemov in je močno natipkan funkcionalni jezik. Podobno je Scala, jeziku JVM, ki poudarja tudi funkcionalno programiranje in razširljivost, in Clojure, drugemu funkcionalnemu jeziku na JVM.

Toda Eta se loči od takšnih konkurentov, ker je privzeto nespremenljiv, uporablja leno vrednotenje in ima zelo zmogljiv sistem tipov, je dejal ustanovitelj Ete Rahul Muttineni, tehnični direktor pri TypeLead, ki nadzira jezik. Ta kombinacija omogoča statična jamstva in jedrnatost v Scali ali Clojureju preprosto ni mogoča.

Trenutno je različica 0.0.5 v izdaji alfa različica Eta interoperabilna z Javo, kar omogoča ponovno uporabo knjižnic Java v projektih Eta in uporabo modulov Eta v Javi. Močna varnost tipa omogoča razvijalcem, da prevajalniku sporočijo več informacij o kodi, medtem ko nespremenljivost v Eti povečuje sočasnost.

Eta ima tudi čistost, pri kateri klicanje funkcije z enakimi argumenti daje vsakič enake rezultate; definicije funkcij se obravnavajo kot enačbe in zamenjave se lahko izvajajo kot pri matematiki. Eta zagovorniki so dejali, da to olajša razumevanje kode in preprečuje veliko napak, značilnih za nujne jezike. "Čistost vam omogoča, da svojo kodo obravnavate kot enačbe v matematiki, zato je veliko lažje razmišljati o svoji kodi, zlasti v nastavitvah sočasnosti in vzporednosti," je dejal Muttineni.

Eta je privzeto "lena", kar pomeni, da podatki ostanejo v neocenjenem stanju, dokler funkcija ne vidi znotraj. To omogoča razvijalcem program, ne da bi jih bilo treba skrbeti, ali so opravili več izračuna, kot je bilo potrebno. Razvijalci lahko v enem prehodu napišejo tudi večpasovne algoritme. "Lenoba vam omogoča, da vas neha skrbeti, v kakšnem vrstnem redu pišete svoje izjave," je dejal Muttineni. "Samo določite odvisnosti podatkov, tako da definirate izraze in njihove medsebojne odnose, in prevajalnik jih bo izvedel v pravem vrstnem redu in samo, če so izrazi potrebni."

Načrti zahtevajo prilagajanje Ete s sočasnim izvajanjem, interaktivnim REPL-om, metaprogramiranjem, množičnim vzporednostjo in transakcijsko sočasnostjo. V razvoju je tudi podpora za Maven manager in osnovno knjižnico, skupaj z generiranjem vzorcev za uvoz Java Function Interface Interface.

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