Vir slike: pixabay.com

Scala vs Java Performance - Dobrodošli v končni bitki stoletja. Scala v primerjavi z vsemogočno Javo. Nekateri se lahko celo vprašajo, zakaj? Nekateri morda celo rečejo, da je Scala nepopolno del same Jave, zakaj potem ta primerjava Scala vs java? Razlog je v tem, da Scala ni ravno Java. Hudiča! Niti blizu Jave ni. Čeprav uporablja prevajalnik JVM (Java Virtual Machine), je le deloma podoben Javi.

Lahko rečete, da je Java veliki oče Scale. Zato ima Java nekaj značilnosti, kot je sestavljanje preprostih kod v bajtnih kodah, manj integracije in še veliko več. Kljub temu, da ima Scala Java, "to ni" Java. Zmeden? Ja, tudi jaz sem bil. In to je razlog, da pišem ta blog, namenjen začetnikom, da se ne bi zmedel.

Dovolj je že pogovorov, začnimo in poglejmo, kakšne so razlike, podobnosti in razlogi, da se programiranje v Scali razvija tako hitro, ko že imamo Java.

Za diagramatično primerjavo Scale in Java si lahko ogledate infografiko.

Čas branja: 90 sekund

Scala vs Java Infographics

Pristop Scala proti Javi

Java je objektno programiran jezik. Njegov cilj je predvsem osredotočen na zbiranje in obdelavo danih podatkov. Aplikacije poskušajo uporabnikom približati grafične uporabniške uporabnike in objektno usmerjene vzorce, medtem ko programiranje Scala povsem sledi tradicionalnemu funkcionalnemu pristopu.

Scala je za razliko od Jave strojno sestavljen jezik. To pomeni, da je zasnovan tako, da deluje v specifičnem okolju, nekako podobnem JVM, in ponuja kombinacijo funkcionalnega in objektno usmerjenega pristopa s pomočjo prevajalnika (podobno kot pri dos) in sistemskega tipa, ki je bil takrat statistično skeniran. sestavljanja, ki je spet enako kot Java, le da ima izrazno skladnjo jezikov na visoki ravni, kot je Ruby.

A ne gre zanemariti enakih lastnosti, zaradi katerih je različica Scale tako produktivna, lahko tudi ovira zmogljivost Scala vs java in jo naredi veliko bolj katastrofalno, kot mora biti.

Potreba po rojstvu Scale

Kaj je Scala? Scala je bila razvita posebej z namenom, da bi bil boljši jezik kot Java. Razvijalci so želeli, da bi pustili tiste dele Jave, za katerimi ovira produktivno programiranje, preveč časa traja skupaj s tem, da razvijalca to frustrira. Kljub temu, da obstaja razlika med kodo in spremembe v pristopu (v primerjavi z Javo), lahko jezik Scala nekoliko oteži, rezultat pa je veliko bolj čist in dobro strukturiran, kar je na koncu lažje za uporabo in branje podobno kot všečkov Pythona. lahko celo prenesete s Scalo proti Python v mojem naslednjem blogu.

Oglejmo si preprosto tiskanje besedila v obeh jezikih:

Java:

javni razred 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 … Razlike skoraj ni. Brez skrbi. Tu se še moram pokazati. Zdaj pa si oglejmo natančnejši primer. Sledi primer, kako dolg kos kode je napisan na Javi; je v Scali preprosto en linijski pas:

Priporočeni tečaji

  • Strokovno usposabljanje XML
  • CCNA izpitni tečaj
  • Usposabljanje za programiranje UNIX in Linux OS
  • HTML 5 Vadba

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)

Tako je ena vrstica v Scali enaka enajstim vrsticam Jave. Če sem natančnejši, Java primanjkuje kompaktnosti programa Scala, zato je pisanje dolgih kod postalo navada razvijalcev Java. Pravzaprav lahko celo napišemo tako:

public class People extends DTOBase

(

public String start;

public String stop;

)

Kompaktnost programskega jezika skala je resnično vredna omembe. Polje lahko napišem tudi brez pomoči getterjev in seterjev, in tudi brez ozkega ozkostitve. Pomembno je, da razvoj Java jezika teče tudi do kompaktnosti.

Ni treba posebej poudarjati, da ima Java nekaj trikov tudi v rokavu. Obstaja razlog, zakaj je prevladoval v svetu programiranja. Java lahko sicer kodo nekoliko skrajša, vendar očitno ne v standardni uporabi.

Zdaj si oglejmo navaden objekt Java tukaj. Predpostavimo, da ste super programer (česar očitno ne … napačno .. šalim). Če rečem, nekako ste uspeli zmanjšati kodo, ampak na kakšno dolžino? 5 do 6 vrstic?… Naj to razčistim … kaj pa, če nameravate napisati veliko kodo, kot je ta:

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…. Počutim se že zaspano. Zdaj pa poglejmo Scalas. Dovolite mi, da povem, da tukaj ne poskušam zmanjšati nobenega dela kode. Pravkar pišem isti kos kode, ki sem ga napisal zgoraj v najosnovnejšem formatu (kot bi napisal začetnik razvijalci) v Scali za (zapise uporabljam kot sezname ali arrayliste):

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

)

Morda ste slišali ljudi, ki pravijo, da je Java veliko bolj preprosta od Scale. Naj vas zdaj vprašam; kateri jezik se vam zdi bolj zapleten, kaj? Ko se boste naslednjič prepirali z razvijalcem Java, imejte ta preprost program pri sebi.

Ne bojte se. Čeprav se kode Java zdijo velike, v resnici niso tako zapletene. Javo je pravzaprav veliko lažje razumeti kot razumeti Scalo. Scala je preveč kompaktna. Najboljše bi rekel, da je to primerno za izkušene razvijalce, ki imajo dolgoletne izkušnje z razvojem aplikacij na Javi. Začetniki bi težko pisali in razumeli Scalo, ne da bi poznali Javo.

Izkustveni kodri lahko celo trdijo, da je Java bolj berljiva od Scale, razlog pa so globoko ugnezdene šifre Scale. V Scali lahko določite funkcije znotraj funkcij, v drugo funkcijo, znotraj drugega predmeta, ki je znotraj razreda in tako naprej. Torej, vidite, toliko o kompaktnosti. Čeprav je na Javi potrebna kompaktnost, včasih prinese uničujoče učinke, če je napisan slabo. Tako uničujoče, da svoje kode sploh ne boste razumeli.

Čeprav je Scala tukaj neporažena, je to z žrtvovanjem delovanja. Nikoli se nismo pogovarjali o uspešnosti Scale, kajne? Pred kratkim sem preizkusil merila Scala in Java na svojem CPE AMD-A8. Rezultat, ki sem ga dobil, je bil pravzaprav nepričakovan. Čeprav lahko v Scalo pišete kompaktne kode, je zmogljivost, tj. Hitrost, v primerjavi z Javo dejansko dvakrat manjša.

Zaključek

Scala Java; na koncu sta dve različni strani istega kovanca. Oba imata svoj niz prednosti in slabosti. To je razlog, zakaj Jave nikoli ne morete zamenjati za Scalo in obratno. Na eni strani, kjer je Java preprosta, zelo hitra in učinkovita pri ravnanju z nalogami; na drugi strani je Scala izjemno kompaktna in lažja za pisanje (čeprav težko razumljiva in odpravljanje napak), obenem pa kompromis učinkovitosti.

Na prednosti in slabosti Scale pogosto vplivajo, ker niso napisali nobenega vprašanja o pisanju prošnje ali pa niso bili uspešni. Za pravilno oceno tega je pravzaprav pomembno razumeti razlog in dejstva, ki stojijo za takšnimi mnenji.

Glavna razlika med Javo in Scalo je v njihovi filozofiji in njihovi naravi do pisanja kode. Java je izključno objektno usmerjena in se osredotoča na razrede, kapsulacijo in drugo, Scala pa temelji na funkcionalnem pristopu. Ko boste spoznali to razliko, bo njihovo učenje le vprašanje časa.

Priporočeni članki

Tukaj je nekaj člankov, ki vam bodo pomagali do podrobnosti o skali vs java, zato pojdite po povezavi.

  1. Kakšne so prednosti programa Programski jezik
  2. Nasveti in triki Microsoft Excel
  3. Razlika med Java Performance in Python
  4. Java Intervju Vprašanja za svež | Najbolj pomembno
  5. Kariera kot razvijalec Java
  6. Kariera na Javi
  7. 10 pomembnih vprašanj o intervjuju z različnimi nitmi Java

Kategorija: