przyszłość Scali

0

Siemacie
Ostatnio, kompletnie nie wiem z jakiej przyczyny nasunęła mi się taka myśl - a jakby tak poznać Scalę? Myślałem czy tematu nie wrzucic do działu "Java", ale padło tutaj.
Mówie - nie wiem z jakiej przyczyny - bo w sumie nigdy się nie spodziewałem, że mi się akurat zachce sprawdzić co w trawie piszczy w Scali. Dużo osób pisze, że super język, że ma przyszłość, ale dopiero mocno raczkuje. Nie jest jeszcze do końca rozwinięty, ale ma potencjał - jak wy, forumowicze się do tego ustosunkowujecie?

Często czytam, że ktoś się nauczył Scali "przy okazji, jak w pracy byłem". I myśle czy jej znajomość kiedyś nie wyszłaby mi na dobre. Co myslicie? ;)

2

Scala jest w pewnym sensie językiem unikalnym bo łączy:

  • wieloplatformowość, bo oparte na JVM (w sumie wersja Scali dla .NETa też jest ale mało dopieszczona i do tyłu z ficzerami chyba),
  • duża zgodność z kodem naklepanym w Javie i to w obie strony, tzn zarówno z poziomu Scali łatwo używać kodu Javowego jak i dość łatwo napisać kod Scalowy który będzie mógł być użyty po stronie kodu Javowego - to sprawia, że Scala nadaje się do projektów biznesowych,
  • wiele paradygmatów programowania, przez co przyciąga rozkminiaczy,
  • statyczne typowanie, co jest dużym plusem w przypadku pisania dużych aplikacji,

Żadna konkurencja dla Scali chyba jeszcze nie powstaje, tzn konkurencja w sensie jakiś język równie ekspresywny co Scala ale bez szeregu wad.

Aktualnie największymi wadami Scali są moim zdaniem:

  • powolna kompilacja,
  • niekompatybilne i często zmieniające się formaty binarne skompilowanych klas - Scala dorzuca do plików .class swoje pierdółki, poza tym sygnatury klas się zmieniają i rozpieprza to mixiny, więc ciężko jest zachować wsteczną kompatybilność w Scali; owa niekompatybilność wymusza osobną kompilację bibliotek dla każdej kolejnej wersji Scali (tzn wersji z różniącymi się dwiema pierwszymi liczbami),

Często czytam, że ktoś się nauczył Scali "przy okazji, jak w pracy byłem".

To pewnie mnie czytasz, bo przygodę ze Scalą zacząłem w Comarchu i często to tu wspominałem :P Obecnie jestem koderem Scali na pełen etat (ale nie w CA) :)

Dużo osób pisze, że super język, że ma przyszłość

Nie mam szklanej kuli więc nie wiem co będzie w przyszłości. Jak na razie jednak Scala zdobywa popularność, a ofert pracy w niej chyba coraz więcej.

0

Nie wydaję mi się, żeby scala przeszła do mainstreamu,
parę powodów które mi się nasuwają jeszcze:

  • Scala jest trudna
  • System typów jest trudny
  • Pogmatwane kolekcje
    (http://www.decodified.com/scala/collections-api.xml)
  • Słabe wsparcie IDE
  • Niektóre komunikaty kompilatora w przypadku błędów są mało pomocne
  • Paskudny call stack
  • Nadużywane przez biblioteki 'przeciążanie operatorów'
0

Nie wydaję mi się, żeby scala przeszła do mainstreamu,
parę powodów które mi się nasuwają jeszcze:

Scala jest bardziej dla pasjonatów niż dla typowego klepacza kodu, więc klepacze raczej na nią masowo nie przejdą. Jak ktoś chce zwięzłego i prostego języka to jest np Python.

  • Słabe wsparcie IDE
  • Niektóre komunikaty kompilatora w przypadku błędów są mało pomocne
  • Paskudny call stack

Wsparcie się systematycznie polepsza, z każdym rokiem jest coraz lepiej.

0

@Wibowit
A prawdopodobnie od ciebie to słyszałem :D aczkolwiek wiem, że jak już jakiś czas programuje bardziej z zainteresowania niż ze szkoły, to słowo "Scala" pojawia się coraz częsciej. Może dlatego, ze głównie pisze w Javie?
Gdzieś w głowie siedzi pomysł poznania tego języka, ale tak jak piszecie - dopiero sie rozwija i nie wiemy co z niego wyrośnie. Pisze też troche w Pythonie i Scala to miałaby być nieco alternatywa dla niego właśnie. Przeraża mnie troche jego pogięta składnia (bynajmniej na 1 rzut oka), zdaje się być mocno trudny (mimo, że C++ nie znam za dobrze, to wydaje się być nawet od niego trudniejszy)(a przynajmniej składniowo)

Nie wiem jak mocny byłby to argument myśląc przyszłościowo, ale jako, że python początki ma w latach 90tych(1991 bodajże), a scala ponad 2000(2003?), to jest szansa, że rozwinie się ona mocno i wyprze Pythona? Bo przeczuwam, że tak może byc. Python teraz się mocno rozwija w wersji 3.x, wiec może i do tego nie dojść.
Chociaż powszechnie wiadomo, że python słynie z 2 rzeczy: prostej składni i popycie na niego przez naukowców, przy czym jedno powoduje drugie. W Scali jakoś tej prostej składni nie widze :D

0

Może dlatego, ze głównie pisze w Javie?
Ja Javy nawet kijem nie tykam, a tez Scala mi sie kiedys obila o uszy, wiec raczej nie.

Gdzieś w głowie siedzi pomysł poznania tego języka, ale tak jak piszecie - dopiero sie rozwija i nie wiemy co z niego wyrośnie
Wyrosla juz - ciekawa hybryda miedzy swiatem funkcyjnym, a obiektowym. Ale nie wiem w czym stopien rozwoju jezyka przeszkadza w jego nauce, nie zmieniaja przeciez specyfikacji o 180 stopni co nowa wersje.

Przeraża mnie troche jego pogięta składnia
Jaka? Skladnia jezyka jest trywialna, tylko jest po prostu inna niz w Javie.

(bynajmniej na 1 rzut oka)
bynajmniej != przynajmniej.

zdaje się być mocno trudny
Scala jest dokladnie tak trudna, jak tylko sobie zazyczysz.

C++ nie znam za dobrze, to wydaje się być nawet od niego trudniejszy)(a przynajmniej składniowo)
Skladnie C++ tez ma trywialna, btw. widziales kiedys jezyk z dziwna skladnia? :P

wyprze Pythona?
Niby jak, po co i dlaczego?

0

@n0name_l

Ja Javy nawet kijem nie tykam, a tez Scala mi sie kiedys obila o uszy, wiec raczej nie.

a w czym piszesz?

bynajmniej != przynajmniej.

omg.. całe życie człowiek sie uczy :)

Scala jest dokladnie tak trudna, jak tylko sobie zazyczysz.

sens głęboki, ale coś w tym jest

Skladnie C++ tez ma trywialna, btw. widziales kiedys jezyk z dziwna skladnia? :P

Hymm.. brainfuck? :D

Niby jak, po co i dlaczego?

nie wiem, tak tylko pomyślałem, że python może się na latach zestarzeć, a scala wypięknieć

0

Scala wyprze Pythona? Chyba ktoś raczy żartować... To są dwa zupełnie inne języki, o różnych zastosowaniach.

3

Scala nie wyprze Pythona, ale ma szanse na co najmniej taką samą popularność.

Scala nie jest już niszowym językiem dla hobbystów za sprawą co najmniej dwóch dużych rzeczy:

  • Play Framework, który powoli zajmuje miejsce Spring MVC w korporacjach. Wg Google trends, Play Framework ma już ok. 1/3 popularności RoR i szybko rośnie. Widzę bardzo dużo Javowców, którzy o Play przynajmniej słyszeli. Często zaczynają używać API Javowego, a później odkrywają, że jakby pisali w Scali, byłoby dużo prościej i przechodzą na Scalę.

  • Apache Spark; o ile jeszcze dwa lata temu uważało się, że Hadoop to de facto standard w BigData i nic nie jest w stanie tego zmienić. Tymczasem Apache Spark napisany w Scali i oferujący API w Scali, Javie i Pythonie okazał się bardzo groźnym konkurentem, ponieważ jest wielokrotnie szybszy niż Hadoop, a do tego znacznie łatwiejszy w obsłudze. Ponad 50% użytkowników Sparka używa API w Scali, tylko niecałe 30% używa Pythona.

Nie wydaję mi się, żeby scala przeszła do mainstreamu,
parę powodów które mi się nasuwają jeszcze:

W kwestii dwóch pierwszych punktów - C++ jest trudniejszy, znacznie mniej elegancki, ma większy bagaż naleciałości historycznych, a do mainstreamu przeszedł. Scala jest trudna tylko dlatego, że jest inna niż Java i jest rozbudowana, czyli jest dużo nauki. Natomiast gdy się przyswoi kilka podstawowych koncepcji, to pisze się bardzo łatwo. W przeciwieństwie do np. czystego C, które jest proste, ale pisze się bardzo trudno i łatwo o błędy.

A co do kolekcji, to akurat nie rozumiem o co Ci chodzi. Kolekcje to jest podstawowa rzecz w Scali, która daje niezły wzrost produktywności praktycznie bez konieczności uczenia się czegokolwiek względem Javy. Nie znam innego języka, który miałby tak fajnie zrobione kolekcje.

Skladnie C++ tez ma trywialna

To narysuj drzewo składniowe dla poniższego kodu (w ciele funkcji):

x * y(z);

:P

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