Izvor slike: pixabay.com

Scala vs Java izvedba - Dobrodošli u Ultimate Battle of the Century. Scala nasuprot Svemoćnoj Javi. Neki se mogu čak pitati zašto? Neki mogu čak reći da je Scala netaknuti dio same Jave, pa zašto onda ta skala i java usporedba? Razlog je taj što Scala nije baš Java. Pakao! Nije ni blizu Jave. Iako koristi JVM (Java Virtual Machine) kompajler, on je samo djelomično sličan Javi.

Možete reći kako je Java veliki otac Scale. Zbog toga ima nekoliko karakteristika Jave poput sastavljanja jednostavnih kodova u bajtovske kodove, manje integracije i mnogo više. To je jedan od razloga, iako Scala ima Javu to "nije" Java. Zbunjeni? Da, i ja sam također bio. I to je razlog zašto pišem ovaj blog ciljajući početnike kako se ne bi zbunio.

Dosta je razgovora, idemo započeti i vidjeti koje su razlike, sličnosti i razlozi da se programiranje u Scali razvija tako brzo kad već imamo Javu.

Možete pogledati infografiku za shematsku usporedbu Scala i Jave.

Vrijeme čitanja: 90 sekundi

Scala vs Java Infographics

Scala vs Java pristup

Java je objektno programirani jezik. Njegov je cilj uglavnom usredotočen na prikupljanje i obradu danih podataka. Pokušava učiniti dostupnima aplikacije svakodnevnim korisnicima uz pomoć grafičkih sučelja i objektno orijentiranih obrazaca, dok s druge strane Scala programiranje u potpunosti slijedi tradicionalni funkcionalni pristup.

Scala za razliku od Jave, stroj je sakupljani jezik. To znači da je dizajniran da radi u specifičnom okruženju pomalo nalik JVM-u i nudi kombinaciju funkcionalnog i objektno orijentiranog pristupa uz pomoć prevoditelja (sličan onome dos-a) i sustava tipa koji se statistički skenirao u to vrijeme. kompilacije koja je opet ista kao Java, osim što ima ekspresivnu sintaksu jezika na visokoj razini kao što je Ruby.

No, ne zanemariti iste značajke koje čine Scala verziju tako produktivnom, također može otežati izvedbu skala-java i učiniti je mnogo katastrofalnijom nego što treba biti.

Potreba za rođenjem Scale

Što je Scala? Scala je razvijena posebno s ciljem da bude bolji jezik od Jave. Programeri su željeli da ostave dijelove Jave iza kojih koči produktivno programiranje, previše vremena im je potrebno, zajedno s činjenicom da to frustrira programera. Poanta je da, iako postoji diferencijacija koda i promjene u pristupu (u usporedbi s Javom), mogu učiniti Scala jezik malo težim, ipak je rezultat mnogo čist i dobro strukturiran što je na kraju lakše koristiti i čitati slično onome od sličnih Pythona. čak možete proći sa Scalom vs Python na mom sljedećem blogu.

Pogledajmo jednostavno ispis teksta na oba jezika:

Java:

javna klasa 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 … Jedva da postoji razlika. Ne brini. Još se moram pokazati ovdje. Pogledajmo sada točniji primjer. Slijedi primjer kako dugačak dio koda napisan na Javi; jednostavno može biti jedan brod u Scali:

Preporučeni tečajevi

  • Profesionalni XML trening
  • CCNA tečaj za ovjeru ispita
  • UNIX i Linux OS programiranje obuka
  • HTML 5 trening

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)

Dakle, jedan je red u Scali jednak jedanaest linija Jave. Da budemo precizniji, Java-u nedostaje kompaktnost programa Scala, pa je pisanje dugih kodova postalo navika Java programerima. Zapravo čak možemo to i napisati ovako:

public class People extends DTOBase

(

public String start;

public String stop;

)

Kompaktnost programskog jezika skala zaista vrijedi primijetiti. Mogu napisati polje čak i bez pomoći gettera i settera i to bez čak i uskog grla. Znači, i razvoj Java jezika teče ka kompaktnosti.

Nepotrebno je napomenuti da Java ima i nekoliko trikova u rukavu. Postoji razlog zašto je dominirao u svijetu programiranja. Java može kôd malo skratiti, ali očito ne u standardnoj upotrebi.

Sada pogledajmo obični stari Java objekt ovdje. Pretpostavimo da ste sjajan programer (što očito nisam … griješite … samo se šalim) Dakle, da kažem, nekako ste uspjeli smanjiti kod, ali na koliko? 5 do 6 redaka? … neka mi to bude jasno … što ako namjeravate napisati kôd velik kao ovaj:

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…. Već se osjećam uspavano. A sad, pogledajmo Scalas. Ovdje samo da budem siguran, dopustite da vam kažem da ovdje ne pokušavam smanjiti nijedan dio koda. Upravo pišem isti dio koda koji sam gore napisao u najosnovnijem formatu (kao što bi to napisao početnik programer) u Scali (koristio sam zapise kao popise ili arrailiste):

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žda ste čuli ljude kako govore kako je Java mnogo jednostavnija od Scale. Dopustite da vas to sada pitam; na kojem se jeziku sada osjećate kompliciranije? Stoga, sljedeći put kada se svađate s Java Developerom, zadržite ovaj jednostavan program kod sebe.

Ne bojte se. Iako se Java kodovi čine velikom, zapravo nisu toliko složeni. Zapravo je daleko lakše razumjeti Javu nego razumjeti Scalu. Scala je previše kompaktna. Najbolje što bih rekao je da je to prikladno za iskusne programere koji imaju dugogodišnje iskustvo u razvoju aplikacija na Javi. Početnicima bi bilo teško napisati i razumjeti Scalu a da ne znaju Javu.

Iskusni koderi mogu čak tvrditi da je Java čitljivija od Scale, a razlog su duboko ugniježđeni Scala-ovi. U Scali možete definirati funkcije unutar funkcija, u drugu funkciju, unutar drugog objekta koji je unutar klase i tako dalje. Pa vidite, toliko da se kaže o kompaktnosti. Iako u Javi postoji potreba za kompaktnošću, ponekad donosi razorne efekte ako je napisano loše. Toliko pogubno da čak ni ne razumijete svoj vlastiti kod.

Iako je Scala ovdje neporažena, to je ipak sa žrtvom izvedbe. Nikada nismo razgovarali o mjerilima uspješnosti Scale, zar ne? Nedavno sam testirao referentne vrijednosti Scala i Java na svom AMD-A8 CPU-u. Rezultat koji sam dobio bio je zapravo neočekivan. Iako u Scala možete pisati kompaktne kodove, performanse tj. Brzina zapravo je dvostruko sporija u usporedbi s Javom.

Zaključak

Scala Java; na kraju su dvije različite strane iste kovanice. Oboje imaju svoj niz prednosti i nedostataka. To je razlog zašto nikad ne možete zamijeniti Java za Scalu i obrnuto. S jedne strane, gdje je Java jednostavna, super brza i učinkovita u upravljanju zadacima; s druge strane Scala je izuzetno kompaktna i jednostavnija za pisanje (iako je teška za razumijevanje i uklanjanje pogrešaka) uz istovremeno kompromis učinkovitosti.

Prednosti i nedostaci Scale često su ili pod utjecajem jer nisu pronašli nijedan problem s pisanjem zahtjeva ili su bili neuspješni. Da biste to ispravno procijenili, zapravo je važno razumjeti razlog i činjenice koje stoje iza takvih mišljenja.

Glavna razlika između Jave i Scale je njihova filozofija i njihova priroda prema pisanju koda. Java je isključivo objektno orijentirana i fokusirana je na klase, kapsulaciju i ostalo, dok se Scala temelji na funkcionalnom pristupu. Jednom kada saznate ovu razliku, njihovo učenje bit će samo pitanje vremena.

Preporučeni članci

Evo nekoliko članaka koji će vam pomoći da saznate više detalja o skali vs java, pa samo prođite vezu.

  1. Koje su programske strane u programu sheme pogodnosti
  2. Savjeti i trikovi Microsoft Excel
  3. Razlika između Java Performance i Python
  4. Java Intervju pitanja za svježiji | Najvažnije
  5. Karijere kao Java Developer
  6. Karijera na Javi
  7. 10 važnih Java pitanja s višestrukim navojem intervjua

Kategorija: