Nous devrons tous manger une tarte humble quand nous nous rendrons compte que JS est utilisé pour écrire:
... parce que c'est mieux.
Sérieusement, s'il vous plaît ... écoutez-moi. Ne frappe pas le messager.
Demandez à Microsoft pourquoi ils construisent Windows 8 avec JS en tant que citoyen de première classe. Ou le nouveau système d'exploitation mobile de Mozilla, ou Rivertrail d'IBM, PhoneGap, ExtJS ou WebGL.
L'une de ces entreprises ou de ces projets aurait-il réussi si les experts ne trouvaient pas quelque chose de mieux dans la mise en œuvre?
La réponse est ... Ils l'ont fait. Nous faisions. Le thème ici doit donc être clair: il existe une meilleure solution.
Mais, mieux c'est subjectif: nous devons donc explorer et comparer. Qu'est-ce qui est mieux?
Ça a commencé avec AJAX ... et ça ne s'est pas arrêté.
E / S non bloquantes. C'est vraiment un gros problème et mérite d'être connu. Dans JS, c'est le modèle de rappel. Il s'avère que l'utilisation de rappels peut activer un serveur non bloquant: Node.js ~ environ 8 lignes de code. setTimeout () est un rappel. Traitement asynchrone à un seul thread.
La flexibilité. Quelle? -Java et C ont des classes et une interface, mais sont appelés orientés objet. JavaScript n'a que des objets. Mais ça s'appelle ... autre chose.
-Avoir uniquement des objets est une bonne chose pour la flexibilité, car les membres et les méthodes sont entièrement dynamiques au moment de l'exécution. -L'hérédité prototypique n'est pas effrayante. Certains experts le décrivent comme un pack d'objets. -JS est amical sur les erreurs. -Le code peut se mélanger pour aboutir à des Composites-Composants, sans trop d'effort, ni connaissance des ... "interfaces", "abstraction", "héritage", "encapsulation", "polymorphisme". De bonnes choses, mais comme Nike, en JS; vous venez de le faire.
Traduction de données. Avec JSON, les objets peuvent être transférés d'avant en arrière, d'arrière en avant. Aucune traduction de données XML. JSON est clairement simple.
Courbe d'apprentissage faible. Il est possible de couper et coller du code extrêmement complexe, puis de le déboguer par étapes pour qu'il existe. J'entends un collègue ... «noobs». Mais ce n'est pas seulement pour les noobs.
-Il s'avère que c'est une fonctionnalité vraiment intéressante pour le prototypage rapide. Et des sites surgissent partout qui exploitent cette conception dans le navigateur, et plus largement; prototypage à l'exécution. Checkout JSFiddle et CodePen, également MicroJS. GitHub.
Like Transformers, with JS, there is more than meets the eye.
It is a big deal.
MISE À JOUR: depuis cette publication, JavaScript est maintenant largement utilisé par d'autres langues.
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.