Zdajesz sobie sprawe, ze Javie zarzuca się brak skalowalności?
?? wtf
co do zarobków:
http://www.indeed.com/jobtrends/scala.html
http://www.itjobswatch.co.uk/IT-Job-Market/UK/Programming-Languages
https://nofluffjobs.com/#criteria=scala
Póki co kasa jest w Scali raczej większa, ponieważ brakuje rąk do pracy. Po prostu trudniej znaleźć Scalowca.
Co do skalowalności:
https://dzone.com/articles/scaling-scala-vs-java
@Wibowit na nofluffjobs są polskie oferty to można porównać ;)
Próbuję tę Scalę ostatnio ugryźć, ale ani sam język nie bardzo mi do gustu przypada, ani nie jestem entuzjastą JVM.
No i zaczynam rozumieć po co javowcom i eclipsiarzom tyle RAMu.
Muł straszny.
Mi tam nic nie muli. W czym piszesz? Nie jesteś trochę uprzedzony?
Jakoś C++ , C# używają najchetniej Cliona, Resharpera i często Netbeansa, gdzie w każdym z tych IDE pewnie główna część jest napisana głównie w Java.
To są skomplikowane IDE a nie edytory tekstowe.
Scala przy kompilacji czasem może mulić, bardziej niż Java.
Do Scali jest:
Scala IDE (Eclipse)
Intellij Idea (z pluginem Scala) - najlepszy wybór
Netbeans (z pluginem do Scala)
Jeśli masz w projekcie jakieś sbt to może trochę długo zaciągać i refreshować projekt.
A jesli sciagnales sobie Playa... to lepiej zaciagnac activator offline, w przeciwnym wypadku bedzie na biezaco sciagac z netu zamiast brac z dysku.
Jesli myslisz o poznaniu paradygmatu funkcyjnego mozesz tez obadac Haskella.
Aventus napisał(a):
@Azarien zainstaluj lepiej Idea, 100x lepsze IDE niż Eclipse.
Spróbowałem. Nie trawię tego.
Ciągle coś jest „nieaktywne”.
Przy pierwszym uruchomieniu, podczas tworzenia nowego projektu, z jakiegoś powodu nieaktywny jest przycisk Next.
Po restarcie środowiska jakoś zadziałało.
Dalej, z niewiadomego powodu nieaktywne są przyciski uruchamiania ani debugowania.
Aha, trzeba odczekać aż zindeksuje sobie coś tam.
Otwieram opcje. Chcę zmienić font edytora. Znalazłem. Opcja jest nieaktywna.
Aha, trzeba utworzyć nowy „schemat”. Nie wiedzieć po co, bo w schemacie jest tylko nazwa fontu i rozmiar. No dobra.
Doinstalowałem plugin do Scali. Utworzyłem projekt. O dziwo się dało.
Ale znowu przyciski Debug i Run są nieaktywne.
W menu Run są teraz po dwie pozycje Run i Debug. Jedne są - tak, tak - nieaktywne, drugie są aktywne.
Te drugie pokazują małe okienko z napisem "edit configurations". Po jego kliknięciu pojawia się okno z nie wiadomo czym, i przyciskiem Debug/Run... nieaktywnym.
Noż kuurrrr. Czy tak trudno wyświetlić komunikat CO I DLACZEGO jest nie tak, czy ja muszę zgadywać dlaczego ciągle coś jest nieaktywne?
To IntelliJ to jest jedno, wielkie, nieaktywne WTF.
Wolę jednak Eclipse, które choć działa wolniej, to działa.
Wielki Samiec napisał(a):
Ktoś pisał o wyższych zarobkach w Scali. Ja tych wyższych zarobków nie widzę (w PL oczywiście). W Java są zbliżone a czasami większe, a ofert jest mnóstwo w stosunku do Scali.
U nas jest chyba na razie za mało pracy w Scali, aby wyciągać wnioski. Jednak na zachodzie Scala bardzo popłaca: https://jaxenter.com/language-trends-and-salaries-java-way-ahead-121201.html
Azarien napisał(a):
Aventus napisał(a):
@Azarien zainstaluj lepiej Idea, 100x lepsze IDE niż Eclipse.
Spróbowałem. Nie trawię tego.
Ciągle coś jest „nieaktywne”.(...)
Aha, trzeba odczekać aż zindeksuje sobie coś tam.
(...)
To IntelliJ to jest jedno, wielkie, nieaktywne WTF.Wolę jednak Eclipse, które choć działa wolniej, to działa.
No to poczekaj, aż zaindeksuje. Jest niewiele momentów w których IntelliJ musi zaindeksować sobie projekt. Jest to np importowanie projektu czy podbicie wersji wtyczki do języka. Indeksowanie jest po to, by później szybko wyszukiwać elementy w projekcie - klasy (Ctrl+N), pliki (Ctrl+Shift+N), pola (Ctrl+Alt+Shift+N), ciągi znaków (Ctrl+Shift+F), etc
Jak najbardziej, to w końcu inny język ;) Niemniej jednak znajomość Javy jest przydatna przy wykorzystywaniu bibliotek Javowych (co jest dosyć częste). Prędzej czy później powinieneś nauczyć się trochę Javy, co przy dobrej znajomości Scali nie sprawi żadnego kłopotu.
Wizzie, dzięki za szybką odpowiedź!
Czyli to tak trochę jak z C i C++. To fajnie, bo Jave znam kiepsko (mniej niż absolutne podstawy) a Scala zaczyna mnie się podobać (może tylko chwilowo LOL).
Spodobał mnie się PLAY i dlatego pomyślałem głównie o SCALA. Czytałem, że moduły / biblioteki Scala można odpalać też w Java, więc jeszcze bardziej nabrałem chęci do nauki SCALA.
Jedyne co trochę mnie zmartwiło, to wypowiedzi kilku osób na DobreProgramy (PL) gdzie mówią, że popularność Scala się kończy.... Z drugiej strony jest też sporo ludzi, którzy uważają Jave za przestarzałą i przewidują jej bliski koniec :)
DobreProgramy? :D To może jeszcze dowiedz się co myślą ludzie z forum onetu i frondy? :D
http://www.indeed.com/jobtrends/scala.html
Na Onet nie wchodzę. Frondy nie znam. Na Dobre Programy są blogi i na jednym z nich osoby wypowiadali się programiści dość konkretnie, a ja się utwierdziłem w ich opinii porównując liczbę ofert pracy scala vs java.
Indeed można zaufać bo to jedna z większych stron z jobsami z tego co się orientuje.
Co do przedstawionego wykresu wygląda to ciekawie, mam nadzieję, że trend się utrzyma. Bo Scala rośnie, ale procentowo, w wartościach absolutnych na razie jeszcze "leży".
http://www.indeed.com/jobtrends/scala%2Cjava%2Cpython%2CC%23%2CC%2B%2B.html
Ściągnąłem https://github.com/slick/slick-codegen-example i działa jak należy. Przy activator run
tworzy tabelki w target/scala-2.11/src_managed/slick/demo/Tables.scala
. Tworzy je też przy wywołaniu activator gen-tables
.
np. to... nie wyglada zachecajaco...
https://github.com/theiterators/akka-http-microservice#master
ok, naszukalem sie ale znalazlem fajny, świeży przyklad:
https://github.com/knoldus/akka-http-slick
A ja mam takie skromne pytanie do znawców tematu. Dlaczego Java jest najszybszym językiem z pośród tych wszystkich języków działających na maszynie wirtualnej JVM? A może nie jest i tego bym się chciał od was dowiedzieć. Czy to dlatego że JVM jest pisane w C i pod Jave lub dlatego że Java jest najstarsza i ma najwięcej programistów którzy te jej szybkość ciągle usprawniają? Czy jest jakiś język programowania na JVM poza tymi znanymi jak Ceylon, Kotlin, Groovy, Clojure, Scala, które są jednak szybsze od Javy w działaniu?
Np takie całkowanie numeryczne pokazuje trochę który język jest szybszy od drugiego:
Plik Scala:
object Speed {
var N=10000
var M=1000
def calc():Double = {
var sum:Double = 0.0;
for (i <- 0 until N) {
var x:Double=20.0*i/N-10.0;
sum+=Math.pow(Math.E,-x*x)*(20.0/N);
}
return sum;
}
def main(args: Array[String]) = {
var s:Double=0;
var start:Long=System.currentTimeMillis();
for (i <- 0 until M) {
s+=calc();
}
println((System.currentTimeMillis()-start)/(M*1.0));
}
}
Plik Groovy:
N=10000;
M=1000;
def double calc() {
double sum=0;
for (i in 0..N) {
double x = 20.0*i/N-10.0;
sum+=Math.pow(Math.E, -x*x)*20.0/N;
}
return sum;
}
long start = System.currentTimeMillis();
double s = 0;
for (i in 0..M) {
s+=calc();
}
println((System.currentTimeMillis()-start)/(M*1.0));
Wychodzi że Scala na JVM potrzebowała na jedno wykonanie funkcji calc() około 5.11 ms, a Groovy na to samo potrzebowało 136.64 ms tak mniej więcej. Natomiast Java potrzebowała 4.79 ms.
Różnica między 5.11ms, a 4.79ms jest niewielka, praktycznie w granicach błędu pomiarowego. Natomiast różnica między 5ms a 136ms jest już znaczna. Wynika to z tego, że zarówno Java jak i Scala są statycznie typowane, a Groovy dynamicznie. Dynamiczne typowanie spowalnia program. Różnica w wydajności między Scalą i Javą może wynikać z tego, że w Scali zapis:
for (i <- 0 until N) instrukcja;
w rzeczywistości tworzy obiekt typu Range
, a potem po nim iteruje jak po kolekcji. Jeśli zmienisz tego fora na while to prawdopodobnie różnice w wydajności się jeszcze zmniejszą.