Stručný sprievodca jazykmi JVM

1. Úvod

Okrem Javy môžu na virtuálnom stroji Java bežať aj iné jazyky, ako napríklad Scala, Kotlin, Groovy, Clojure.

V nasledujúcich častiach sa pozrieme na najpopulárnejšie jazyky JVM na vysokej úrovni.

Samozrejme začneme predchodcom jazykov JVM - Java.

2. Java

2.1. Prehľad

Java je univerzálny programovací jazyk zahŕňajúci objektovo orientovanú paradigmu.

Kľúčovou vlastnosťou jazyka je prenosnosť na rôzne platformy, čo znamená, že programy napísané na jednej platforme sú spustiteľné na ľubovoľnej kombinácii softvéru a hardvéru s adekvátnou runtime podporou. To sa dá dosiahnuť najskôr kompiláciou kódu do bajtkódu, nie priamo do strojového kódu špecifického pre platformu.

Pokyny Java bytecode sú analogické so strojovým kódom, ale sú interpretované Java Virtual Machine (JVM) špecifickým pre kombináciu hostiteľského operačného systému a hardvéru.

Aj keď bol pôvodne objektovo orientovaný jazyk, Java začala prijímať koncepty z iných paradigiem programovania, ako je funkčné programovanie.

Poďme sa rýchlo pozrieť na niektoré z hlavných funkcií Javy:

  • Objektovo orientovaný
  • Silne staticky zadané
  • Nezávislé na platforme
  • Zhromaždené
  • Viacvláknové

2.2. Príklady

Pozrime sa, ako jednoduché „Ahoj, svet!“ príklad vyzerá takto:

public class HelloWorld {public static void main (String [] args) {System.out.println ("Hello, World!"); }}

V tomto príklade sme vytvorili triedu s názvom HelloWorld a definoval hlavnú metódu, ktorá tlačí správu na konzolu.

Ďalšie, použijeme javac príkaz na vygenerovanie bytecode ktoré je možné vykonať na JVM:

javac HelloWorld.java

Nakoniec the java príkaz vykoná vygenerovaný bytecode na JVM:

java HelloWorld

Ďalšie príklady jazyka Java nájdete v našom zozname návodov.

3. Scala

3.1. Prehľad

Scala znamená „škálovateľný jazyk“. Scala je staticky napísaný jazyk, ktorý kombinuje dve dôležité programovacie paradigmy, a to objektovo orientované a funkčné programovanie.

Jazyk vznikol v roku 2004, ale v posledných rokoch sa stal populárnejším.

Scala je čistý objektovo orientovaný jazyk nepodporuje primitivov. Scala poskytuje schopnosť definovať triedy, objekty, metódy spolu s funkčnými programovacími funkciami, ako sú vlastnosti, algebraické dátové typy alebo triedy typov.

Niekoľko dôležitých funkcií Scaly je:

  • Funkčné, objektovo orientované
  • Silne staticky zadané
  • Algebraické dátové typy
  • Zhoda vzorov
  • Vylepšená podpora nemennosti
  • Lenivý výpočet
  • Viacvláknové

3.2. Príklady

Najprv sa pozrime na to isté „Ahoj, svet!“ príklad ako predtým, tentokrát v Scale:

objekt HelloWorld {def main (args: Array [String]): Unit = println ("Hello, world!")}

V tomto príklade sme vytvorili singletonový objekt s názvom HelloWorld a hlavný metóda.

Ďalej, aby sme to zostavili, môžeme použiť scalac:

scalac HelloWorld.scala

The scala príkaz vykoná vygenerovaný bytecode na JVM:

Scala HelloWorld

4. Kotlin

4.1. Prehľad

Kotlin je staticky typizovaný, univerzálny, open-source jazyk vyvinutý tímom JetBrains, ktorý spája objektovo-orientované a funkčné paradigmy.

Hlavným zameraním pri vývoji Kotlin bola interoperabilita Java, bezpečnosť (spracovanie výnimiek), výstižnosť a lepšia podpora nástrojov.

Od vydania Android Studio 3.0 je Kotlin plne podporovaným programovacím jazykom spoločnosti Google na platforme Android. Je tiež súčasťou balíka IDE pre Android Studio ako alternatíva k štandardnému kompilátoru Java.

Niektoré dôležité funkcie Kotlin:

  • Objektovo orientované + funkčné
  • Silne staticky zadané
  • Stručný
  • Spolupracuje s Javou

Náš úvod do Kotlin obsahuje aj viac podrobností o vlastnostiach.

4.2. Príklady

Pozrime sa na „Ahoj, svet!“ príklad v Kotline:

fun main (args: Array) {println ("Hello, World!")}

Vyššie uvedený kód môžeme zapísať do nového súboru s názvom ahoj svet.kt.

Potom, použijeme kotlinc príkaz na zostavenie tohto príkazu a generuje bytecode, ktorý je možné vykonať na JVM:

kotlinc helloWorld.kt -include-runtime -d helloWorld.jar

The -d voľba sa používa na označenie výstupného súboru pre trieda súbory alebo a .jar názov súboru. The -include-runtime Táto voľba umožňuje dosiahnuť výsledok .jar súbor samostatný a spustiteľný zahrnutím runtime knižnice Kotlin.

Potom java príkaz vykoná vygenerovaný bytecode na JVM:

java -jar ahojWorld.jar

Pozrime sa tiež na ďalší príklad tlače zoznamu položiek pomocou a pre slučka:

fun main (args: Array) {val items = listOf (1, 2, 3, 4) for (i in items) println (i)}

5. Groovy

5.1. Prehľad

Groovy je objektovo orientovaný dynamický doménový jazyk (DSL) s voliteľným zadaníms podporou možností statického písania a statickej kompilácie. Je zameraná na zvýšenie produktivity vývojárov pomocou ľahko sa naučiteľnej syntaxe.

Groovy sa ľahko integruje do ľubovoľného programu Java a okamžite pridáva výkonné funkcie, ako sú skriptovacie funkcie, metaprogramovanie za behu a kompilácie a funkčné programovacie funkcie.

Vyzdvihnime niekoľko dôležitých funkcií:

  • Objektovo orientované s funkčnými funkciami, ako sú funkcie vyššieho rádu, kari, uzávery
  • Písanie - dynamické, statické, silné, kačacie
  • Jazyk špecifický pre doménu
  • Interoperabilita s Javou
  • Produktivita podľa stručnosti
  • Preťaženie obsluhy

5.2. Príklady

Najskôr sa pozrime na „Ahoj, svet!“ príklad v Groovy:

println ("Ahoj svet")

Vyššie uvedený kód sme napísali do nového súboru s názvom HelloWorld.groovy. Teraz tento kód môžeme spustiť dvoma spôsobmi: kompiláciou, vykonaním alebo spustením nekompilovaného kódu.

Môžeme zostaviť a .grovy súbor pomocou groovyc príkaz takto:

groovyc HelloWorld.groovy

Potom použijeme java príkaz na vykonanie groovy kódu:

java -cp \ embeddable \ groovy-all-.jar ;. HelloWorld

Napríklad vyššie uvedený príkaz môže vyzerať takto:

java -cp C: \ utils \ groovy-1.8.1 \ embeddable \ groovy-all-1.8.1.jar ;. HelloWorld

Pozrime sa tiež, ako môžeme použiť groovy príkaz na vykonanie príkazu .grovy súbor bez kompilácie:

groovy HelloWorld.groovy

Na záver uvádzame ďalší príklad tlače zoznamu položiek s indexom:

list = [1, 2, 3, 4, 5, 6, 7, 8, 9] list.eachWithIndex {it, i -> println "$ i: $ it"}

Zoznámte sa s ďalšími príkladmi Groovy v našom úvodnom článku.

6. Clojure

6.1. Prehľad

Clojure je univerzálny funkčný programovací jazyk. Jazyk beží na JVM, ako aj na Common Language Runtime spoločnosti Microsoft. Clojure je stále kompilovaný jazyk, zostáva dynamický, pretože jeho funkcie sú podporované za behu programu.

Dizajnéri Clojure chceli navrhnúť moderný Lisp, ktorý môže bežať na JVM. Preto je tiež známy ako dialekt programovacieho jazyka Lisp. Podobne ako Lisps, aj Clojure zaobchádza s kódom ako s dátami a má tiež makrosystém.

Niektoré dôležité funkcie Clojure:

  • Funkčné
  • Písanie - dynamické, silné, nedávno začalo podporovať postupné písanie
  • Navrhnuté pre súbežnosť
  • Polymorfizmus za behu

6.2. Príklady

Na rozdiel od iných jazykov JVM nie je také jednoduché vytvárať jednoduché „Hello, World!“ program v Clojure.

Na uskutočnenie nášho príkladu použijeme nástroj Leiningen.

Najskôr pomocou nasledujúceho príkazu vytvoríme jednoduchý projekt s predvolenou šablónou:

lein nový ahoj-svet

Projekt bude vytvorený s nasledujúcou štruktúrou súborov:

./project.clj ./src ./src/hello-world ./src/hello-world/core.clj

Teraz musíme aktualizovať ./project.ctj súbor s nasledujúcim obsahom na nastavenie hlavného zdrojového súboru:

(defproject hello-world "0.1.0-SNAPSHOT": hlavný hello-world.core: závislosti [[org.clojure / clojure "1.5.1"]])

Teraz sme pripravení aktualizovať náš kód tak, aby tlačil „Hello, World!“ v ./src/hello-world/core.súbor clj:

(ns hello-world.core) (defn -main [& args] (println "Hello, World!"))

Nakoniec použijeme lein príkaz na vykonanie vyššie uvedeného kódu po prechode do koreňového adresára projektu:

cd ahoj svet lein beh

7. Ostatné jazyky JVM

7.1. Jython

Jython je implementácia platformy Python na platforme Java ktorý beží na JVM.

Tento jazyk bol pôvodne navrhnutý tak, aby umožňoval písanie vysoko výkonných aplikácií bez straty interaktivity. Jython je objektovo orientovaný, má viacvláknové spracovanie a na efektívne čistenie pamäte používa zberač odpadu v Jave.

Jython obsahuje väčšinu modulov, ktoré sú súčasťou jazyka Python. Môže tiež importovať a používať ľubovoľné triedy z knižníc Java.

Pozrime sa na rýchle „Ahoj, svet!“ príklad:

tlač „Ahoj, svet!“

7.2. JRuby

JRuby je implementácia programovacieho jazyka Ruby pre beh na virtuálnom stroji Java.

Jazyk JRuby je vysoko výkonný a viacvláknový, so širokou škálou dostupných knižníc od Java a Ruby. Kombinuje tiež funkcie z oboch jazykov, ako je objektové programovanie a písanie kačiek.

Vytlačme si „Hello, World!“ v JRuby:

vyžadovať "java" stringHello = "Hello World" umiestni "# {stringHello.to_s}"

8. Záver

V tomto článku sme študovali mnoho populárnych jazykov JVM spolu so základnými príkladmi kódu. Tieto jazyky implementujú rôzne paradigmy programovania, ako sú objektové, funkčné, statické písanie, dynamické písanie.

Zatiaľ to ukazuje, že aj napriek JVM, ktoré sa datuje od roku 1995, stále stojí ako vysoko relevantná a presvedčivá platforma pre moderné programovacie jazyky.


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