Od pewnego czasu popularne stały się posty w których autorzy próbują spekulować na temat: "Czy język XXX zastąpi Javę?". Oczywiście założeniem implicite jest, że Java potrzebuje i będzie przez coś zastąpiona. Osobiście jestem zwolennikiem teorii, iż Java powinna się powoli kończyć. Nie wiem czy i kiedy się to stanie. Mimo że my - programiści, jesteśmy w pewnym stopniu odpowiedzialni za tę decyzję należy ona w dużej mierze do naszych szefów ;).
Biorąc pod uwagę fakt, że ogólnie jestem zwolennikiem koncepcji polyglot programming - wierzę, że językiem przyszłości dla JVM w warstwie "stabilnej" jest Scala. Ponieważ jednak wciąż przoduje wiara w teorię "jeden jęzka do wszystkich zastosowań" coraz częsciej zdarza mi się czytać posty porównujące Scalę z Ruby. Według mnie świadczy to bardzo dobrze o samej Scali i tym bardziej przekonuje mnie, żę powinna ona zastąpić Javę. Sądzę, że takie porównanie wynika z niesamowitej elastyczności i ekspresywności języka - mimo tego, że Scala jest typowana statycznie (burzy mit, że "static typing" == Java). Pozwala to na rozmycie się argumentów w odwiecznym sporze zwolennków języków statycznych i dynamicznych. Java w tym świetle jest językiem "zeszłego Millenium" - do bólu imperatywnym, nadmiarowym (verbose) i ordynarnym (crude) - i nic nie zapowiada że się to szybko zmieni.
Ostatnio odbyłem krótka dyskusję ze znajomym właśnie na temat "Co dalej?", w której staraliśmy się rozstrzygnąć czy należy zainwestować w Scalę, Ruby'ego (i Railsy) czy też pozostać przy Javie. Na dziś dzień moja decyzja to polyglot programming w oparciu o:
- Scala (warstwa "stabilna"),
- Grails (Groovy) albo Lift (Scala) albo Rails (Ruby) (warstwa "dynamiczna" - prezentacji),
- JVM (istniejące technologie i frameworki).
W oparciu o powyższe: TAK - dla Scali, NIE - dla Javy, MOŻE - dla reszty.
No comments:
Post a Comment