Programmēšana

Papildus Java: valodu programmēšana JVM

Ja ir kāda valoda, kas izstrādātājiem ir zināms un pierādīts daudzums, tā ir Java. Uzņēmumu izstrādātāji, tīmekļa izstrādātāji, mobilo ierīču izstrādātāji un daudzi citi cilvēki ir padarījuši Java visuresošu un veicinājuši masveida atbalsta kultūru ap Java.

Turklāt Java izpildlaiks jeb Java Virtual Machine (JVM) ir kļuvis par programmatūras ekosistēmu. Papildus Java ļoti daudzas citas valodas ir izmantojušas Java virtuālo mašīnu, lai pašas kļūtu par spēcīgiem un vērtīgiem programmatūras izstrādes rīkiem.

Izmantojot JVM kā izpildlaiku, ir vairākas priekšrocības. JVM ir uzlabots vairāku gadu desmitu laikā, un labi lietojot, tas var dot augstu veiktspēju. JVM dažādās valodās rakstītās lietojumprogrammas var koplietot bibliotēkas un darboties vienā un tajā pašā datu struktūrā, savukārt programmētāji izmanto dažādas valodas iespējas.

Zemāk mēs aprakstām vairākas nozīmīgākās programmēšanas valodas, kas izveidotas JVM. Sākot no Kotlina un Scala līdz Jython un JRuby, šīs valodas piedāvā vienkāršākus un elastīgākus veidus, kā papildināt Java, vai arī jaudīgas alternatīvas, kas paredzētas tās aizstāšanai.

Kotlins

2010. gadā JetBrains izveidots un 2012. gadā atvērts Kotlin ir gan kodolīgāks, gan drošāks par Java. Jūs varat domāt par Kotlin kā “Java, bet vienkāršāku”. Tās sintakse ir mazāk izteiksmīga nekā Java, un tā bieži tiek apkopota ātrāk nekā Java kods. Kotlins pieļauj arī funkcionālus programmēšanas stilus, kas pašlaik nav pieejami Java, un tam ir drošāki un elegantāki veidi, kā rīkoties ar nulles vērtībām. Android izstrādātāji lietotņu izstrādei šajā platformā arvien vairāk izvēlas Kotlin, nevis Java.

Kotlina nākotnes plāni pārsniedz JVM. Viens projekts ietver Kotlina apkopošanu mašīndzimtajā kodā, izmantojot LLVM ietvaru.

Lai uzzinātu vairāk par Kotlinu, skatiet Martin Heller valodas pārskatu.

Skala

Tāpat kā Kotlins, arī Scala tika izveidots, lai Java izstrādātājus padarītu produktīvākus. Scala apvieno funkcionālo un objektorientēto programmēšanu vienā valodā, padarot funkcionālo paradigmu pieejamu un noderīgu Java ekosistēmas lietotājiem. Turklāt Scala sintakse ir tuvāk Java nekā funkcionāla alternatīva Clojure, kuras Lisp līdzīgā sintakse var novirzīties nezinātājam. Funkcionālo un objektorientēto paradigmu sajaukums ir liela daļa no Scala pievilcības.

Pašlaik strādā Scala Native, Scala variants, kas LLVM veidā darbojas ārpus JVM uz tukša metāla. Bet vēl ir pāragri izmantot ražošanai.

Clojure

Izstrādātājs Rich Hickey vēlējās izveidot funkcionālu valodu Lisp ģimenē JVM, un viņš izveidoja Clojure, lai saskrāpētu šo niezi. Clojure mērķis ir atvieglot vienlaicīgu, augstas veiktspējas lietojumprogrammu rakstīšanu, kas ir noderīgi visur, kur darbojas Java, bet ļauj izmantot atšķirīgus programmēšanas stilu komplektus, nekā Java parasti atbalsta. Viens veiksmes stāsts ir Leļļu serveris, kas tika pārvietots no Ruby uz Clojure.

Groovy

Sākotnēji izstrādājis Pivotal, bet tagad Apache programmatūras fonda vadībā Groovy lielā mērā balstās uz esošo pieredzi ar Java, vienlaikus piedāvājot tādas funkcijas, kuras iedvesmojušas tādas dinamiskas valodas kā Python un Ruby. Groovy ir viena no valodām, ko tieši atbalsta populārais Jenkins nepārtrauktās integrācijas serveris, un ar to tiek veidota viena galvenā tīmekļa sistēma Grails.

Nākamās Groovy versijas ietvers funkcijas jaunākās Java un JVM versijās, piemēram, Java 8 lambda sintakse.

Jython un JRuby

Jython un JRuby ir attiecīgi Python un Ruby implementācijas JVM. Jython ir saderīgs ar Python 2.x filiāli. JRuby ir savietojams ar salīdzinoši neseno Ruby 2.3. Abi dinamiski apkopo Java baitkodā un var brīvi sadarboties ar citām JVM valodām, it īpaši ar Java.

Citas JVM valodas

  • Ceilona: Red Hat izstrādājis Ceilons tika izstrādāts, lai risinātu dažus Java jautājumus, piemēram, tā daudzveidību un saistību ar dažiem JVM pamatā esošajiem mehānismiem. Ceilonu var apkopot, lai palaistu JVM, Dart VM vai Node.js.
  • Frege: JVM funkcionālās valodas Haskell versija. Frege kods tiek apkopots Java klasei un parasti mijiedarbojas ar Java, taču var izmantot Haskell stila nemainīgumu un funkcionālās paradigmas.
  • Eta: Vēl viens Haskela variants JVM. Tās reklamētā priekšrocība ir tā, ka tā var izmantot Haskell pakotņu krātuves Hackage paketes, lai nodrošinātu maksimālu savietojamību ar Haskell ekosistēmu.
  • Haxe: Haxe apkopo JVM kā vienu no daudzajiem iespējamajiem mērķiem, tostarp tīmekli, mobilās ierīces un tukšo metālu. Tās sintakse atgādina Java, un, ja nepieciešams, apkopojot JVM, tā var sadarboties ar citām Java bibliotēkām.
  • Fantoms: Valoda ar JVM un .Net CLR ieviešanu Fantom nodrošina API, kas novērš atšķirības starp abām platformām. Fantom var arī apkopot JavaScript, un teorētiski to var izvietot uz jebkuru citu mērķu skaitu.
$config[zx-auto] not found$config[zx-overlay] not found