Źródło obrazu: pixabay.com

Scala vs Java Performance - Witamy w Ultimate Battle of the Century. Scala kontra Wszechmocna Jawa. Niektórzy ludzie mogą nawet zapytać dlaczego? Niektórzy mogą nawet powiedzieć, że Scala w rzeczywistości jest częścią samej Javy, dlaczego więc to porównanie Scala vs Java? Powodem jest to, że Scala nie jest dokładnie Javą. Heck! To nawet nie jest blisko Javy. Chociaż używa kompilatora JVM (Java Virtual Machine), jest tylko częściowo podobny do Java.

Można powiedzieć, że Java jest Wielkim Ojcem Scali. Powodem jest to, że ma kilka cech Javy, takich jak kompilowanie prostych kodów w kodach bajtów, mniejszą integrację i wiele innych. Jest to jeden z powodów, mimo że Scala ma Javę, „nie” to Java. Zmieszany? Tak, ja też. I to jest powód, dla którego piszę ten blog skierowany do początkujących, aby się nie pomylić.

Już wystarczająco dużo rozmów, zacznijmy i zobaczmy, jakie są różnice, podobieństwa i powody programowania w Scali, aby ewoluować tak szybko, gdy mamy już Javę.

Możesz sprawdzić infografikę w celu schematycznego porównania Scali z Javą.

Czas czytania: 90 sekund

Infografiki Scala vs Java

Podejście Scala vs Java

Java jest językiem programowania obiektowego. Jego celem jest głównie gromadzenie i manipulowanie danymi. Stara się udostępniać aplikacje codziennym użytkownikom za pomocą graficznych interfejsów użytkownika i wzorców obiektowych, podczas gdy z drugiej strony programowanie Scala jest zgodne z tradycyjnym podejściem funkcjonalnym.

Scala w przeciwieństwie do Java, jest językiem skompilowanym maszynowo. Oznacza to, że został zaprojektowany do działania w określonym środowisku, takim jak JVM, i oferuje połączenie podejścia funkcjonalnego i obiektowego za pomocą kompilatora (podobnego do DOS) i systemu typów skanowanego statystycznie w tym czasie kompilacji, która jest znowu taka sama jak Java, z wyjątkiem tego, że ma ekspresyjną składnię języków wysokiego poziomu, takich jak Ruby.

Ale nie ignorowanie tych samych funkcji, które sprawiają, że wersja Scala jest tak produktywna, może również utrudnić wydajność scala vs Java i uczynić ją znacznie bardziej katastrofalną niż powinna.

Potrzeba narodzin Scali

Co to jest Scala? Scala została opracowana specjalnie z myślą o lepszym języku niż Java. Deweloperzy chcieli zostawić te części Java, które utrudniają produktywne programowanie, są zbyt czasochłonne, a także frustrują programistę. Chodzi o to, że pomimo różnic w kodzie i zmian w podejściu (w porównaniu do Javy) może to nieco utrudnić język Scala, ale wynik jest znacznie bardziej przejrzysty i dobrze skonstruowany, co ostatecznie jest łatwiejsze w użyciu i czytaniu podobne do tego takich jak Python. możesz nawet przejść przez Scala vs Python na moim następnym blogu.

Przyjrzyjmy się prostemu drukowaniu tekstu w obu językach:

Jawa:

klasa publiczna 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 ma prawie żadnej różnicy. Nie martw się Mam się jeszcze tutaj pochwalić. Teraz rzućmy okiem na dokładniejszy przykład. Poniżej znajduje się przykład tego, jak długi fragment kodu napisany w Javie; może po prostu być jednym linerem w Scali:

Polecane kursy

  • Profesjonalne szkolenie XML
  • Kurs certyfikacyjny do egzaminu CCNA
  • Szkolenie z programowania w systemach UNIX i Linux
  • Szkolenie HTML 5

Jawa:

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)

Zatem jedna linia w Scali jest równa jedenaście linii Java. Mówiąc ściślej, Java nie ma zwartości programu Scala, dlatego pisanie długich kodów stało się nawykiem programistów Java. Właściwie możemy to nawet napisać w ten sposób:

public class People extends DTOBase

(

public String start;

public String stop;

)

Warto zwrócić uwagę na zwartość języka programowania scala. Potrafię pisać pola nawet bez pomocy programów pobierających i ustawiających, a także bez wąskiego gardła. Oznacza to, że rozwój języka Java zmierza również w kierunku zwartości.

Nie trzeba dodawać, że Java ma również kilka sztuczek. Jest powód, dla którego zdominował świat programowania. Java może jednak nieco skrócić kod, ale oczywiście nie w standardowym użyciu.

