Wszyscy będziemy musieli jeść pokorne ciasto, gdy zdamy sobie sprawę, że JS jest używany do pisania:
... bo tak jest lepiej.
Poważnie, proszę ... wysłuchaj mnie. Nie zabijaj posłańca.
Zapytaj Microsoft, dlaczego budują Windows 8 z JS jako obywatel pierwszej klasy. Lub nowy mobilny system operacyjny Mozilli lub Rivertrail, PhoneGap, ExtJS lub WebGL firmy IBM.
Czy którakolwiek z tych firm lub projektów byłaby skuteczna, gdyby eksperci nie znaleźli czegoś lepszego we wdrażaniu?
Odpowiedź brzmi ... zrobili. Zrobiliśmy. Tak więc temat powinien być jasny: istnieje lepszy sposób.
Lepsze jest jednak subiektywne: musimy więc przeanalizować i porównać. Co jest lepsze?
Zaczęło się od AJAX ... i nie przestało.
Nieblokujące we / wy. To naprawdę wielka sprawa i warto o tym wiedzieć. W JS jest to wzorzec oddzwaniania. Okazuje się, że za pomocą wywołań zwrotnych można włączyć serwer nieblokujący: Node.js ~ około 8 linii kodu. setTimeout () to callback. Przetwarzanie asynchroniczne jednowątkowe.
Elastyczność. Co? -Java i C mają klasy i interfejs, ale nazywane są obiektowymi. JavaScript ma tylko obiekty. Ale to się nazywa ... coś innego.
-Obsługiwanie tylko obiektów jest zaletą dla elastyczności, ponieważ elementy i metody są w pełni dynamiczne w czasie wykonywania. - Dziedziczenie prototypowe nie jest przerażające. Niektórzy eksperci opisują to jako pakiet-obiekt. -JS jest przyjazny w przypadku błędów. -Kod może się ze sobą łączyć, tworząc Kompozytowe Komponenty, bez większego wysiłku lub znajomości ... „interfejsów”, „abstrakcji”, „dziedziczenia”, „enkapsulacji”, „polimorfizmu”. Dobre rzeczy, ale jak Nike, w JS; po prostu to zróbcie.
Tłumaczenie danych. Dzięki JSON obiekty można przenosić od przodu do tyłu, od tyłu do przodu. Brak tłumaczeń danych XML. JSON jest wyraźnie prosty.
Niska krzywa uczenia się. Możliwe jest wycinanie i wklejanie bardzo złożonego kodu, a następnie etapowe debugowanie go. Słyszę kolegę ... „noobsa”. Ale nie dotyczy to tylko noobów.
-Okazuje się, że jest to naprawdę fajna funkcja do szybkiego prototypowania. Wszędzie pojawiają się witryny, które wykorzystują tę funkcję projektowania w przeglądarce i szerzej; prototypowanie środowiska wykonawczego. Kasa JSFiddle i CodePen, także MicroJS. GitHub.
Like Transformers, with JS, there is more than meets the eye.
It is a big deal.
AKTUALIZACJA: ponieważ ten opublikowany kod JavaScript jest obecnie szeroko stosowany w innych językach.
In Java - check out Nashorn.
In C++ - check out Emscripten, or ASM.
And there are many more.
The big surprise since the original writing of this answer was JS cross-compilation.
It turns out that many languages can be compiled to JS.
And the community is encouraging that... CoffeeScript, Dart, etc.
This is not my specific area of expertise, but it is going on in big ways.
Simply put, we just don't know how the dynamism of JS is going to hash out yet.