Nauka Scali w 2018

Odpowiedz Nowy wątek
2018-11-25 16:21
0

Uważacie, ze jest sens nauki Scali? Java w najnowszych wersjach jest już też praktycznie funkcjonalna. Ofert dla Scala Developerów jest stosunkowo niewiele na ten moment. Teraz pytanie - czy ma to szansę się zmienić w najbliższej przyszłości? Za parę lat być może to Scala wyprze Jave z rynku, ale mimo wszystko wydaje mi się, że jest językiem o wiele trudniejszym niż Java.
Widzicie rzeczywiście jakieś korzyści z nauki Scali, żeby zająć się nią na drodze komercyjnej, czy raczej jest to hobbystyczny język?

Pozostało 580 znaków

2018-11-25 16:59
2

Uważam, że nauka Scali przyda się nawet jeśli nigdy nie będziesz jej używać komercyjnie. Wykorzystanie języka gdzie nacisk kładzie się na paradygmat funkcyjny może pomóc Ci pisać lepszy kod w Javie. Poza tym wiele konceptów ze Scali (tych, które się sprawdzają) pewnie będzie wchodziło do Javy w najbliższych latach - np. pattern matching.

Jeśli chodzi o wyparcie Javy przez Scalę to pewnie to nie nastąpi.Liczba konceptów do ogarnięcia jest zdecydowanie większa niż w przypadku Javy, a więc nowe osoby mogą szybko się zniechęcić. Może Dotty będzie miał większą siłę przebicia ze względu na uproszczenie pewnych mechanizmów.

Jeśli chcesz znaleźć pracę w Scali to w Polsce jest to jak najbardziej realne. Osobiście, z perspektywy czasu bardzo cieszę się z przejścia na Scalę, mi się po prostu przyjemniej w niej pisze niż w Javie.

Tworzysz jakieś biznesowe aplikacje podobne do tych, które są w Javie? Jeżeli chodzi o sam rozwój, community języka to jest ono ok? No i koniec końców, czy zarobki w Scali są wyższe niż te w Javie? - Overkill 2018-11-25 18:34

Pozostało 580 znaków

2018-11-25 19:36
1

Tworzysz jakieś biznesowe aplikacje podobne do tych, które są w Javie? Jeżeli chodzi o sam rozwój, community języka to jest ono ok? No i koniec końców, czy zarobki w Scali są wyższe niż te w Javie?

Pewnie znajdą się projekty o podobnej tematyce pisane w Javie, nie mniej nie jest to żaden typowy CRUD czy webowa apka. Z tego co obserwuje w Scali łatwiej jest złapać ciekawszy projekt.
Z mojej perspektywy community jest bardzo ok. Całkiem sporo darmowych i aktualnych książek (scala with cats, FP for mortals), biblioteki mają bardzo porządnie napisaną dokumentacje, oficjalna książka Orderskiego też jest przystępnie napisana (https://booksites.artima.com/programming_in_scala_3ed)
Nie nastawiałbym się na jakiś skok zarobkowy. Wszystko zależy od miasta ale stawki są bardzo porównywalne do tych Javowych, czasami będą nieznacznie większe, czasami troszkę mniejsze od przeciętnych Javowych stawek regular/senior

Pozostało 580 znaków

2018-11-26 14:57
1

Java w najnowszych wersjach jest już też praktycznie funkcjonalna.

:D :D :D
To że coś ma lambdy nie powoduje, że jest praktycznie funkcyjne. Jeśli przyjmować taką definicję funkcyjności, to nawet C jest funkcyjne, bo ma wskaźniki na funkcje.

Za parę lat być może to Scala wyprze Jave z rynku

Nie chcę być złym prorokiem, ale raczej nie ma to szans. Scala jest fajnym językiem, ale większości programistom raczej wystarczy Java z lambdami, lub Java z lambdami i ładniejszą składnią czyli Kotlin. Kotlin ma serio duże szanse stać się głównym językiem na Androidzie o ile już się nie stał (nie, nie lubię Kotlina, uważam że to był zły wybór Google, ale w nim piszę, bo jednak co oficjalne wsparcie, to oficjalne). Z drugie strony jak znasz Scalę, to w Kotlinie też umiesz. Widziałem nawet gdzieś ostatnio fajnego posta jak gościu sedem program ze Scali na Kotlina przerobił :D

Odpowiadając na pytanie tytułowe: tak, oczywiście warto się uczyć Scali bo jest to fajny język, którego twórcy wprowadzają realne innowacje, a nie opierają się tylko na zrzynaniu mechanizmów z innych języków. Dlatego warto się nauczyć Scali dobrze, a nie poprzestać jedynie na składniowej powierzchowności (która w Scali jest średnio udana). System typów Scali jest bardzo fajny, system typów Dotty jest jeszcze fajniejszy - poznawanie tych rzeczy to dużo zabawy.

Jeśli chodzi o komercyjne pisanie w Scali - to oczywiście jest to możliwe, więc jak się dobrze nauczysz Scali, to z pracą raczej nie będzie problemu. Jest jej mniej niż w Javie, ale prawie nikt nie robi CRUDów w Scali, więc odsiewa to automatycznie wiele słabych ofert.

edytowany 2x, ostatnio: Krolik, 2018-11-26 15:04
fukcjonalna != funkcyjna :P moze chodziło mu o to że jakoś funkcjonuje? :) - Shalom 2018-11-26 15:16
@Shalom: nie, że jest funkcyjna. Bo w nowych wersjach na pewno już bardziej jest niż nie jest. @Krolik: Domyślam się, że Scala + spark to rynek BigData, więc pewnie jakieś kierunki pracy ciekawsze niż CRUD'y są :D - Overkill 2018-11-26 17:05
@Overkill: Bardziej jest niż nie jest? A patrzyłeś w ogóle na jakąkolwiek sensowną definicję programowania funkcyjnego? Na angielskiej Wiki jest dość dobra definicja https://en.wikipedia.org/wiki/Functional_programming : In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. .. Reszta artykułu też jest dość OK. A typowy kod Javowy to nadal festyn efektów ubocznych na każdym kroku. - Wibowit 2018-11-27 19:25

