Programování

Nový jazyk JVM stojí mimo Scala, Clojure

Na scénu dorazil další jazyk JVM, dialekt Haskell Eta, opět zaměřený na funkční programování.

Eta je určen pro vytváření škálovatelných systémů a je silně typizovaným funkčním jazykem. Je to podobné jako Scala, jazyk JVM, který také zdůrazňuje funkční programování a škálovatelnost, a Clojure, další funkční jazyk na JVM.

Ale Eta se od těchto konkurentů odlišuje, protože je ve výchozím nastavení neměnná, používá líné hodnocení a má velmi výkonný typový systém, uvedl zakladatel Ety Rahul Muttineni, technický ředitel společnosti TypeLead, který dohlíží na jazyk. Tato kombinace umožňuje statické záruky a stručnost, které ve Scala nebo Clojure prostě nejsou možné.

Aktuálně ve verzi 0.0.5 ve verzi alfa je Eta interoperabilní s Javou, což umožňuje opětovné použití knihoven Java v projektech Eta a použití modulů Eta v Javě. Silná bezpečnost typu umožňuje vývojářům sdělit kompilátoru více informací o kódu, zatímco neměnnost v Eta zvyšuje souběžnost.

Eta také obsahuje čistotu, ve které volání funkce se stejnými argumenty přináší pokaždé stejné výsledky; s definicemi funkcí se zachází jako s rovnicemi a substituce lze provádět jako v matematice. Navrhovatelé Eta uvedli, že to usnadňuje pochopení kódu a předchází mnoha chybám typickým pro imperativní jazyky. „Čistota vám umožňuje zacházet s vaším kódem jako s rovnicemi v matematice a výrazně usnadňuje uvažování o vašem kódu, zejména v nastavení souběžnosti a paralelismu,“ řekl Muttineni.

Eta je ve výchozím nastavení „líná“, což znamená, že data zůstanou v nevyhodnoceném stavu, dokud funkce potřebuje vidět dovnitř. To umožňuje vývojářům programovat, aniž by se museli obávat, zda provedli více výpočtů, než bylo požadováno. Vývojáři také mohou psát víceprůchodové algoritmy v jednom průchodu. „Lenost vám umožní přestat se starat o pořadí, ve kterém píšete svá prohlášení,“ řekl Muttineni. "Stačí zadat datové závislosti definováním výrazů a jejich vzájemných vztahů a kompilátor je provede ve správném pořadí a pouze v případě, že jsou výrazy potřeba."

Plány vyžadují přizpůsobení Eta souběžnému běhu, interaktivní REPL, metaprogramování, masivní paralelismus a transakční souběžnost. Podpora pro správce sestavení Maven a základní knihovna jsou také ve vývoji, spolu s generováním standardních desek pro import rozhraní Java Foreign Function Interface.

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