Kujutise allikas: pixabay.com

Scala vs Java Performance - Tere tulemast sajandi ülimasse lahingusse. Scala versus Kõigeväeline Java. Mõni inimene võib isegi küsida, miks? Mõni võib isegi öelda, et Scala on osaliselt Java enda osa, miks siis see skaala vs java võrdlus? Põhjus on selles, et Scala pole just Java. Kurat! See pole isegi Java lähedal. Ehkki see kasutab JVM (Java Virtual Machine) kompilaatorit, sarnaneb see Javaga ainult osaliselt.

Võib öelda, nagu Java on Scala suurisa. Põhjus on see, et sellel on Java omadusi, näiteks lihtsate koodide koostamine baitkoodides, vähem integreerimist ja palju muud. See on üks põhjus, ehkki Scalal on Java, see ei ole Java. Segaduses? Jah, eks ma olin ka. Ja see on põhjus, miks ma kirjutan seda blogi, mis on suunatud algajatele, et mitte end segadusse ajada.

Juba piisavalt kõnelusi, saame alustada ja vaadata, millised on erinevused, sarnasused ja põhjused, miks Scalas programmeerimine areneb nii kiiresti, kui meil juba Java on.

Scala ja Java skemaatilise võrdluse kohta saate vaadata infograafikat.

Lugemisaeg: 90 sekundit

Scala vs Java infograafika

Scala vs Java lähenemisviis

Java on objektorienteeritud programmeerimiskeel. Selle eesmärk on peamiselt keskenduda antud andmete kogumisele ja manipuleerimisele. See proovib graafiliste kasutajaliideste ja objektorienteeritud mustrite abil rakendusi igapäevastele kasutajatele kättesaadavaks teha, samas kui Scala programmeerimine järgib puhtalt traditsioonilist funktsionaalset lähenemist.

Scala, erinevalt Java-st, on masinaga koostatud keel. See tähendab, et see on loodud töötama konkreetses keskkonnas, mis sarnaneb mõneti JVM-iga, ning pakub funktsionaalse ja objektorienteeritud lähenemisviisi kombinatsiooni koostaja (sarnaselt dos-iga) ja tüübisüsteemi abil, mida sel ajal statistiliselt skaneeritakse kompileerimise, mis on jälle sama, mis Java, välja arvatud see, et sellel on väljendusrikas süntaks kõrgetasemelistest keeltest, näiteks Ruby.

Kuid mitte ignoreerida samu funktsioone, mis muudavad Scala versiooni nii produktiivseks, võib see ka scala vs java jõudlust takistada ja muuta selle palju katastroofilisemaks, kui see peab olema.

Scala sünni vajadus

Mis on Scala? Scala töötati välja spetsiaalselt eesmärgiga olla parem keel kui Java. Arendajad soovisid jätta need Java osad, mis takistavad produktiivset programmeerimist, liiga ajamahukas, koos sellega, et see ajab arendaja pahaks. Asi on selles, et kuigi kood on diferentseeritud ja lähenemisviisi muutused (võrreldes Javaga) võivad Scala keele natuke keerukamaks muuta, on tulemus siiski palju puhas ja hästi üles ehitatud, mida on lõpuks lihtsam kasutada ja lugeda sarnaselt meeldib Pythonile. saate isegi minu järgmises ajaveebis Scala vs Pythoniga läbi käia.

Vaatame teksti mõlemas keeles lihtsat printimist:

Java:

avaliku klassi IamJava (

public static void main(String() args) (

System.out.println("I am Java!");

)

)

Skaala:

object IamScala (

def main(args: Array(String)): Unit = (

println("I am Scala!")

)

)

Hmnn … Vahet pole. Ärge muretsege. Mul on siin veel ette näidata. Vaatame nüüd täpsemat näidet. Järgnev on näide sellest, kuidas Java-s on kirjutatud pikk kooditükk; võib Scalas olla lihtsalt üks vooderdis:

Soovitatavad kursused

  • Professionaalne XML-koolitus
  • CCNA eksami sertifitseerimise kursus
  • UNIX ja Linux OS programmeerimise koolitus
  • HTML 5 koolitus

Java:

public class People

(

private String start;

private String stop;

String getstart() ( return start; )

void setstart(String start) ( this.start = start; )

String getstop() ( return stop; )

void setstop(String stop) ( this.stop = stop; )

int hashCode() ….

boolean equals(Object o) ( …. )

)

Skaala:

case class People(start:String, stop:String)

Seega on üks rida Scalas võrdne Java üheteistkümne reaga. Täpsemalt öeldes puudub Java Scala programmi kompaktsusest ja seetõttu on pikkade koodide kirjutamine muutunud Java arendajate kombeks. Tegelikult võime seda isegi nii kirjutada:

public class People extends DTOBase

(

public String start;

public String stop;

)

Scala programmeerimiskeele kompaktsus on tõesti märkimist väärt. Saan välja kirjutada isegi ilma getterite ja setterite abita ning seda ka ilma kitsaskohtadeta. Tähendades, et Java keele arendamine kulgeb ka kompaktsuse poole.

Ütlematagi selge, et Java-l on ka mõned nipid varruka üles tõstmiseks. On üks põhjus, miks see on programmeerimise maailmas domineerinud. Java võib koodi siiski natuke lühendada, kuid tavapärase kasutamise korral ilmselt mitte.

Nüüd vaatame siin tavalist vana Java objekti. Oletame, et te olete fantastiline programmeerija (kes ilmselgelt ma ei ole… eksju..aga nalja teeme) Nii öelda, teil õnnestus kuidagi koodi vähendada, kuid millise pikkusega? 5–6 rida? … Laske mul see sirgeks saada … mis siis, kui kavatsete kirjutada nii suure kooditüki:

public class Group (

private String value;

private record tokens;

public Group() (

tokens = new Arrayrecord();

)

public String getvalue() (

return value;

)

public void setvalue(String value) (

this.value = value;

)

public record gettokens() (

return tokens;

)

public void settokens(record tokens) (

this.tokens = tokens;

)

)

public class tokens (

private int id;

private record items;

public tokens() (

items = new Arrayrecord();

)

public int getId() (

return id;

)

public void setId(int id) (

this.id = id;

)

public record getitems() (

return items;

)

public void setitems(record items) (

this.items = items;

)

)

public class item (

private int id;

private String characteristic;

public int getId() (

return id;

)

public void setId(int id) (

this.id = id;

)

public String getcharacteristic() (

return characteristic;

)

public void setcharacteristic(String characteristic) (

this.characteristic = characteristic;

)

)

Zzzz… .Tun juba unine. Vaatame nüüd Scalat. Siinkohal, et olla kindel, lubage mul öelda, et ma ei ürita siin ühtegi koodi vähendada. Kirjutan just sama koodi, mille kirjutasin ülal Scalas kõige elementaarsemas vormingus (nagu kirjutaks algaja arendaja) (olen kasutanud kirjeid loenditena või massiivide loenditena):

class Group (

var value: String = _

var tokens: record(tokens) = Nil

)

class tokens (

var id: Int = _

var items: record(item) = Nil

)

class item (

var id: Int = _

var category: String = _

)

Võib-olla olete kuulnud inimesi rääkimas, et Java on palju lihtsam kui Scala. Lubage mul seda nüüd küsida; mis keeles tunnete end praegu keerukamana, ah? Nii et järgmine kord, kui vaidlete Java arendajaga, pidage seda lihtsat programmi endaga kaasas.

Ära karda. Kuigi Java koodid tunduvad suured, pole need tegelikult nii keerulised. Java on mõista palju lihtsam kui Scalast. Scala on liiga kompaktne. Parim, mida ma ütleksin, on see sobilik kogenud arendajatele, kellel on Java-rakenduste arendamise aastane kogemus. Algajatel oleks Scalat Java kirjutamata tundmata raske kirjutada ja sellest aru saada.

Kogemuskodeerijad võivad isegi väita, et Java on Scalast paremini loetav, põhjuseks on Scala sügavalt pesastatud koodid. Scalas saate määratleda funktsioonid funktsioonide sees, teise funktsioonina, mõne muu objekti sees, mis asub klassis jne. Nii et näete, kompaktsuse kohta on nii palju öelda. Ehkki Java on vaja kompaktsust, toob see mõnikord halvasti kirjutatud korral hävitavaid tagajärgi. Nii laastav, et te ei saa isegi oma koodist aru.

Ehkki Scala on siin võitmatu, on see siiski jõudluse ohverdamine. Me ei rääkinud kunagi Scala jõudlusnäitajatest, eks? Testisin hiljuti oma AMD-A8 protsessoris Scala ja Java võrdlusnäitajaid. Minu saadud tulemus oli tegelikult ootamatu. Ehkki Scalas saate kirjutada kompaktseid koode, on jõudlus, st kiirus tegelikult Javaga võrreldes kaks korda aeglasem.

Järeldus

Scala Java; lõpuks on sama mündi kaks erinevat külge. Mõlemal on oma plusside ja miinuste komplekt. See on põhjus, miks te ei saa kunagi asendada Java for Scala ja ka vastupidi. Ühest küljest, kus Java on ülesannete käsitlemisel lihtne, ülikiire ja tõhus; teisest küljest on Scala äärmiselt kompaktne ja hõlpsamini kirjutatav (ehkki raskesti mõistetav ja silumine), samal ajal kompromiss efektiivsuse kohta.

Scala eeliseid ja puudusi mõjutavad sageli kas seetõttu, et nad ei leidnud rakenduse kirjutamiseks ühtegi probleemi või olid ebaõnnestunud. Selle õigeks hindamiseks on tegelikult oluline mõista selliste arvamuste põhjust ja fakte.

Java ja Scala peamine erinevus on nende filosoofia ja olemus kooditüki kirjutamisel. Java on puhtalt objektorienteeritud ja keskendub klassidele, kapseldumisele ja muule, samas kui Scala põhineb funktsionaalsel lähenemisel. Kui olete selle erinevuse teada saanud, on nende õppimine lihtsalt aja küsimus.

Soovitatavad artiklid

Siin on mõned artiklid, mis aitavad teil scala vs java kohta üksikasjalikumat teavet saada, nii et minge lihtsalt lingi kaudu.

  1. Mis on skeemi programmeerimiskeele eelised?
  2. Microsoft Exceli näpunäited ja nipid
  3. Erinevus Java jõudluse ja Pythoni vahel
  4. Java intervjuu küsimused värskema jaoks | Kõige tähtsam
  5. Karjäär Java arendajana
  6. Karjäär Java
  7. 10 olulist Java mitme lõimega intervjuu küsimust

Kategooria: