Zdroj obrázka: pixabay.com

Scala vs Java Performance - Vitajte v konečnej bitke storočia. Scala verzus Všemohúca Java. Niektorí ľudia sa môžu pýtať prečo? Niektorí dokonca tvrdia, že Scala je súčasťou samotnej Javy, tak prečo toto porovnanie scala vs java? Dôvodom je, že Scala nie je presne Java. Heck! Nie je to ani blízko Java. Aj keď používa kompilátor JVM (Java Virtual Machine), je iba čiastočne podobný Java.

Môžete povedať, že Java je veľkým otcom Scaly. Dôvodom je, že má niekoľko charakteristík Java, ako napríklad zostavovanie jednoduchých kódov do bajtových kódov, ktoré majú menšiu integráciu a mnoho ďalších. To je jeden dôvod, hoci Scala má Java, „nie je“ Java. Zmätený? Áno, tiež som bol. A to je dôvod, prečo som písal tento blog so zameraním na začiatočníkov tak, aby sa nezamieňal.

Dostatok rozhovorov už umožňuje začať a zistiť, aké sú rozdiely, podobnosti a dôvody programovania v Scale, aby sa vyvíjali tak rýchlo, keď už máme Java.

Môžete si pozrieť infographic pre schematické porovnanie Scala vs Java.

Čas na čítanie: 90 sekúnd

Scala vs Java Infografika

Prístup Scala vs Java

Java je objektovo orientovaný programovací jazyk. Zameriava sa hlavne na zhromažďovanie a manipuláciu s danými údajmi. Snaží sa sprístupniť aplikácie každodenným používateľom pomocou grafických používateľských rozhraní a objektovo orientovaných vzorov, zatiaľ čo programovanie Scala naopak sleduje tradičný funkčný prístup.

Scala na rozdiel od Java je strojom zostavený jazyk. To znamená, že je navrhnutý tak, aby fungoval v špecifickom prostredí trochu podobnom JVM a ponúka kombináciu funkčného a objektovo orientovaného prístupu pomocou kompilátora (podobného ako v prípade dos) a typového systému, ktorý bol v tom čase štatisticky skenovaný. kompilácie, ktorá je opäť rovnaká ako Java, s výnimkou toho, že má výraznú syntax jazykov vysokej úrovne, ako je Ruby.

Ale neignorovať tie isté funkcie, vďaka ktorým je verzia Scala tak produktívna, môže tiež brzdiť výkon Scala vs java a urobiť ho oveľa katastrofálnejším, ako je potrebné.

Potreba narodenia Scaly

Čo je Scala? Scala bol vyvinutý špeciálne s cieľom byť lepším jazykom ako Java. Vývojári chceli nechať tie časti Java, ktoré bránia produktívnemu programovaniu, príliš časovo náročné spolu s tým, že to frustruje vývojárov. Ide o to, že hoci existuje rozdiel v kóde a zmeny v prístupe (v porovnaní s jazykom Java), môže spôsobiť, že jazyk Scala je trochu zložitejší, stále je výsledok oveľa čistý a dobre štruktúrovaný, ktorý sa v konečnom dôsledku ľahšie používa a číta podobne ako ten ako Python. môžete dokonca prejsť Scala vs Python v mojom ďalšom blogu.

Pozrime sa na jednoduchú tlač textu v oboch jazykoch:

Java:

verejná trieda IamJava (

public static void main(String() args) (

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

)

)

Scala:

object IamScala (

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

println("I am Scala!")

)

)

Hmnn … Nie je takmer žiadny rozdiel. Neboj sa. Ešte sa tu chcem predviesť. Teraz sa pozrime na presnejší príklad. Nasleduje príklad toho, ako dlhá časť kódu napísaného v jazyku Java; v Scala môže byť jednoducho vložkou:

Odporúčané kurzy

  • Profesionálne školenie XML
  • CCNA certifikačný kurz
  • Školenie programovania UNIX a Linux OS
  • Školenie HTML 5

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) ( …. )

)

Scala:

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

Jeden riadok v Scale sa teda rovná jedenástim riadkom Java. Presnejšie povedané, Java chýba kompaktnosť programu Scala, a preto sa písanie dlhých kódov stalo zvykom vývojárov Java. Vlastne to môžeme dokonca napísať takto:

public class People extends DTOBase

(

public String start;

public String stop;

)

Za zmienku stojí kompaktnosť programovacieho jazyka Scala. Dokážem napísať pole aj bez pomoci getrov a nastavovačov, a to aj bez jeho obmedzenia. To znamená, že vývoj jazyka Java vedie tiež k kompaktnosti.

