Scala za wolna, więc Kotlin

0

W wakacje zacząłem zgłębiać temat pt. Scala. Używają u nas w banku Twitter Finagle. Biblioteka klient/serwer https://github.com/jarekczek/scalaJacksonConvie wygląda i mały projekcik zrobiłem. Problem polega na tym, że ile razy miałbym coś zrobić w Scali to mnie krew zalewa. Laptop (edit: mój prywatny) ma 4GB i jak załaduję IntelliJ + SBT, to walczy na granicy swoich możliwości. Nie śmiem właściwie przeglądarki włączyć. Uruchamianie, kompilacja - zajmuje to sporo czasu, choć projekt jest mikro.

Czy Kotlin będzie lepszym kandydatem do rozwoju? Z opisów wygląda, że jest szybszy, choć nie tak elastyczny jak Scala. Pattern matching nie bardzo (dzone). Zamiast Twitter Finagle używałbym może tworu o nazwie ktor.

Dlaczego nie java? Bo java ma jednak słabe wsparcie dla programowania funkcjonalnego. Nie wszystko da się mapować, zbierać. Brak funkcji zip. I ciągle te wyjątki. Przez łapanie wyjątków w lambdach, trzeba z nich w ogóle rezygnować albo pisać od cholery boilerplate'a. Na takie problemy natrafiłem, choć jeszcze niewiele w tym robiłem. Stwierdziłem, że nie tędy droga.

Czy ktoś już szedł tą drogą (Scala -> Kotlin), albo może po prostu wie, coś na ten temat? Najlepiej z własnego doświadczenia.

0

4GB w laptopie dla programisty ?

Gdzie Ty pracujesz?

0

Jeśli chodzi o problem laptopa 4GB, to raczej nie uda Ci się dobrze na nim pracować z IntelliJ. Narzędzia zużywają podobną ilość zasobów dla Scali i Kotlina.

0
  1. Dołóż RAMu.
  2. Programowanie funkcyjne, a nie funkcjonalne.
  3. Profit! :)
1

Laptop ma 4GB i jak załaduję IntelliJ + SBT, to walczy na granicy swoich możliwości.

  1. Sprzedaj laptopa
  2. Kup za grosze kompa z 512mb ramu
  3. Programuj w assemblerze w notatniku
  4. Profit!
0

przecież dodatkowa kostka sodimm 4gb to koszt 50-60zł :)

1

Popieram z tym RAMem. Jak coś nie ma minimum 16 gb to leci na podstawkę pod kawę.
Kotlin Ci przy tym specjalnie nie pomoże, IntelliJ i Java też Ci średnio działają - co najwyżej o tym nie wiesz.

Jak juz poznasz Scalę to Kotlin wkurza na każdym kroku - za nie bycie Scalą, ale Java bardziej... więc w ramach kompromisu z zespołem piszę w Kotlinie. Da się.

0

A może Elixir? Klarna Bank AB używają Erlanga, świetnie się sprawdza w systemach rozproszonych i dobrze się skaluje.

0

Widzę, że tu niezłe lobby sprzętowe. Kup, kup, kup. Ale ja jednak zaoszczędzę. Kotlin na IntelliJ śmiga na prędkości porównywalnej z Javą, przy pierwszym wrażeniu. Nie potrzebuje SBT, IntelliJ robi wszystko sam, więc wymagania znacznie niższe.

Wygląda na to, że w Scali najbardziej nie wchodził mi ten SBT. Nauka nowego narzędzia, topornego i słabo udokumentowanego. A tu mamy stary dobry gradle. Podoba mi się.

0

zmien edytor na lzejszy, np emacs jest fajny.
i jesli chcesz pisac funkcyjnie a nie zalezy ci na jvm to moze haskell?
przy emacsie przydaly mi sie:
https://commercialhaskell.github.io/intero/
https://blog.alainodea.com/en/article/490/haskell-intero-in-emacs-first-impressions-and-howto

0

Swoja droga polecam do pracy ze Scala ustawic sobie ramdisk, wrzucic tam intellij/mvn/scala-compiler i ustawic w projekcie output compilation path na ten ramdisk i problemy z wolnym odpalaniem i podpowiadaniem sie koncza.

Zreszta, Scala bedzie zawsze wolna dla czlowieka, ktory developuje w ten sposob ze pisze linia po linii i odpala z System.out.println() co by zobaczyc czy sie nie pomylil :)

0

Zreszta, Scala bedzie zawsze wolna dla czlowieka, ktory developuje w ten sposob ze pisze linia po linii i odpala z System.out.println() co by zobaczyc czy sie nie pomylil :)

Jeśli ktoś bardzo lubi programować linia po linii to Scala od dawna oferuje REPLa. Łatwo można odpalić REPLa w konkretnym projekcie (a więc mając klasy z projektu na classpath'ie) z poziomu SBTa: https://alvinalexander.com/misc/scala-how-to-start-repl-session-in-sbt-simple-build-tool

0

IntelliJ jest bardzo pamięciożerny.
Scala jest bardzo pamięciożerna.
Kotlin (przynajmniej pod IJ) działa szybciej od Scali, ale cudów nadal nie ma.
Na 4 GB RAMu jest tak sobie (na stacjonarnym całkiem nieźle, na lapopie słabo – nie wiem jeszcze co jest decydującym czynnikiem).
Na 2 GB jest tragicznie.
Na 1 GB (tak, próbowałem!) można sobie czekać i czekać…

Propozycje przesiadki na 512 MB i pisanie w asemblerze uważam za niestosowne. Jest wiele kompilatorów i IDE które nie wymagają 16 giga RAMu żeby sprawnie działać. Ale to JVM. Ciężka, pamięciożerna kobyła.

0

Rozsądna praca ze scalą, javą, intellij, nodejs itd to u mnie około 12GB. (tyle daje na VMki, czasem muszę ich kilka odpalić).
**Sbt **,paradoksalnie jest całkiem szybkie, szczególnie jak siędo javy podepnie (ale kto tak robi..). ~ robi robotę, choć gradle też sie dorobił continous builda. Ostatnio mam wrażenie, ze Sbt pod Intellij też zaczęło sprawnie działać.

Kompilowanie prostej Scali (Scavy) jest trochę wolniejsze, niż javy, ale tak naprawdę staje się wolne dopiero, jak się korzysta z featurów Scali typu implicity, makra. Tych ficzerów nawet nie ma w Kotlinie i Javie - więc trudno porównać.

0

IntelliJ nie jest pisane z myślą o oszczędzaniu pamięci. Jeśli chcesz w nim pracować to 8GB jest absolutnym minimum, odpalenie jakiejś wirtualki, czy emulatora telefonu to już 16GB i taniej się chyba nie da. Kompilacja Kotlina - nie jest jakoś odczuwalnie wolniejsza niż Java, za to mam wrażenie, że IntelliJ potrafi się momentami zagubić w większym projekcie Kotlin. Jeżeli laptop o którym piszesz to twój osobisty sprzęt, to czas pomyśleć o jego wymianie, jeżeli firmowy, to chyba należy zmienić firmę :D

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