Pozostało 580 znaków

2018-11-27 19:10
Błękitny Kaczoro
0

Teraz odkąd Java 11 jest płatna, mniejsze firmy mogą przejść na Scala która jest na licencji BSD? Czy Scala szybciej się rozwija niż Kotlin?
Nie powstał ostatnio jakiś nowy język programowania na JVM?
Kiedyś uczyłem się Ceylon od RedHat, który też jest dostępny na JVM i nawet kilka projektów Open Source w nim napisano pod Gnome. Nie przepadam za Javą i składnią C++ podobną, ale Scala i Kotlin nie jest zły - mi się podoba ich składnia, taka prosta intuicyjna. Chociaż niektórych mogą przerastać na początku te wszystkie dodatkowe funkcje.

Pozostało 580 znaków

2018-11-27 19:16
0
Błękitny Kaczoro napisał(a):

Teraz odkąd Java 11 jest płatna, mniejsze firmy mogą przejść na Scala która jest na licencji BSD? Czy Scala szybciej się rozwija niż Kotlin?
Nie powstał ostatnio jakiś nowy język programowania na JVM?
Kiedyś uczyłem się Ceylon od RedHat, który też jest dostępny na JVM i nawet kilka projektów Open Source w nim napisano pod Gnome. Nie przepadam za Javą i składnią C++ podobną, ale Scala i Kotlin nie jest zły - mi się podoba ich składnia, taka prosta intuicyjna. Chociaż niektórych mogą przerastać na początku te wszystkie dodatkowe funkcje.

Oprócz przejścia firm na Scalę potrzeba jeszcze Developerów Scali, a tych wcale tak łatwo nie jest znaleźć. Więc trzeba pamiętać o tym, że małe firmy zazwyczaj wybierają w miarę popularne języki. W takim przypadku Kotlin wydaje się być lepszą opcją niż Scala.

Właśnie w takim przypadku Scala jest lepszą opcją niż Kotlin, bo Scala jest bardziej popularna. Tak gdzieś z 5 razy bardziej. To, że Kotlin rządzi na Androidzie, to niewiele znaczy, bo cały rynek aplikacji na Android jest wart mniej niż jedna duża firma w sektorze biznesowego IT (przychód Oracle: ~$40 mld, przychód Microsoft: ~$110 mld, całkowita sprzedaż aplikacji mobilnych w 2017: ~$70 mld; ale Android ma tylko część tego tortu). - Krolik 2018-11-28 10:58

Pozostało 580 znaków

2018-11-27 19:45
0
Błękitny Kaczoro napisał(a):

Teraz odkąd Java 11 jest płatna, mniejsze firmy mogą przejść na Scala która jest na licencji BSD? Czy Scala szybciej się rozwija niż Kotlin?

Nie Java tylko JDK. I nie jest płatny software tylko wsparcie do niego. No i Scala jest na tym samym JDK.
Kiedyś była na .NET ale zrezygnowali AFAIK.


Szacuje się, że w Polsce brakuje 50 tys. programistów