Netreba dodávať, že Java má aj pár trikov v rukáve. Existuje dôvod, prečo ovládol svet programovania. Java však môže kód trochu skrátiť, ale samozrejme nie pri štandardnom použití.

Teraz sa môžete pozrieť na obyčajný starý objekt Java. Predpokladajme, že ste úžasný programátor (čo samozrejme nemám … err .. len si robím srandu) Takže sa vám nejako podarilo kód skrátiť, ale v akej dĺžke? 5 až 6 riadkov?… .Ujasnite si to rovno … čo ak máte v úmysle napísať kus kódu tak veľký ako tento:

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 … Už sa cítim ospalý. Teraz sa pozrime na Scalasa. Len aby som si bol istý, dovoľte mi povedať, že sa tu nesnažím zmenšovať žiadny kód. V Scale píšem ten istý kód, aký som napísal vyššie, v najzákladnejšom formáte (ako by napísal začiatočník pre vývojárov) (používal som záznamy ako zoznamy alebo arraylisty):

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 = _

)

Možno ste počuli ľudí, že Java je omnoho jednoduchšia ako Scala. Dovoľte mi, aby som sa vás na to teraz opýtal; ktorý jazyk sa teraz cítiš komplikovanejší, hm? Takže nabudúce, keď sa hádate s vývojárom Java, majte tento jednoduchý program so sebou.

Neboj sa. Aj keď sa kódy Java javia veľké, nie sú v skutočnosti také zložité. V skutočnosti je oveľa ľahšie pochopiť Java, ako porozumieť Scale. Scala je príliš kompaktný. Najlepšie by som povedal, že je vhodný pre skúsených vývojárov, ktorí majú dlhoročné skúsenosti s vývojom aplikácií v jazyku Java. Začiatočníkom by bolo ťažké písať a porozumieť Scale bez znalosti jazyka Java.

Skúsenosti kódovače môžu dokonca tvrdiť, že Java je čitateľnejšia ako Scala, dôvodom sú hlboko vnorené kódy Scaly. V Scale môžete definovať funkcie vo vnútri funkcií, do inej funkcie, vo vnútri iného objektu, ktorý je vnútri triedy a tak ďalej. Takže vidíte toľko o kompaktnosti. Aj keď v Jave je potrebná kompaktnosť, niekedy môže mať zlé účinky, ak je napísaná zle. Tak zničujúce, že ani nebudete rozumieť svojmu vlastnému kódu.

Aj keď je tu Scala neporazený, je to však so stratou výkonu. Nikdy sme nehovorili o výkonnostných kritériách Scaly, však? Nedávno som otestoval štandardy Scala a Java na mojom procesore AMD-A8. Výsledok, ktorý som dostal, bol skutočne neočakávaný. Aj keď v Scale môžete písať kompaktné kódy, výkonnosť, tj rýchlosť je v skutočnosti dvojnásobne pomalšia v porovnaní s Java.

záver

Scala Java; na konci sú dve rôzne strany tej istej mince. Obaja majú svoje vlastné výhody a nevýhody. To je dôvod, prečo nemôžete nikdy nahradiť jazyk Java za program Scala a naopak. Na jednej strane, kde je Java jednoduchá, super rýchla a efektívna pri riešení úloh; na druhej strane Scala je extrémne kompaktný a ľahšie zapisovateľný (hoci ťažko zrozumiteľný a laditeľný) so znížením efektívnosti súčasne.

Výhody a nevýhody Scaly sú často ovplyvnené, pretože nenašli žiadny problém pri písaní žiadosti alebo boli neúspešné. Aby sa to správne vyhodnotilo, je skutočne dôležité pochopiť dôvod a fakty, ktoré stoja za takýmito názormi.

Hlavným rozdielom medzi programami Java a Scala je ich filozofia a povaha pri písaní kódu. Java je čisto objektovo orientovaná a zameriava sa na triedy, zapuzdrenie a podobne, zatiaľ čo Scala je založená na funkčnom prístupe. Akonáhle budete vedieť tento rozdiel, ich učenie bude len otázkou času.

Odporúčané články

Tu je niekoľko článkov, ktoré vám pomôžu získať viac podrobností o scala vs java, takže stačí prejsť na odkaz.

  1. Čo je programovací jazyk schémy výhod
  2. Tipy a triky programu Microsoft Excel
  3. Rozdiel medzi Java Performance a Python
  4. Java Interview Otázky pre Fresher Najdôležitejší
  5. Kariéra ako Java Developer
  6. Kariéra v Java
  7. 10 dôležitých otázok rozhovoru Java Multi-Threading

Kategórie: