Osobiście próbowałem podejść do Javy jako języka dla przyjemności, ale nie przyjęło mi się to za dobrze, to w sumie prosty język ale żeby coś napisać fajnego trzeba przejść prze prawdziwą dżunglę. Na dodatek otoczenie super mega wypas programistów Javy raczej nie sprzyja chęci robienia tego co oni, toteż szukałem dalej. Pomyślałem nad dziadkiem C, w którym się zakochałem, ale który za często nie wybacza, a prostych programów w tym się pisać za szybko nie da (każda biblioteka jest napisana przez kogoś z własnym pomysłem, przez co przejście przez zwykłe parsowanie XMLa bywa czasem piekłem).
Trzeba więc było iść dalej, na mojej drodze pojawił się Python i Ruby, języki IMHO fajne, ale strasznie mnie odstraszające swoim tabo'wym zapisem, na dodatek jakoś nie widziałem w nich tego czegoś. Składnia ogólnie przyjazna, ale społeczność jakoś mi mniej odpowiada, czułem jak gdyby wszyscy wołali "patrzcie piszę w pythonie, jestem super", inna sprawa że wydajność tych języków jest dla mnie dość mała wg mnie (nie po to pisałem Exty w C dla PHPa żeby przechodzić na nowy wolny język).
Innymi słowy dalej stałem w miejscu.
Pewnego dnia łażąc po necie w trakcie służbowej kawki natknąłem się na opis języka Scala, oczywiście rozbawiony zadałem sobie pytanie po cholerę ktoś pisze o takich historycznych językach przecież to ta sama grupa co Ada, Smaltalk, Lisp, Ocaml czy Scheme.
To był największy błąd merytoryczny w moim życiu

Okazało się że Scala to jeden z najnowocześniejszych i obecnie najprężniej rozwijających się języków (w odniesieniu do historycznego wzrostu programistów Scali).
Na dodatek stworzony w 2006 roku! Co sprawia że należy do najnowszych!
Ponieważ jest to język funkcyjny a nie imperatywny pierwsza próba ognia bywa cieżka.. ale gdy zobaczyłem semantykę tego kodu... poczułem że znalazłem swoje Shangri-La.
Kod
object HelloWorld2 {
def main(args:Array[String]) = {
var greeting = ""
args.foreach(arg => greeting += (arg + " "))
if (args.length > 0) greeting = greeting.substring(0, greeting.length - 1)
println(greeting)
}
}
def main(args:Array[String]) = {
var greeting = ""
args.foreach(arg => greeting += (arg + " "))
if (args.length > 0) greeting = greeting.substring(0, greeting.length - 1)
println(greeting)
}
}
Nie muszę mówić że nie jest to język dynamicznie typowany - NA SZCZĘŚCIE! Szlag człowieka trafia jak koderzy nie wiedza nawet co będzie w tej zmiennej w PHPie, a jeśli ktoś nie wie czym jest String, Float czy Nadbudowane na nich typy to niech wraca do szkoły, albo zostawi programowanie w spokoju.
Jest do tego nawet Framework Web + oczywiście wszystko co ma java - a dokładniej jej biblioteki a nawet język, bo drodzy państwo jest to dialekt dla JVM (wkrótce dla .NET też).
Nazywam ten język mniej upierdliwą javą, która jest mądrzejsza, bezpieczniejsza (zbudowana została mniej wiecej w tym celu) i sprytniejsza, o SCALowalności nie wspominam

Naprawdę polecam, co do użytkowania tego języka prze jakikolwiek portal to polecam poczytać o rozwiązaniu problemów wydajnościowych Twittera.
Byłbym naprawdę zachwycony gdyby Polska stała się Bastionem dla tego języka, albo przynajmniej siedzibą dobrych samurajów

Pomocne Linki:
http://www.scala-lang.org/
http://www.codecommit.com/blog/scala/scala...refugees-part-1