Programovanie

Nový jazyk JVM sa odlišuje od Scala, Clojure

Na scénu sa dostal ďalší jazyk JVM, dialekt Haskell Eta, ktorý sa opäť sústredil na funkčné programovanie.

Eta je určený na vytváranie škálovateľných systémov a je funkčným jazykom so silnými typmi. Je to podobné ako Scala, jazyk JVM, ktorý tiež zdôrazňuje funkčné programovanie a škálovateľnosť, a Clojure, ďalší funkčný jazyk na JVM.

Ale Eta sa od týchto konkurentov odlišuje, pretože je štandardne nemenná, používa lenivé hodnotenie a má veľmi výkonný systém typov, uviedol zakladateľ Eta Rahul Muttineni, CTO spoločnosti TypeLead, ktorá dohliada na jazyk. Táto kombinácia umožňuje statické záruky a stručnosť, ktoré v prípade Scala alebo Clojure jednoducho nie sú možné.

Momentálne vo verzii 0.0.5 vo vydaní alfa je Eta interoperabilná s Javou, čo umožňuje opätovné použitie knižníc Java v projektoch Eta a použitie Eta modulov v Jave. Silná bezpečnosť typu umožňuje vývojárom povedať kompilátorovi viac informácií o kóde, zatiaľ čo nemennosť v Eta zvyšuje súbežnosť.

Eta tiež ponúka čistotu, pri ktorej volanie funkcie s rovnakými argumentmi prináša zakaždým rovnaké výsledky; s definíciami funkcií sa zaobchádza ako s rovnicami a substitúcie je možné vykonávať ako v matematike. Navrhovatelia Eta tvrdia, že to uľahčuje pochopenie kódu a predchádza množstvu chýb typických pre imperatívne jazyky. „Čistota vám umožňuje v matematike zaobchádzať s vašim kódom ako s rovnicami a výrazne uľahčuje uvažovanie o vašom kóde, najmä v nastaveniach súbežnosti a paralelnosti,“ uviedol Muttineni.

Eta je v predvolenom nastavení „lenivá“, čo znamená, že údaje zostávajú v nevyhodnocovanom stave, kým nejaká funkcia potrebuje vidieť dovnútra. To umožňuje vývojárom programovať bez obáv z toho, či vykonali viac výpočtov, ako bolo potrebné. Vývojári tiež môžu napísať viacpriechodové algoritmy naraz. „Lenivosť vám umožňuje prestať sa obávať poradia, v ktorom píšete svoje vyhlásenia,“ uviedol Muttineni. „Stačí zadať dátové závislosti definovaním výrazov a ich vzájomných vzťahov a kompilátor ich vykoná v správnom poradí a iba v prípade, že sú výrazy potrebné.“

Plány volajú po vybavení Ety súčasným runtime, interaktívnym REPL, metaprogramovaním, masívnym paralelizmom a transakčnou súbežnosťou. Vo vývoji je tiež podpora pre správcu zostavenia Maven a hlavná knižnica spolu s generovaním štandardných platforiem pre import Java Foreign Function Interface.

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