Trzy lata temu Steve Yegge wyraził na swoim blogu we wpisie „Code’s Worst Enemy” („Najgorszy wróg kodu„) obawy na temat przyszłości języków wykorzystujących Java Virtual Machine. Zastanawiał się, który z obecnie rozwijanych stanie się najbardziej użyteczny. Nie wspomniał wtedy o jednym – Gosu – który właśnie został upubliczniony.
Gosu (kor. wybitny) jest zorientowanym obiektowo językiem programowania ogólnego przeznaczenia. Jest statycznie typowany i w stu procentach kompatybilny z Javą.

Twórcy języka przygotowali bogatą w treść stronę internetową, na której zamieścili m.in. porównanie Gosu do innych języków programowania powstałych na bazie JVM czy też obszerną dokumentację.


Wygląda jak połączenie ActionScripta z Javą. I coś nie chce mi się wierzyć, że ma lepsze wsparcie w środowiskach programistycznych niż groovy 😉
Języków na JVM ci u nas dostatek, ale i ten przyjmiemy jako wróżbę zwycięstwa.
Fajna jest ta tabelka porównująca Gosu do innych.
Oczywiście wymienili te cechy, które ma Gosu, a nie mają inne, ale już nie na odwrót. Jakby do listy kategorii dodać np.: immutable collections, message-passing-based concurrency, traits/mixins, lazyness, pattern matching, higher-kinded types, declaration site generic type variance specification, etc., to Gosu wypada blado przy Clojure, Scali, Nemerle czy F#.
Poza tym wygląda na całkiem sympatyczny język jakich wiele np. Nice czy Groovy.
BTW: Tak sobie dokładniej popatrzyłem jeszcze na tę tabelkę, to goście trochę naciągają: w Scali dodawać typy w runtime jak najbardziej można tak samo jak w Gosu (i jest nawet duck typing), „easy transition from Java” to chyba bardzo subiektywne jest i chyba dla wszystkich języków na JVM powinno być zaznaczone, reified generics też w Scali pewnym sensie są, choć może mogłyby być ładniejsze (Manifest[T]). IMHO nie widzę sensu przechodzić ze Scali na Gosu.
Pytanie jeszcze – kto za tym stoi?
Moim zdaniem, to tabelka zupełnie mija się z prawdą – przynajmniej co do Scali.
Jakoś nie widzę specjalnie szansy na większą popularność tego języka. Raz, że imperatywny i niewiele wnosi nowego w porównaniu do Javy, a dwa, że część z jego cech może się pojawić w nowej wersji Java.
Mi się najbardziej podoba umieszczenie w tej tabelce, wśród cech języka -w zamierzeniu chyba zalet- stwierdzenia: „Not Lisp”
ciekawostka oracle prawdopodobnie wprowadzi dwie jvm(a może ogólnie całą jave już nie pamiętam) darmową i płatną ale czym się będą różnić nikt nie ma pojęcia.
Strzelam: wsparciem?
A wiesz, że już w tej chwili Oracle ma kilka JVM?
Przez zakupem SUN kupili taką firmę jak BEA, która to miała JRockit – bardzo dobrą maszynę wirtualną, z inaczej zrobionym GC. W czasie BEA można było ją za darmo ściągnąć z ich strony, używać i dystrybuować (i tak wiele firm robiło i niektóre robią do tej pory jeszcze); dziś jest to produkt płatny, żeby dostać nową licencję trzeba płacić.
JRockit jest dobry, ale może tylko na serwerze. W aplikacjach klienckich muli jak diabli. W serwerowych kiedyś próbowaliśmy i większych różnic w wydajności nie zauważyliśmy, ale to pewnie zależy od konkretnej aplikacji.
Z pewnością zależy – kiedyś bodajże redhatowy support sugerował stawianie JBossa właśnie na JRockit – to rozwiązywało problemy z wyciekami pamięci
tak wiem choćby ibm swoją oferował.
JRockit i JVM od Suna mają być w przyszłości „sklejone” w jeden produkt. Tak przynajmniej mówi Oracle. Swoją drogą są chyba przynajmniej dwa JRockit’y – zwykły i „realtime” z bardziej przewidywalnym GC.
Obecnie JRockit jest dostępny do ściągnięcia z licencją pozwalającą na darmowe użycie w celach rozwoju oprogramowania. Żeby postawić sobie to produkcyjnie trzeba płacić.
Pytanie co dalej Oracle zrobi z Javą? Może ostatecznie stwierdzą, że Java to technologia dla serwerów i będą to sprzedawać tak samo jak bazę danych, serwery aplikacji i inne fragmenty swoich middleware’ów.
W sumie client side Java coraz mniej się liczy, może poza komórkami – chociaż tu i tak też nie jest kolorowo. Z resztą powoli widać, że dostępność Javy na komputerach domowych może maleć – chociażby Apple ogłosiło, że Java od Apple na MacOSX jest deprecated i nie będzie w ogóle JVM od Apple w nowym MacOSX 10.7 (chociaż z pewnością ktoś wypuści wersje, którą sobie będzie można doinstalować).
Także może Java stanie się po prostu kawałkiem Oracle Fusion Middleware i zacznie przynosić jeszcze bardziej masowe $$ – czyli coś czego Sun nie umiał zrobić.
A innej beczki słychać ostatnio o konflikcie Apache z Oracle, no i oczywiście Oracle z Google. Być może więc kończy się świat Javy znany obecnie. Wbrew temu co niektórzy mogą myśleć – jest to naprawdę spory świat.
http://www.heise-online.pl/newsticker/news/item/Oracle-bedzie-takze-platna-wirtualna-maszyna-Javy-1132127.html
W sumie wydaje mi się to całkiem optymistyczne.OpenJDK jako podstawa oznacza brak większych problemów wersji open z wersją „wyroczni”. A dodatkowo wersja płatna ze wsparciem dla tych co tego potrzebują i równocześnie zapewnienie finansowania dalszych prac nad jej rozwojem. Czyli norma w świecie open source.
Na javę przenoszą ostatnio już chyba wszystko co możliwe , czyżby nowa moda czy pójście na łatwizne ?
Strzelam w to drugie, „modne” teraz są inne rzeczy. 🙂