En rask guide til JVM-språkene

1. Introduksjon

Foruten Java, kan andre språk kjøre på Java Virtual Machine som Scala, Kotlin, Groovy, Clojure.

I de følgende avsnittene ser vi på høyt nivå på de mest populære JVM-språkene.

Selvfølgelig begynner vi med forløperen til JVM-språk - Java.

2. Java

2.1. Oversikt

Java er et generelt programmeringsspråk som omfavner Object-Oriented Paradigm.

Et kjernetrekk ved språket er portabilitet på tvers av plattformer, noe som betyr at programmer skrevet på en plattform kan kjøres på alle kombinasjoner av programvare og maskinvare med tilstrekkelig støtte for kjøretid. Dette oppnås ved å kompilere kode i bytekode først, i stedet for direkte til plattformsspesifikk maskinkode.

Java bytecode-instruksjoner er analoge med maskinkoden, men de tolkes av en Java Virtual Machine (JVM) spesifikk for vertsoperativsystemet og maskinvarekombinasjonen.

Selv om det opprinnelig var et objektorientert språk, har Java begynt å ta i bruk konsepter fra andre programmeringsparadigmer som funksjonell programmering.

La oss se raskt på noen av Java's hovedfunksjoner:

  • Objekt orientert
  • Sterkt statisk skrevet
  • Plattformuavhengig
  • Søppel samles opp
  • Flertrådet

2.2. Eksempler

La oss se hvordan en enkel "Hello, World!" eksempel ser ut som:

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

I dette eksemplet har vi opprettet en klasse som heter Hei Verden og definerte hovedmetoden som skriver ut en melding på konsollen.

Neste, vi bruker javac kommando for å generere bytekoden som kan utføres på en JVM:

javac HelloWorld.java

Endelig, de java kommandoen utfører den genererte bytecode på JVM:

java HelloWorld

For flere Java-eksempler, sjekk ut vår liste over opplæringsprogrammer.

3. Scala

3.1. Oversikt

Scala står for "skalerbart språk". Scala er et statisk skrevet språk som kombinerer to viktige programmeringsparadigmer, nemlig objektorientert og funksjonell programmering.

Språket oppsto i 2004, men ble mer populært de siste årene.

Scala er et rent objektorientert språk som det støtter ikke primitiver. Scala gir muligheten til å definere klasser, objekter, metoder sammen med funksjonelle programmeringsfunksjoner som egenskaper, algebraiske datatyper eller typeklasser.

Noen viktige trekk ved Scala er:

  • Funksjonell, objektorientert
  • Sterkt statisk skrevet
  • Algebraiske datatyper
  • Mønster Matching
  • Forbedret støtte for uforanderlighet
  • Lat beregning
  • Flertrådet

3.2. Eksempler

La oss først ta en titt på det samme “Hei, Verden!” eksempel som før, denne gangen i Scala:

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

I dette eksemplet har vi opprettet et singleton-objekt som heter Hei Verden og hoved- metode.

Deretter kan vi bruke for å kompilere dette skalac:

scalac HelloWorld.scala

De scala kommandoen utfører den genererte bytecode på JVM:

scala HelloWorld

4. Kotlin

4.1. Oversikt

Kotlin er et statisk skrevet, åpen kildekode-språk, generelt, utviklet av JetBrains-teamet, som samler de objektorienterte og funksjonelle paradigmene.

Hovedfokus under utviklingen av Kotlin var Java-interoperabilitet, sikkerhet (unntakshåndtering), kortfattethet og bedre verktøystøtte.

Siden utgivelsen av Android Studio 3.0 er Kotlin et fullt støttet programmeringsspråk av Google på Android-plattformen. Den er også inkludert i Android Studio IDE-pakken som et alternativ til standard Java-kompilatoren.

Noen viktige Kotlin-funksjoner:

  • Objektorientert + Funksjonell
  • Sterkt statisk skrevet
  • Konsis
  • Kan brukes sammen med Java

Introduksjonen vår til Kotlin inneholder også mer detaljer om funksjonene.

4.2. Eksempler

La oss se "Hello, World!" eksempel i Kotlin:

morsom hoved (args: Array) {println ("Hello, World!")}

Vi kan skrive koden ovenfor i en ny fil som heter helloWorld.kt.

Deretter, vi bruker kotlinc kommando om å kompilere dette og genererer bytekode som kan kjøres på en JVM:

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

De -d alternativet brukes til å indikere utdatafilen for klasse filer eller a .krukke filnavn. De -inkludere kjøretid alternativet gjør det resulterende .krukke fil selvstendig og kan kjøres ved å inkludere Kotlin kjøretidsbibliotek i den.

Og så java kommandoen utfører den genererte bytecode på JVM:

java -jar helloWorld.jar

La oss også se et annet eksempel på å skrive ut en liste over elementer ved hjelp av a til Løkke:

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

5. Groovy

5.1. Oversikt

Groovy er et objektorientert, valgfritt skrevet, dynamisk domenespesifikt språk (DSL), med støtte for statisk typing og statisk kompilering. Det er rettet mot å forbedre utviklerens produktivitet, med lettlært syntaks.

Groovy integreres enkelt med ethvert Java-program og legger øyeblikkelig til kraftige funksjoner, som skripter, runtime og metaprogrammering for kompilering og funksjonelle programmeringsfunksjoner.

La oss trekke frem noen viktige funksjoner:

  • Objektorientert med funksjonelle funksjoner som høyere ordensfunksjoner, currying, nedleggelser
  • Typing - Dynamisk, Statisk, Sterk, And
  • Domenespesifikt språk
  • Interoperabilitet med Java
  • Produktivitet ved kortfattethet
  • Overbelastning av operatør

5.2. Eksempler

La oss først se "Hello, World!" eksempel i Groovy:

println ("Hello world")

Vi skrev koden ovenfor i en ny fil kalt HelloWorld.groovy. Nå vi kan kjøre denne koden på to måter: ved å kompilere og deretter kjøre eller bare kjøre ukompilert kode.

Vi kan lage en .groovy filen ved hjelp av groovyc kommandoen som følger:

groovyc HelloWorld.groovy

Så bruker vi java kommando for å utføre groovy-koden:

java -cp \ embeddable \ groovy-all-.jar ;. Hei Verden

For eksempel kan kommandoen ovenfor se ut som:

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

La oss også se hvordan vi kan bruke groovy kommando for å utføre .groovy fil uten å kompilere:

groovy HelloWorld.groovy

Til slutt, her er et annet eksempel på å skrive ut en liste over elementer med indeksen:

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

Ta en titt på flere eksempler på Groovy i vår innledningsartikkel.

6. Clojure

6.1. Oversikt

Clojure er et funksjonelt programmeringsspråk for generelle formål. Språket kjører på JVM så vel som Microsofts Common Language Runtime. Clojure er fortsatt et kompilert språk, det forblir dynamisk, ettersom funksjonene støttes under kjøretid.

Clojure-designerne ønsket å designe moderne Lisp som kan kjøres på JVM. Derfor er det også kjent som en dialekt av programmeringsspråket Lisp. I likhet med Lisps behandler Clojure kode som data og har også et makrosystem.

Noen viktige Clojure-funksjoner:

  • Funksjonell
  • Typing - Dynamic, Strong, nylig startet med å støtte gradvis skriving
  • Designet for samtidighet
  • Runtime polymorfisme

6.2. Eksempler

I motsetning til andre JVM-språk, er det ikke så greit å lage enkle "Hello, World!" program i Clojure.

Vi bruker Leiningen-verktøyet for å kjøre eksemplet vårt.

Først oppretter vi et enkelt prosjekt med standardmal ved hjelp av følgende kommando:

lein ny hallo-verden

Prosjektet vil bli opprettet med følgende filstruktur:

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

Nå må vi oppdatere ./project.ctj fil med følgende innhold for å angi hovedkildefilen:

(defproject hallo-world "0.1.0-SNAPSHOT": main hallo-world.core: avhengigheter [[org.clojure / clojure "1.5.1"]])

Nå er vi klar til å oppdatere koden vår for å skrive ut "Hello, World!" i ./src/hello-world/core.clj-fil:

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

Til slutt bruker vi lein kommando for å utføre koden ovenfor, etter å ha flyttet til prosjektets rotkatalog:

cd hallo-world lein run

7. Andre JVM-språk

7.1. Jython

Jython er Java-plattformens implementering av Python som kjører på JVM.

Dette språket ble opprinnelig designet for å gjøre det mulig å skrive applikasjoner med høy ytelse uten å ofre interaktivitet. Jython er objektorientert, flertrådet og bruker Javas søppeloppsamler for effektivt å rydde opp i minnet.

Jython inkluderer de fleste modulene som er en del av Python-språket. Den kan også importere og bruke alle klasser fra Java-bibliotekene.

La oss se et raskt "Hei, Verden!" eksempel:

trykk "Hei, verden!"

7.2. JRuby

JRuby er en implementering av Ruby-programmeringsspråket som skal kjøres på Java Virtual Machine.

JRuby-språket er høyt ytende og har flere tråder, med et stort utvalg av tilgjengelige biblioteker fra Java og Ruby. Dessuten kombinerer den funksjoner fra begge språk som objektorientert programmering og andetyping.

La oss skrive ut "Hello, World!" i JRuby:

krever "java" stringHello = "Hello World" setter "# {stringHello.to_s}"

8. Konklusjon

I denne artikkelen har vi studert mange populære JVM-språk sammen med grunnleggende kodeeksempler. Disse språkene implementerer forskjellige programmeringsparadigmer som objektorientert, funksjonell, statisk typing, dynamisk typing.

Så langt viser det at selv med JVM som dateres tilbake til 1995, står den fremdeles som en svært relevant og overbevisende plattform for moderne programmeringsspråk.


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