@squall147:
JavaScript jest zupełnie, zupełnie innym językiem niż Java, mimo iż nieco ją udaje jeśli chodzi o składnię. W JavaScripcie nie masz nawet klas, jest dziedziczenie prototypowe -- obiekty dziedziczą po obiektach. To, że jest to mniej popularny sposób dziedziczenia nie oznacza, że jest gorszy lub obiektywnie mniej naturalny. W JS-ie obiekty dziedziczą po innych obiektach, i tyle ("prototyp" to po prostu obiekt połączony z innym specjalnym linkiem umożliwiającym dziedziczenie). Nie ma dodatkowego bytu, jakim są klasy.
W JS-ie ekstremalnie ważna jest funkcyjność, która w Javie jest strasznie uboga; niemal nie istnieje w porównaniu do JS-a. Funkcyjność to ekstremalnie potężna cecha języka programowania, bardzo ułatwia utrzymanie DRY, czy nawet umożliwia bezpośrednią implementację niektórych wzorców projektowych (np. Strategia).
Te najważniejsze cechy JavaScriptu nie są praktycznie dostępne w Javie, która używai innych rozwiązań. Bez dogłębnego poznania sił języka ciężko jest go obiektywnie oceniać. Jasne, że jeśli będziesz próbował kodować w JS-ie tak jak w Javie, to JS będzie w tym dużo gorszy od Javy.
JS ma oczywiście trochę (sporo) błędów projektowych, ale jego rdzeń zawiera kilka bardzo fajnych, bardzo potężnych rzeczy.
Co do wielowątkowości, to A) jej brak jest celowy (o czym wspomniałem) i B) może to wyjść językowi i Twojej aplikacji na dobre (!). I nie mówię tu tylko o obronie przed ludźmi, którzy w wielu wątkach by się zamotali. Mówię o... wydajności. Znasz NodeJS? Istnieją napisane w nim serwery, które radzą sobie sporo lepiej niż Apache. Apache jest napisany w niskopoziomowym C, w NodeJS pisze się w JS (JS też dorobił się JIT-a i kompilacji w locie praktycznie do kodu maszynowego, ale i tak to nie C), a to Node wypada lepiej właśnie ze względu na cechy JS-u. Brak wątków, więc nowe połączenia do serwera nie spawnują żadnych wątków i nie dają żadnego narzutu. Funkcyjność i naturalna asynchroniczność pozwala zaś sprawnie, naturalnie dla JS-owców pisać nieblokujące operacje I/O. I tutaj zyski są takie, że w niektórych zastosowaniach faktycznie Apache wymięka.
JavaScript to nie Erlang czy coś stworzonego do pracy po stronie serwera, ale i tak, jak widać, nawet tam radzi sobie zaskakująco dobrze, nieraz lepiej niż inne języki, bo umożliwia w miarę sprawne korzystanie z innego, efektywniejszego API, które w innych językach byłoby strasznie niewygodne.
Nie uważam, by należało JS lekceważyć. Naturalnie, jeśli Cię ten język nie interesuje, to Twoje prawo. Chcę Ci tylko uzmysłowić, że JS to nie taka zabawka, na jaką może javowcom wyglądać ;).