TomRiddle napisał(a)
A wojnę Php vs. JS wygrała Java, bo jest Client-Side.
Jakbym do tego zdania nie podchodził, to wydaje mi się głupie i/lub nieprawdziwe ;).
JS (JavaScript) obecnie zdecydowanie króluje po stronie klienta -- wygrywa tu z Javą bez dwóch zdań. Po stronie serwera, JS dzięki Node'owi przestał raczkować i wszedł co najmniej w wiek niemowlęcy. W niektórych zastosowaniach może się sprawdzić lepiej niż Java, szczególnie biorąc pod uwagę wymagany próg wejścia, ale to tylko (na razie) wąskie spektrum i to, że Node jest tak obiecujący i że powstało na nim parę rzeczy niczego jeszcze nie przesądza. Do Javy jest tyle narzędzi, pakietów, taka infrastruktura... Poza tym, JS "średnio" nadaje się do pisania pewnego rodzaju skomplikowanego kodu, a o całkiem dobrego JS-owca być może trudniej obecnie niż o Javowca, ze względu na typowość Javy i relatywną nietypowość JavaScriptu (brak klasycznego dziedziczenia, funkcyjność).
Java z PHP się raczej nie bije, wbrew pozorom. Java wygrywa na polu aplikacji enterprise'owych, a z kolei w PHP znacznie częściej pisze się tzw. "stronki" -- mniejsze agencje preferują ten język (i hosting, i tanich, przeciętnych programistów -- lepsi są oczywiście drożsi).
Tak czy siak, jeden język nie "wygra" z drugim dlatego, że ten jest client-side, a tamten server-side. Nie ma to żadnego sensu. Po stronie klienta wygra ten język, który jest tam wykonywany i vice versa (i nawet po wejściu Node'a na pewno nie da się powiedzieć, że nagle JS "wygrywa" z Javą, lol). Obecnie i jeszcze przez długi czas, aplikacje internetowe będą miały kod po obu stronach.
Co do JS-a, to owszem, źródeł dobrych jest raczej mało.
Możesz poszukać np. wykładów, które prowadzi Douglas Crockford. Są dobre dla średniozaawansowanych i dla bardzo uważnych początkujących. Bardzo wielu średniozaawansowanych nie rozumie sporej części z tego, co Crockford mówi, bo mówi on raczej zwięźle i łatwo coś przeoczyć. Z drugiej strony, od pewnego momentu człowiek zauważy, że nie wszystkie zalecenia Crockforda to absoluty. Jego wykłady dostępne są w formie filmików. Praktycznie to samo jest też w książce "JavaScript -- Mocne strony".
Z tego, co patrzyłem po spisie treści, to bardzo dobra może być książka "JavaScript Enlightenment". To może być najbardziej zaawansowana książka o samym języku JavaScript, jaka kiedykolwiek powstała. Niewiele osób wie wszystko to, co prawdopodobnie jest tam poruszone. Mówię to jednak tylko na podstawie spisu treści -- ja te wszystkie zagadnienia znam, ale ja akurat sporo się naczytałem samej specyfikacji ECMAScript.
Na necie masz interaktywny kurs JS Johna Resiga:
http://ejohn.org/apps/learn/
Na gotowych przykładach, ale możesz je łatwo edytować i się z nimi pobawić. Kurs ten porusza kwestie, które średnio-zaawansowani powinni znać.
Wspominasz, o "przykładach zastosowań"... To może sugerować nienajlepsze podejście do nauki. Jeśli nie chcesz słuchać "teorii" (z przykładami, więc nie do końca teoria) o domknięciach czy dziedziczeniu prototypowym, to po prostu robisz źle i idąc tą drogą raczej dobrym koderem JS nigdy nie będziesz. Domknięć, gdy już je będziesz znał, będziesz używał... non-stop. Nawet nie "codziennie", tylko praktycznie przy każdym jednym większym tasku, jaki będziesz miał. Funkcyjności też. Jeśli używasz jQuery, to pracujesz z tym na co dzień, co najwyżej możesz tego tak naprawdę nie rozumieć. A z braku zrozumienia wynika wiele tzw. "bugów" i frustrakcji, że coś nie działa tak, jak tego oczekujemy -- podczas gdy błąd jest ewidentnie po naszej stronie, w naszym rozumowaniu.
edit:
Co do tego, czy dobrze wybrałeś... JS przeżywa teraz wg mnie rozkwit. Jest mega popularny i zapotrzebowanie na koderów jest wysokie, a będzie prawdopodobnie jeszcze większe, gdy ES5 wejdzie na dobre w życie (czyli gdy stare IE umrą), a Node JS dojrzeje i spełni pokładane w nim nadzieje.
Obecnie, często piszę się RIA (Rich Internet Applications) i wiele korporacyjnych aplikacji to po prostu "strony intranetowe". Dobre korporacje dają dobre warunki zatrudnienia. Wiem, bo sam dla jednej pracuję i zajmuję się m.in. zatrudnianiem kolesi. Na JavaScriptowców mamy/mieliśmy spore zapotrzebowanie. Raz, że znajomość JS-a to plus dla każdego frontendowca (czyli kolesia, co produkuje też HTML i CSS), a dwa, że mamy kilku gości na stanowisku, którego nieoficjalna nazwa brzmi "JS Ninja" i rekrutowaliśmy ich praktycznie wyłącznie pod kątem JavaScriptu.
Aha: jak ktoś wcześniej powiedział, JS, czyli JavaScript, z Javą nie ma nic wspólnego. Różnica taka, jak pomiędzy kotem i kotarą.
Ale jeśli wybrałeś nie JS, tylko Javę, to też bardzo dobrze. W korpo używa się jej często-gęsto. Zapotrzebowanie na koderów duże, płace też (większe niż dla frontendowców). Za granicą też jest na Javowców popyt.