En hurtig guide til JVM-sprog

1. Introduktion

Udover Java kan andre sprog køre på Java Virtual Machine som Scala, Kotlin, Groovy, Clojure.

I de følgende afsnit tager vi et højt kig på de mest populære JVM-sprog.

Selvfølgelig starter vi med forløberen for JVM-sprog - Java.

2. Java

2.1. Oversigt

Java er et generelt programmeringssprog, der omfavner det objektorienterede paradigme.

Et kerneelement i sproget er mobilitet på tværs af platforme, hvilket betyder, at programmer, der er skrevet på en platform, kan køres på enhver kombination af software og hardware med tilstrækkelig driftstime. Dette opnås ved først at kompilere kode i bytecode i stedet for direkte til platformsspecifik maskinkode.

Java bytecode-instruktioner er analoge med maskinkoden, men de fortolkes af en Java Virtual Machine (JVM), der er specifik for værtsoperativsystemet og hardwarekombinationen.

Selvom det oprindeligt var et objektorienteret sprog, er Java begyndt at vedtage koncepter fra andre programmeringsparadigmer som funktionel programmering.

Lad os se hurtigt på nogle af Java's hovedfunktioner:

  • Objektorienteret
  • Stærkt statisk skrevet
  • Platformuafhængig
  • Affald indsamlet
  • Multitrådet

2.2. Eksempler

Lad os se, hvordan et simpelt "Hej verden!" eksempel ligner:

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

I dette eksempel har vi oprettet en klasse med navnet Hej Verden og definerede hovedmetoden, der udskriver en besked på konsollen.

Næste, vi bruger javac kommando til at generere bytekoden som kan udføres på en JVM:

javac HelloWorld.java

Langt om længe, det java kommando udfører den genererede bytecode på JVM:

java HelloWorld

For flere Java-eksempler, se vores liste over tutorials.

3. Scala

3.1. Oversigt

Scala står for "skalerbart sprog". Scala er et statisk skrevet sprog, der kombinerer to vigtige programmeringsparadigmer, nemlig objektorienteret og funktionel programmering.

Sproget opstod i 2004, men blev mere populært i de senere år.

Scala er et rent objektorienteret sprog som det understøtter ikke primitive. Scala giver mulighed for at definere klasser, objekter, metoder sammen med funktionelle programmeringsfunktioner som træk, algebraiske datatyper eller typeklasser.

Et par vigtige træk ved Scala er:

  • Funktionel, objektorienteret
  • Stærkt statisk skrevet
  • Algebraiske datatyper
  • Mønster Matching
  • Forbedret støtte til uforanderlighed
  • Lazy Computation
  • Multitrådet

3.2. Eksempler

Lad os først se på det samme "Hej verden!" eksempel som før, denne gang i Scala:

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

I dette eksempel har vi oprettet et singleton-objekt med navnet Hej Verden og vigtigste metode.

Dernæst kan vi bruge til at kompilere dette skalac:

skalak HelloWorld.scala

Det scala kommando udfører den genererede bytecode på JVM:

scala HelloWorld

4. Kotlin

4.1. Oversigt

Kotlin er et statisk skrevet, open source-sprog til generelle formål, udviklet af JetBrains-teamet, som samler de objektorienterede og funktionelle paradigmer.

Hovedfokus under udvikling af Kotlin var Java-interoperabilitet, sikkerhed (håndtering af undtagelser), kortfattethed og bedre værktøjsstøtte.

Siden udgivelsen af ​​Android Studio 3.0 er Kotlin et fuldt understøttet programmeringssprog af Google på Android-platformen. Det er også inkluderet i Android Studio IDE-pakken som et alternativ til standard Java-kompilatoren.

Nogle vigtige Kotlin-funktioner:

  • Objektorienteret + funktionel
  • Stærkt statisk skrevet
  • Kortfattet
  • Interoperabel med Java

Vores introduktion til Kotlin indeholder også mere detaljerede oplysninger om funktionerne.

4.2. Eksempler

Lad os se "Hej verden!" eksempel i Kotlin:

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

Vi kan skrive koden ovenfor i en ny fil, der hedder helloWorld.kt.

Derefter, vi bruger kotlinc kommando til at kompilere dette og genererer bytecode, som kan udføres på en JVM:

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

Det -d bruges til at angive outputfilen til klasse filer eller en .krukke filnavn. Det -omfatter-runtime mulighed gør det resulterende .krukke fil selvstændig og kan køres ved at inkludere Kotlin runtime-biblioteket i den.

Derefter java kommando udfører den genererede bytecode på JVM:

java -jar helloWorld.jar

Lad os også se et andet eksempel på udskrivning af en liste over emner ved hjælp af a til løkke:

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

5. Groovy

5.1. Oversigt

Groovy er et objektorienteret, valgfrit skrevet, dynamisk domænespecifikt sprog (DSL), med understøttelse af statisk typing og statisk kompilering. Det er rettet mod at forbedre udviklerens produktivitet med let at lære syntaks.

Groovy integreres let med ethvert Java-program og tilføjer straks kraftfulde funktioner, såsom scripting-funktioner, runtime og metaprogrammering med kompilering og funktionelle programmeringsfunktioner.

Lad os fremhæve et par vigtige funktioner:

  • Objektorienteret med funktionelle funktioner som funktioner i højere ordre, curry, lukninger
  • Typing - Dynamisk, statisk, stærk, and
  • Domænespecifikt sprog
  • Interoperabilitet med Java
  • Produktivitet ved kortfattethed
  • Operatør overbelastning

5.2. Eksempler

Lad os først se vores "Hej verden!" eksempel i Groovy:

println ("Hej verden")

Vi skrev ovenstående kode i en ny fil, der hedder HelloWorld.groovy. Nu Vi kan køre denne kode på to måder: ved at kompilere og derefter udføre eller ved bare at køre ukompileret kode.

Vi kan sammensætte en .groovy fil ved hjælp af groovyc kommando som følger:

groovyc HelloWorld.groovy

Derefter bruger vi java kommando til udførelse af groovy-koden:

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

For eksempel kunne kommandoen ovenfor se ud som:

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

Lad os også se, hvordan vi kan bruge groovy kommando til at udføre .groovy fil uden at kompilere:

groovy HelloWorld.groovy

Endelig er her et andet eksempel på udskrivning af en liste over emner med indekset:

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

Se på flere Groovy-eksempler i vores introduktionsartikel.

6. Clojure

6.1. Oversigt

Clojure er et funktionelt programmeringssprog til generelle formål. Sprog kører på JVM såvel som Microsofts Common Language Runtime. Clojure er stadig et kompileret sprog, det forbliver dynamisk, da dets funktioner understøttes under kørsel.

Clojure-designerne ønskede at designe moderne Lisp, som kan køre på JVM. Derfor er det også kendt som en dialekt af Lisp programmeringssprog. I lighed med Lisps behandler Clojure kode som data og har også et makro-system.

Nogle vigtige Clojure-funktioner:

  • Funktionel
  • Indtastning - Dynamisk, stærk, startede for nylig med at understøtte gradvis indtastning
  • Designet til samtidighed
  • Runtime polymorfisme

6.2. Eksempler

I modsætning til andre JVM-sprog er det ikke så ligetil at skabe enkle "Hej verden!" program i Clojure.

Vi bruger Leiningen-værktøjet til at køre vores eksempel.

Først opretter vi et simpelt projekt med standardskabelon ved hjælp af følgende kommando:

lein ny hej-verden

Projektet oprettes med følgende filstruktur:

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

Nu skal vi opdatere ./projekt.ctj fil med følgende indhold for at indstille hovedkildefilen:

(defproject hello-world "0.1.0-SNAPSHOT": main hello-world.core: afhængigheder [[org.clojure / clojure "1.5.1"]])

Nu er vi klar til at opdatere vores kode for at udskrive "Hej verden!" i ./src/hello-world/core.clj-fil:

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

Endelig bruger vi lein kommando til at udføre koden ovenfor efter at have flyttet til projektets rodmappe:

cd hej-world lein run

7. Andre JVM-sprog

7.1. Jython

Jython er Java-platformens implementering af Python der kører på JVM.

Dette sprog blev oprindeligt designet til at gøre det muligt at skrive applikationer med høj ydeevne uden at ofre interaktivitet. Jython er objektorienteret, multi-threaded og bruger Java's affaldssamler til effektivt at rydde op i hukommelsen.

Jython inkluderer de fleste moduler, der er en del af Python-sproget. Det kan også importere og bruge alle klasser fra Java-bibliotekerne.

Lad os se et hurtigt ”Hej verden!” eksempel:

udskrive "Hej verden!"

7.2. JRuby

JRuby er en implementering af Ruby-programmeringssproget, der skal køre på Java Virtual Machine.

JRuby-sproget er højtydende og multi-threaded med et stort udvalg af tilgængelige biblioteker fra Java og Ruby. Det kombinerer også funktioner fra begge sprog som objektorienteret programmering og and-typing.

Lad os udskrive "Hej verden!" i JRuby:

kræve "java" stringHello = "Hello World" sætter "# {stringHello.to_s}"

8. Konklusion

I denne artikel har vi studeret mange populære JVM-sprog sammen med grundlæggende kodeeksempler. Disse sprog implementerer forskellige programmeringsparadigmer som objektorienteret, funktionel, statisk typing, dynamisk typing.

Indtil videre viser det, at selv med JVM, der går tilbage til 1995, står det stadig som en yderst relevant og overbevisende platform for nutidige programmeringssprog.


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