Programiranje

Beyond Java: Programski jeziki na JVM

Če obstaja jezik, ki je za razvijalce znana in preverjena količina, je to Java. Razvijalci za podjetja, spletni razvijalci, razvijalci mobilnih naprav in še mnogi drugi so Javo naredili vseprisotno in prispevali k množični kulturi podpore okoli Jave.

Še več, Java Runtime ali Java Virtual Machine (JVM) je postal svoj programski ekosistem. Poleg Jave je še veliko drugih jezikov izkoristilo Java Virtual Machine, da so postali močna in dragocena orodja za razvoj programske opreme.

Uporaba JVM kot izvajalnega okolja prinaša več prednosti. JVM je bil izpopolnjen v več desetletjih in lahko ob dobri uporabi doseže visoko zmogljivost. Aplikacije, napisane v različnih jezikih na JVM, si lahko delijo knjižnice in delujejo na istih podatkovnih strukturah, programerji pa izkoriščajo različne jezikovne funkcije.

Spodaj predstavljamo nekaj najpomembnejših programskih jezikov, ustvarjenih za JVM. Od Kotlina in Scale do Jythona in JRubyja ti jeziki ponujajo enostavnejše in prilagodljivejše načine za dopolnitev Jave ali zmogljive alternative, namenjene njeni zamenjavi.

Kotlin

Kotlin je leta 2010 ustvaril JetBrains, leta 2012 pa je odprl vir, hkrati pa je bolj jedrnat in varnejši od Jave. Kotlin si lahko predstavljate kot "Java, vendar bolj preprost." Njegova sintaksa je manj podrobna kot Java in se pogosto prevede hitreje kot Java koda. Kotlin dovoljuje tudi funkcionalne sloge programiranja, ki trenutno niso na voljo v Javi, in ima varnejše in elegantnejše načine za obdelavo ničelnih vrednosti. Razvijalci Android vedno bolj izbirajo Kotlin kot Javo za razvoj aplikacij na tej platformi.

Prihodnji načrti za Kotlin presegajo JVM. Eden od projektov vključuje sestavljanje Kotlina v strojno izvorno kodo prek okvira LLVM.

Za več informacij o Kotlinu glejte pregled jezika Martina Hellerja.

Scala

Tako kot Kotlin je bila tudi Scala ustvarjena za izboljšanje produktivnosti razvijalcev Java. Scala združuje funkcionalno in objektno usmerjeno programiranje v istem jeziku, zaradi česar je funkcionalna paradigma dostopna in uporabna za uporabnike ekosistema Java. Poleg tega se Scala sintaksa približuje Javi kot funkcionalna alternativna Clojure, katere Lisp podobna sintaksa lahko dezorientira na neznane. Mešanica funkcionalnih in objektno usmerjenih paradigem je velik del Scaline privlačnosti.

Trenutno je v pripravi Scala Native, različica Scale, ki teče zunaj JVM na goli kovini, prek LLVM. A še prezgodaj je, da bi se uporabljal za proizvodnjo.

Clojure

Razvijalec Rich Hickey je želel zgraditi funkcionalen jezik v družini Lisp za JVM in ustvaril je Clojure, da bi ga praskal. Clojure naj bi olajšal pisanje sočasnih visokozmogljivih aplikacij, uporabnih povsod, kjer teče Java, vendar omogoča drugačen nabor programskih stilov, kot jih Java tradicionalno podpira. Ena od zgodb o uspehu je Puppet Server, ki je bil preseljen iz Rubyja v Clojure.

Groovy

Prvotno ga je razvil Pivotal, zdaj pa ga pod vodstvom Apache Software Foundation Groovy močno gradi na obstoječih izkušnjah z Javo, hkrati pa ponuja funkcije, ki jih navdihujejo dinamični jeziki, kot sta Python in Ruby. Groovy je eden od jezikov, ki jih neposredno podpira priljubljeni Jenkinsov strežnik za neprekinjeno integracijo, in z njim je zgrajen en ključni spletni okvir, Grails.

Prihodnje različice Groovy bodo vključevale funkcije v novejših različicah Jave in JVM, kot je sintaksa lambda Java 8.

Jython in JRuby

Jython in JRuby sta izvedbi Pythona oziroma Rubyja za JVM. Jython je združljiv s Pythonovo 2.x vejo. JRuby je združljiv s sorazmerno novejšim Ruby 2.3. Oba se dinamično prevajata v bajtno kodo Java in lahko svobodno sodelujeta z drugimi jeziki JVM, zlasti z Javo.

Drugi jeziki JVM

  • Cejlon: Ceylon, ki ga je razvil Red Hat, je bil zasnovan za obravnavo nekaterih Javinih vprašanj, kot je njegova podrobnost in povezave z nekaterimi osnovnimi mehanizmi v JVM. Cejlon je mogoče sestaviti za izvajanje na JVM, na Dart VM ali na Node.js.
  • Frege: Različica funkcionalnega jezika Haskell za JVM. Koda Frege se prevede v razred Java in na splošno deluje z Javo, vendar lahko izkoristi nespremenljivost in funkcionalne paradigme v slogu Haskell.
  • Eta: Druga različica Haskella za JVM. Njegova priznana prednost je, da lahko za največjo združljivost z ekosistemom Haskell uporablja pakete iz skladišča paketov Haskell, Hackage.
  • Haxe: Haxe se JVM prevede kot enega od številnih možnih ciljev, vključno s spletom, mobilnimi napravami in golo kovino. Njegova sintaksa spominja na Javo in po potrebi lahko sodeluje z drugimi knjižnicami Java, ko je sestavljena za JVM.
  • Fantom: Jezik z izvedbami za JVM in .Net CLR, Fantom ponuja API-je, ki odstranijo razlike med obema platformama. Fantom je mogoče prevesti tudi v JavaScript in teoretično ga je mogoče namestiti na poljubno število drugih ciljev.
$config[zx-auto] not found$config[zx-overlay] not found