Pozostało 580 znaków

2018-11-27 22:15
Mały Piko
0

Czekam na coś lepszego niż Kotlin i Scala.
reddit.com/r/Kotlin/comments/[...]tlin_already_surpassed_scala/

Nie trzeba na nic czekać: https://www.haskell.org - DisQ 2018-11-27 22:47
Nie ma to jak powoływać się na ankietę robioną przez firmę, która dostarcza jedyne użyteczne środowisko do Kotlina. Z drugiej strony można by zrobić ankietę wśród doktorantów EPFL, to Scala dostałaby pewnie 99%. Z innych statystyk wynika jednak, że Kotlin jest daleko za Scalą pod względem popularności: https://www.indeed.com/jobs?q=Scala+Developer&l=California (ponad 1100 wyników), https://www.indeed.com/jobs?q=Kotlin+Developer&l=California (niecałe 200 wyników). - Krolik 2018-11-28 10:51

Pozostało 580 znaków

2018-11-28 10:45
1

Haskell? No raczej nie.

Scala ma bardziej ekspresywny system typów niż Haskell:
https://ropas.snu.ac.kr/~bruno/papers/TypeClasses.pdf

Jak chcesz coś lepszego niż obecna Scala, to fajne jest Dotty (Scala 3).
Od pewnego czasu kusi mnie też Idris i trochę Rust, ale nie znam.

Pozostało 580 znaków

2018-11-28 11:23
2

Jaki jest w ogóle sens takich wątków? To jakieś nowoczesne rozkminy bootcampowe?

Może jestem dziwny, ale jak chcę się jakiegoś języka nauczyć, to po prostu biorę książki/kurs i coś w nim programuje coś w miarę praktycznego, nie musi być od razu system operacyjny albo superhiperzaawansowany program. Może być prosty parser czegoś, jakiś konwerter - byle coś co zaciągnie kilka rodzajów typów i algorytmów do roboty i do tego, najlepiej, libów.
Może nie jest takie programowanie od razu zbiorem dobrych praktyk, ale coś próbuję. W ten sposób od razu wiem, to i to mi się podoba w tym języku, a tamto nie. Ew. pytam na stackach albo na redditach czy gdzie tam są jeszcze dane społeczności, jak zrobić coś w ogóle albo lepiej. Przy okazji takich "poszukiwań" trafiam na wątki społeczności dot. przyszłości języka i porównywań z innymi i one są rewelacyjne, bo to spojrzenie społeczności na sprawę.

Kwestie czy i ile się zarabia w danym języku i ile jest w nim ofert jest jedynie "skutkiem" ubocznym, ważne aby funkcjonalność pisało mi się przyjemnie + kod też czytało przyjemnie (zwłaszcza cudzy)

Serio - jak chcesz dużo zarabiać idź w COBOLA, albo jako szambonurek. Tam są zarobki. Tam nie będziesz miał takich rozkmin. A tak, Zosia powie, że Java fajna, Krysia, że Scala, Janusz, że asembler i będziesz tak kminił czego się uczyć i życie Ci na tym zejdzie.

Pozostało 580 znaków

2018-11-28 12:17
1

Ale są języki, których poznanie skutkuje dużym poszerzeniem wiedzy ogólnej, potrzebnej np. w innych językach. A są języki takie, których można się uczyć, ale ta wiedza będzie miała bardzo wąskie zastosowania. Dlatego to nie jest wszystko jedno czy w 2018 roku uczyć się Perla, Cobola, Javy czy Scali.

Z punktu widzenia potencjału edukacyjnego, Scala jest dobrym wyborem:

  • posiada większość modnych ostatnio mechanizmów z OOP i FP
  • jest dość wysokopoziomowa, więc można niewielkim nakładem szybko napisać coś fajnego, bez konieczności rozkminiania technikaliów
  • ma statyczny system typów, więc kompilator łapie dużo błędów, co początkującym zdarza się często
  • nie jest egzotyczna składniowo - znasz Scalę, to praktycznie niemal znasz Kotlin (Android) i Swift (iOS); od popularnej Javy czy C# też nie różni się aż tak bardzo jak np. Haskell czy Clojure
  • trudno dojść do poziomu że "wszystko już umiem" - ciekawych rzeczy do nauczenia starczy na bardzo długo
  • działa na JVM, więc przy okazji Javy też trochę liźniesz i będzie w sam raz do pierwszej pracy w korpo ;)
  • jest wystarczająco popularna, aby znaleźć materiały w sieci, a potem komercyjną pracę
edytowany 1x, ostatnio: Krolik, 2018-11-28 12:18

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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