Teraz spójrzmy tutaj na Plain Old Java Object. Załóżmy, że jesteś niesamowitym programistą (co oczywiście nie jestem… bła… po prostu żartuję) Tak więc, mówiąc, udało ci się jakoś zmniejszyć kod, ale o jakiej długości? 5 do 6 wierszy?…. Pozwól mi to wyjaśnić… co, jeśli zamierzasz napisać tak duży fragment kodu:

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… Już czuję się śpiący. Teraz spójrzmy na Scalas. Na wszelki wypadek pozwólcie, że powiem wam, że nie próbuję tutaj redukować żadnego kodu. Właśnie piszę ten sam fragment kodu, który napisałem powyżej, w najbardziej podstawowym formacie (jak pisałby początkujący programista) w Scali dla (użyłem rekordów jako list lub zestawień):

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

)

Być może słyszałeś ludzi mówiących, że Java jest znacznie prostsza niż Scala. Pozwól, że cię o to zapytam; w jakim języku czujesz się teraz bardziej skomplikowany? Więc następnym razem, gdy będziesz się kłócić z programistą Java, zachowaj ten prosty program przy sobie.

Nie bój się Chociaż kody Java wydają się duże, w rzeczywistości nie są tak skomplikowane. O wiele łatwiej jest zrozumieć Javę niż Scalę. Scala jest zdecydowanie zbyt kompaktowa. Powiedziałbym, że jest to odpowiednie dla doświadczonych programistów, którzy mają wieloletnie doświadczenie w tworzeniu aplikacji w Javie. Początkującym trudno byłoby napisać i zrozumieć Scalę bez znajomości Javy.

Doświadczeni koderzy mogą nawet argumentować, że Java jest bardziej czytelna niż Scala, ponieważ przyczyną są głęboko zagnieżdżone kody Scali. W Scali możesz zdefiniować funkcje wewnątrz funkcji, w innej funkcji, w innym obiekcie, który jest wewnątrz klasy i tak dalej. Widzisz, tyle do powiedzenia na temat zwartości. Chociaż w Javie istnieje potrzeba zwartości, czasem przynosi ona druzgocące efekty, jeśli jest źle napisana. Tak druzgocący, że nawet nie zrozumiesz własnego kodu.

Chociaż Scala jest tutaj niepokonany, dzieje się tak jednak z poświęceniem wydajności. Nigdy nie rozmawialiśmy o testach wydajności Scali, prawda? Niedawno przetestowałem testy wydajności Scala i Java na moim procesorze AMD-A8. Rezultat, który uzyskałem, był naprawdę nieoczekiwany. Chociaż w Scali można pisać kompaktowe kody, wydajność, tj. Prędkość jest w rzeczywistości dwa razy wolniejsza w porównaniu z Javą.

Wniosek

Scala Java; na końcu są dwie różne strony tej samej monety. Oba mają własny zestaw zalet i wad. To jest powód, dla którego nigdy nie możesz zastąpić Javy Scali i odwrotnie. Z jednej strony, gdzie Java jest prosta, superszybka i wydajna w obsłudze zadań; z drugiej strony Scala jest niezwykle kompaktowy i łatwiejszy do pisania (choć trudny do zrozumienia i debugowania), przy jednoczesnym zmniejszeniu wydajności.

Często ma to wpływ na zalety i wady Scali, ponieważ nie znalazły one żadnego problemu przy pisaniu aplikacji lub były nieskuteczne. Aby właściwie to ocenić, w rzeczywistości ważne jest zrozumienie przyczyny i faktów leżących u podstaw takich opinii.

Główną różnicą między Javą a Scalą jest ich filozofia i ich natura w pisaniu fragmentu kodu. Java jest czysto obiektowa i koncentruje się na klasach, enkapsulacji i innych rzeczach, podczas gdy Scala opiera się na podejściu funkcjonalnym. Gdy poznasz tę różnicę, poznanie ich będzie kwestią czasu.

Polecane artykuły

Oto kilka artykułów, które pomogą Ci uzyskać więcej szczegółów na temat Scala vs Java, więc po prostu przejdź przez link.

  1. Jakie są korzyści Programowanie Język programowania
  2. Microsoft Excel Porady i wskazówki
  3. Różnica między wydajnością Java a Pythonem
  4. Pytania do wywiadu Java dla odświeżacza | Najważniejszy
  5. Kariera jako programista Java
  6. Kariera w Javie
  7. 10 ważnych pytań do wywiadu wielowątkowego Java

Kategoria: