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