Co z tą Scalą ?

Co z tą Scalą ?
0

Zdajesz sobie sprawe, ze Javie zarzuca się brak skalowalności?

?? wtf

1

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.

Wibowit
Tyle, że to zarobki w UK, gdzie popularność Scali jest znacznie większa niż w Polsce.
0
0

@Wibowit na nofluffjobs są polskie oferty to można porównać ;)

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 21 godzin
0

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.

edytowany 1x, ostatnio: Azarien
vpiotr
Mi Eclipse CDT startuje poniżej 1s, ładuje mały projekt w 5s i zajmuje 14 MB RAM. Eclipse to najbardziej uniwersalne (Java, C++, PHP itd) i przez to najgorsze środowisko dla Javy jakie wiedziałem. Ale niestety bardzo popularne wśród pracodawców.
Aventus
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:UK
  • Postów:2235
0

@Azarien zainstaluj lepiej Idea, 100x lepsze IDE niż Eclipse.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
Azarien
zobaczę, ale z tego co widzę też jest napisane w Javie. to dobrze nie świadczy o jego wydajności :-)
1

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.

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 21 godzin
1
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.

edytowany 2x, ostatnio: Azarien
Zobacz pozostałe 33 komentarze
CZ
@H1ghlander miałem Ci nie odpisywać, ale takie teksty zachowaj dla siebie. Takie słowa dzielą ludzi i powodują, że sobie poprawiasz własne ego. Zrozum, że nie tylko ty potrafisz używać IDE, więc schowaj wacka do spodni.
H1
@członek zarządu miałem Ci nie odpisywać, ale takie teksty zachowaj dla siebie. Zły dzień i coś Cię ugryzło? Bo nie kapuję Cię. Niczego nie próbuję udowodnić, ani nie bronię żadnego IDE, poza tym, że powyższe uważam za przesadę, nic więcej. I Ty też wyluzuj bo masz ciśnienie z jakiś dziwnych powodów. Wcale zajebiście nie umiem korzystać z IDE. Chodziło mi o to, ze zadne IDE obecnie nie jest jakies super intuicyjne, żeby nie trzeba sie go uczyć. I tak zawsze trzeba poznać choćby skróty klawiszowe. Tez bym chcial rozbudowane IDE, zebym po 1h wszystko wiedzial.
CZ
mylisz ciśnienie z ustalaniem faktów. Ja mam zawór bezpieczeństwa, jak mnie zdenerwujesz to strzele Ci nim w oko i będziesz wiedział wtedy kiedy mam ciśnienie ;]
H1
najpierw ustal ggdzie mnie szukasz bo możesz nie trafić :P
1

Wynika z tego tyle, ze nie umiesz uzywac tych IDE.

napisalem Ci, ze musisz miec plugin do Scali...

wtf to jest Twoj post.

Z JSa sie urwales czy co?

0

Jesli przychodzisz z Visual studio to nie dziwie sie, ze masz wtf.
ja siedze w Javie i jak odpalam Visual Studio to nie wiem w ogole co i jak, od czego zacząć itp. Bo jest inaczej.

0

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.

0

Do Scali używam ScalaIDE bazujący na ciut starszej wersji Eclipse. Potem okrojony Intellij IDEA z wtyczką i na końcu NetBeans. Jest spory wybór więc nie jest najgorzej, są i tacy co piszą w C++/Javie w KDEvelop jak Jerzy Grębosz.

KR
Moderator
  • Rejestracja:prawie 21 lat
  • Ostatnio:dzień
  • Postów:2964
0
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

caer
fajnie by było gdyby takie porównanie uwzględniało staż, bo pozycje juniorskie w Javie czy .NETcie pewnie mocno zaniżają średnią
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około godziny
1
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


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
Azarien
tylko co ma indeksowanie do kompilacji?
Wibowit
Nie jestem pewien. Ja po prostu chwilę czekam i wszystko działa. Nie ma co się niecierpliwić. Czas poświęcony na indeksowanie zwraca się z dużą nawiązką.
KR
Nie zauważyłem, aby indeksowanie blokowało kompilację. Blokuje tylko szybkie wyszukiwanie.
0

Dołączając do wątku o Scali chciałem zapytać czy: Można / Warto / Jest sens uczyć się Scala od zera jednocześnie nie znając absolutnie JAVA? Czy jednak lepiej zacząć od JAVA?

Wizzie
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 7 lat
0

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.

0

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 :)

Wizzie
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 7 lat
0

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

0

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

Wizzie
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 7 lat
0

Nikt nie napisał, że Scala jest równie popularna co najpopularniejsze języki. Prawdopodobnie też nigdy nie będzie.

0

OK, pełna zgoda. Tylko żeby nie była tak popularna jak COBOL, Erlang i Haskell ;)

Głównie pytam i dywaguje oczywiście pod kątem przyszłej pracy...

1

Na drugiego Cobola to najwieksze szanse ma Java ;)

Skonczcie z tym gadaniem o oplacalnosci nauki czegos.
Pomyslcie o javascript tam cos wychodzi z mody co kilka miesiecy i jakos zyja ;)

0

Probuje wykorzystac slicka i uzyc SlickCodeGenTask do wygenerowania tabelek/encji.

Jak to zrobic?

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około godziny
0

Ś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.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
0

thx, czyli takie to proste. Czyli mam cos schrzanione w projekcie, ze nie dziala ;]

0

Czy może ktoś polecić jakiś przykładowy projekt z githuba z akką-http w jakiejś nowszej wersji?
Przydałoby się jakby był porządnie zrobiony, bo jak patrzę to każdy implementuje to inaczej.

0
0

ok, naszukalem sie ale znalazlem fajny, świeży przyklad:
https://github.com/knoldus/akka-http-slick

0

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:

Kopiuj
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:

Kopiuj
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.

Azarien
nie używasz nigdzie wyniku, co znaczy że kompilator może praktycznie cały kod wyrzucić podczas optymalizacji - i czasy większe niż 0 świadczą o tym że kompilatorom i JVM jeszcze daleko do optymalności.
Wibowit
Zależy jak ścisły jest model wykonania. Jeżeli zależy nam na skutkach ubocznych to w tym przypadku jest na przykład wykorzystanie operacji zmiennoprzecinkowych, które mogą rzucić wyjątkiem. Wycięcie wywołania funkcji calc() mogłoby więc zmienić semantykę programu.
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około godziny
0

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:

Kopiuj
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ą.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)