Scala?

0

Jak myślicie czy jest sens uczenia się Scali z myślą o pierwszej pracy nie znając javy czy lepszym posunięciem będzie nauka Javy?

2

To będzie dość ryzykowne posunięcie, bardzo ograniczysz sobie wybór.

Lepiej będzie ogarnąć Javę i liznąć podstawy Scali oraz programowania funkcyjnego. Dużo firm szuka Java/Scala Developera albo do Sparka gdzie choć piszesz w Scali, to niespecjalnie musisz być w niej dobry. Im nie przeszkadza brak znajomości Scali lub pytają o absolutne podstawy z tego.

Te firmy, które bardziej skupiają się na czystej Scali i programowaniu funkcyjnym, to rzadko biorą stażystów/juniorów, więc tak, czy inaczej nie dostaniesz się na start.

Bardzo lubię Scalę i gorąco ją polecam, ale jest to ciężki język na sam początek. Sam programuję w Scali i wbrew swojej radzie zacząłem od niej (ale kojarzyłem coś ze studiów z Javy i innych języków) i patrząc wstecz, to miałem bardzo dużo szczęścia, że udało mi się znaleźć w tym pracę od razu :P

1

Zgadzam się z przedmówcą. U mnie w firmie jest zespół Big Data, który siedzi na Sparku i Hadoopie, złożony z midów i senior Java developerów, dla których Scala jest językiem dodatkowym, a nie głównym.
Zauważ, że Scala ma dość wąskie zastosowania, zaś Java jest językiem wszechstronnym (a i tak trafisz do spaghetti kodu :) ).

0

Moim zdaniem nie ma szans dobrze opanować scale bez dobrej znajomości java i podstaw JVM -a. Jako przykład podam że w scali możesz spotkać sporo java -owych typów danych plus scale -owy mechanizm implicit conversions. Znając java (i jej ograniczenia łatwiej) zrozumieć scale i co autorzy jej chcieli osiągnąć.

1

Kotlin jest dużo łatwiejszy od Scala i prostszy od Javy, są frameworki webowe do niego.

0

Widzialem ludzi bez wiekszego doswiadczenia, ktorzy dotkneli Scali... Zwyczajnie nie ogarniali co i jak.

0
Pipes napisał(a):

Zauważ, że Scala ma dość wąskie zastosowania, zaś Java jest językiem wszechstronnym (a i tak trafisz do spaghetti kodu :) ).

Czyli Scala nie jest Turing-complete, czy nie da się jej łączyć z innym kodem na JVM, czy po prostu ssie?
Czy może wąskie zastosowania to tak naprawdę niska popularność wynikająca z tego, że przeciętny Javowiec nie ogarnia?

0
somekind napisał(a):
Pipes napisał(a):

Zauważ, że Scala ma dość wąskie zastosowania, zaś Java jest językiem wszechstronnym (a i tak trafisz do spaghetti kodu :) ).

Czyli Scala nie jest Turing-complete, czy nie da się jej łączyć z innym kodem na JVM, czy po prostu ssie?
Czy może wąskie zastosowania to tak naprawdę niska popularność wynikająca z tego, że przeciętny Javowiec nie ogarnia?

Nie wiem co autor miał na myśli, bo Scala jest "potężniejsza" od Javy
Prędzej to co Scala oferuje ponad Javę/Kotlina ma węższe zastosowania albo takie wymagające dobrej znajomości programowania funkcyjnego, a o takich programistów nie jest łatwo.

1

Obecnie znam Scalę raczej słabo i w pracy używam Javy. Uważam, że lepiej nauczyć się najpierw porządnie Javy, a później brać za inne języki JVM-owe jak np. Scala. To jest nadal ekosystem JVM. Być może będziesz musiał użyć jakiejś biblioteki javowej w projekcie scalowym i to znacznie ułatwi Ci pracę. W drugą stronę raczej rzadziej się zdarza. Ucząc się w pierwszej kolejności Javy będziesz później wszystko lepiej rozumiał. Języki JVM-owe często uzupełniają braki Javy. Nie poleciłbym Scali i języków funkcyjnych lub obiektowo-funkcyjnych na początek. Niemniej jednak, nie jest to niemożliwe, żeby ogarnąć Scalę bez znajomości Javy, ale IMO będziesz wtedy trochę słabszym programistą tego języka.

0

Z myślą o pierwszej pracy na pewno nie. Po pierwsze mniejszy rynek, a po drugie większa konkurencja (sporo programistów scali, ma backgroud w Javie, jak nie wszyscy).

1 użytkowników online, w tym zalogowanych: 0, gości: 1