Programavimas

Be „Java“: programavimo kalbos JVM

Jei yra kokia nors kalba, kuri kūrėjams yra žinoma ir patikrinta, tai yra „Java“. Įmonių kūrėjai, interneto svetainių kūrėjai, mobiliųjų įrenginių kūrėjai ir daugelis kitų, be to, padarė „Java“ visur paplitusį ir prisidėjo prie didžiulės „Java“ palaikymo kultūros.

Negana to, „Java“ vykdymo laikas arba „Java Virtual Machine“ (JVM) tapo visa savo programinės įrangos ekosistema. Be „Java“, daugybė kitų kalbų panaudojo „Java“ virtualiąją mašiną, kad taptų galingais ir vertingais programinės įrangos kūrimo įrankiais.

JVM naudojimas kaip vykdymo laiką duoda daug privalumų. JVM buvo tobulinamas per kelis dešimtmečius, ir gerai jį naudojant galima pasiekti gerų rezultatų. JVM skirtingomis kalbomis parašytos programos gali dalytis bibliotekomis ir veikti tomis pačiomis duomenų struktūromis, o programuotojai naudojasi skirtingomis kalbos ypatybėmis.

Žemiau apžvelgiame keletą svarbiausių programavimo kalbų, sukurtų JVM. Nuo „Kotlin“ ir „Scala“ iki „Jython“ ir „JRuby“ šios kalbos siūlo paprastesnius ir lanksčius „Java“ papildymo būdus arba galingas alternatyvas, skirtas ją pakeisti.

Kotlinas

„JetBrains“ sukurtas 2010 m. Ir atidarytas 2012 m., „Kotlin“ yra glaustesnis ir saugesnis nei „Java“. Galite manyti, kad Kotlin yra „Java, bet paprasčiau“. Jo sintaksė yra mažiau išsami nei „Java“, ir ji dažnai kaupiama greičiau nei „Java“ kodas. „Kotlin“ taip pat leidžia naudoti funkcinius programavimo stilius, kurių šiuo metu nėra „Java“, ir yra saugesnių ir elegantiškesnių būdų, kaip tvarkyti nulines reikšmes. „Android“ kūrėjai vis dažniau renkasi „Kotlin“, o ne „Java“, kad kurtų programas šioje platformoje.

Ateities Kotlino planai viršija JVM. Vienas projektas apima Kotlin kompiliavimą į mašininį kodą naudojant LLVM sistemą.

Daugiau apie Kotliną rasite Martino Hellerio kalbos apžvalgoje.

Scala

Kaip ir „Kotlin“, „Scala“ buvo sukurta tam, kad „Java“ kūrėjai taptų našesni. „Scala“ sujungia funkcinį ir į objektą orientuotą programavimą ta pačia kalba, todėl funkcinė paradigma tampa prieinama ir naudinga „Java“ ekosistemos vartotojams. Be to, „Scala“ sintaksė sklinda arčiau „Java“ nei funkcinė alternatyva „Clojure“, kurios „Lisp“ tipo sintaksė gali nukrypti nuo nežinojimo. Funkcinių ir į objektą orientuotų paradigmų derinys yra didelė „Scala“ patrauklumo dalis.

Šiuo metu yra „Scala Native“, „Scala“ variantas, kuris LLVM būdu veikia už JVM ribų ant pliko metalo. Bet vis dar per anksti būti naudojama gamybai.

Clojure

Kūrėjas Richas Hickey norėjo sukurti funkcinę kalbą Lisp šeimoje, skirtą JVM, ir sukūrė „Clojure“, kad subraižytų šį niežėjimą. „Clojure“ tikslas - palengvinti tuo pačiu metu teikiamų didelio našumo programų, naudingų visur, kur veikia „Java“, rašymą, tačiau leidžiama naudoti kitokius programavimo stilių rinkinius, nei tradiciškai palaiko „Java“. Viena sėkmės istorija yra „Lėlių serveris“, kuris buvo perkeltas iš „Ruby“ į „Clojure“.

Groovy

Iš pradžių „Pivotal“ sukurtas, tačiau dabar „Apache“ programinės įrangos fondo valdomas „Groovy“ stipriai remiasi turima „Java“ patirtimi ir siūlo dinamiškų kalbų, tokių kaip „Python“ ir „Ruby“, įkvėptas funkcijas. „Groovy“ yra viena iš kalbų, kurią tiesiogiai palaiko populiarus „Jenkins“ nuolatinės integracijos serveris, ir kartu su ja sukurta viena pagrindinė žiniatinklio sistema „Grails“.

Ateities „Groovy“ versijos apims naujesnių „Java“ ir „JVM“ versijų funkcijas, pvz., „Java 8 lambda“ sintaksę.

Jython ir JRuby

„Jython“ ir „JRuby“ yra atitinkamai „Python“ ir „Ruby“ JVM diegimai. „Jython“ yra suderinamas su „Python“ 2.x filialu. „JRuby“ yra suderinamas su palyginti neseniai sukurtu „Ruby 2.3“. Abi dinamiškai kaupia „Java“ baitų kodą ir gali laisvai sąveikauti su kitomis JVM kalbomis, ypač „Java“.

Kitos JVM kalbos

  • Ceilonas: „Red Hat“ sukurtas Ceilonas buvo sukurtas siekiant išspręsti kai kurias „Java“ problemas, pvz., Jos daugialypiškumą ir ryšius su kai kuriais pagrindiniais JVM mechanizmais. Ceilonas gali būti sudarytas paleisti JVM, „Dart VM“ arba „Node.js“.
  • Frege: Funkcinės kalbos „Haskell“ JVM versija. „Frege“ kodas kaupiamas „Java“ klasei ir paprastai sąveikauja su „Java“, tačiau gali pasinaudoti Haskello stiliaus nekintamumu ir funkcinėmis paradigmomis.
  • Eta: Kitas „Haskell“ variantas JVM. Jo teigiamas pranašumas yra tai, kad jis gali naudoti paketus iš „Haskell“ paketų saugyklos „Hackage“, kad būtų maksimaliai suderinamas su „Haskell“ ekosistema.
  • Haxe: Haxe pateikia JVM kaip vieną iš daugelio galimų taikinių, įskaitant internetą, mobiliuosius įrenginius ir pliką metalą. Jo sintaksė primena „Java“ ir, jei reikia, sudarant JVM, ji gali sąveikauti su kitomis „Java“ bibliotekomis.
  • Fantomas: Kalba, kurioje įdiegti JVM ir .Net CLR, „Fantom“ teikia API, kurios pašalina abiejų platformų skirtumus. „Fantom“ taip pat galima sukompiliuoti naudojant „JavaScript“ ir teoriškai jis gali būti pritaikytas bet kokiam skaičiui kitų taikinių.