Temple de la renommée du milieu de travail JavaScript, partie 2

La première partie de la revue a été consacrée aux bibliothèques Prototype.js et requirejs. Déjà en cours d'écriture, il est devenu nécessaire de considérer non seulement les bibliothèques qui ont considérablement influencé l'état actuel de JavaScript, mais aussi les idées qui ont été publiées dans des articles élaborés dans des spécifications, par exemple: ajax, commonjs, applications web universelles / isomorphes.

1998 - BigInt.js, RSA.js


Le travail natif avec de grands nombres entiers est une fonctionnalité relativement nouvelle (que tout le monde ne soupçonne même pas - oui déjà - et la question est de savoir combien de types de données en JavaScript pour les entretiens doivent être recyclés à nouveau). Avant cela, la bibliothèque ohdave.com/rsa/BigInt.js était la mise en œuvre la plus ancienne et la plus réussie de grands nombres entiers . Réussi - parce que rapide. Recherche des informations par email de l'auteur de la bibliothèque Dave Shapiro dave@ohdave.com, à l'exception du nom et du prénom n'a pas donné de nouvelles informations. Sur le site Web sont également présentés des enregistrements de compositions de guitare par des interprètes exceptionnels, faits par l'auteur de la bibliothèque à l'oreille - une autre information utile pour la recherche. Ensuite, a trouvé l'auteur twitter twitter.com/daveohdaveavec un lien vers ohdave.com. Twitter compte 52 abonnés avec moi et John Resig n'y est pas abonné. Une vidéo a été publiée sur Twitter où l'auteur de la bibliothèque joue les premières mesures du poème symphonique de Richard Strauss "So said Zarathustra" (connu du public soviétique dans l'émission de télévision "Quoi? Où? Quand?"))


Et maintenant, nous pouvons dire avec confiance que c'est le très www.linkedin.com/in/dshapiro qui travaille pour Four Winds Interactive au poste de développeur de logiciel fondateur, ce qui ne signifie pas, en tout cas, que sa photo se trouve sur la page Leadership:



Il s'agit de la première bibliothèque discutée. Mais cela reste pertinent, car les grands nombres entiers ne prennent toujours pas en charge tous les navigateurs Web aujourd'hui.

2002 - Cross-Browser, alias x.js


La bibliothèque x.js est conçue pour le développement JavaScript entre navigateurs. Je ne suis pas sûr qu'il ait été largement utilisé dans le développement d'applications, mais l'idée de masquer le travail avec le DOM dans les appels de méthode de bibliothèque - l'idée sur laquelle les bibliothèques Prototype.js et jquery plus récentes et largement utilisées sont construites - était innovante. C'est peut-être pourquoi la bibliothèque n'était pas pressée de l'utiliser dans de vrais projets. À ce moment-là, il semblait que les spécifications DOM niveau 1 et CSS 2 faisaient tout code cross-browser, au moins par rapport à ce qui s'est passé dans les années 90 fringantes.

La copie de la bibliothèque x.js est répertoriée par Michael Foster mike@cross-browser.com. De plus, sur le site Web de la bibliothèque, il y a des informations selon lesquelles Mike (Michael Foster) travaille maintenant au 33Across. Sachant cela, vous pouvez trouver l' auteur LinkedIn .

Lors d'une fête d'entreprise, qui a été nommée Foster Day en l'honneur de l'auteur (le plus à gauche), l'auteur a parlé un peu de lui: «Je joue de la batterie, de la flûte et d'un petit saxophone. La lecture du grec NT est l'un de mes passe-temps actuels. "J'ai toujours aimé l'astronomie, j'ai donc un énorme télescope."



18 février 2005 - Ajax


L'histoire de «Ajax: une nouvelle approche des applications Web» de Jesse James Garrett a été décrite à plusieurs reprises, et il y a des articles sur la technologie et son auteur sur Wikipédia. Par conséquent, il n'est pas nécessaire d'effectuer une recherche supplémentaire d'informations. Tout est disponible.

Il peut être déconcertant que tous les outils nécessaires au fonctionnement d'Ajax soient présents dans les navigateurs Web depuis la fin des années 1990. D'autant plus importante est l'influence de Jesse James Garrett sur le développement du web moderne. Ce n'est qu'à ce moment que l'article «Tim O'Reilly - What Is Web 2.0» daté du 30 septembre 2005, a ajouté la philosophie, entre guillemets et sans, à la définition du Web 2.0. Mais que serait cette philosophie sans les idées de Jesse James Garrett. Soit dit en passant, quelqu'un sait-il ce qu'est le Web 3.0?

L'auteur peut être lu sur twitter.com/jjg. Son profil Linkedin est www.linkedin.com/in/jesse-james-garrett-1341 . Dernier emploi Capital One Sr. Directeur, Dgital Design.



Jeremy ashkenas


Jeremy Ashkenas nous a donné plusieurs produits à la fois qui ont considérablement influencé le développement de la programmation JavaScript:

2009 - CoffeeScript
2009 - Underscore.js
2010 - Backbone.js

CoffeeScript - la première tentative réussie de moderniser JavaScript, tout en garantissant que les scripts étaient exécutés dans la version actuelle du Web navigateur, en convertissant le code source des scripts CoffeeScript en texte de scripts JavaScript standard. Maintenant, babel et tapuscript fonctionnent également. Mais au moment de 2009, personne n'avait une telle expérience. Il n'était même pas clair si JavaScript était suffisamment puissant pour implémenter un compilateur dessus.

CoffeeScript a influencé cet ensemble d'innovations qui seront introduites dans les spécifications de langage ES6 / ES2015 et ultérieures, en particulier: les fonctions flèches, les fonctions avec un nombre variable d'arguments, un opérateur d'accès aux propriétés avec vérification de l'existence? .. et autres.

Underscore.js dans son ensemble poursuit la ligne de travail avec les collections dans Prototype.js, mais pour cela, il n'utilise pas l'ajout d'un objet Array avec de nouvelles propriétés, mais le transfert d'un tableau vers une fonction, qui au premier abord peut ne pas sembler assez concis, mais sachant que le chemin Prototype.js peut conduire bogues difficiles à détecter (par exemple, si un autre développeur ajoute l'objet Array avec les mêmes propriétés de nom) - vous pouvez vous y habituer. Maintenant, presque tout le monde utilise le fork de Undescore.js - lodash.js.

Backbone.js - sa signification est très contradictoire et les notes sont polaires. En tout cas, il est maintenant utilisé beaucoup moins fréquemment qu'il y a 10 ans.

Jeremy Ashkenas travaille dans le New York Times. Ses articles peuvent être lus sur www.nytimes.com/by/jeremy-ashkenas . Son twitter.com/jashkenas twitter à partir duquel vous pouvez découvrir qu'il est un motard, dîne toujours dans le même café, stationne toujours sa moto au même endroit quand il dîne dans ce café. Et il lui avait déjà été volé trois fois à cet endroit. Il est très difficile de trouver une photo de Jeremy Ashkenas sans casque de moto. L'une des dernières vidéos de la conférence de 2015:


2010 - step.js


Jusqu'à ce moment, nous avons considéré les idées et les bibliothèques qui sont devenues très populaires et ont influencé le développement du Web et du langage JavaScript. Je me souviens maintenant de la bibliothèque, qui n'a pas affecté le cours de l'histoire, mais qui a peut-être eu une telle chance.

Le modèle de programmation compétitif (asynchrone) dans node.js dans les premières versions était basé sur Callback Hell. Cette méthode est de moins en moins utilisée, car il est très difficile de gérer les appels Callback Hell imbriqués. Pour simplifier la situation, Promise a été implémenté, ce qui est devenu beaucoup plus pratique que Callback Hell, mais était toujours compliqué, surtout avant l'apparition des fonctions fléchées. Et enfin, au lieu de Promise, un opérateur d'attente a été proposé qui peut être utilisé à l'intérieur de la fonction asynchrone. Derrière l'euphorie initiale, il y a eu une certaine déception. Le style fonctionnel d'appeler la chaîne de fonctions then (). Catch () n'est toujours pas inférieur en concision à l'opérateur wait, qui s'est «soudainement» avéré nécessaire pour enfermer des blocs try / catch. Quelqu'un commence même à parler de Promise Hell, Try Catch Hell.

La sortie de ce cercle vicieux a été proposée en 2010 par Tim Caswell dans la bibliothèque step.js. Découvrez comment il était possible de travailler avec tout cela:

Step(
  function readSelf() {
    fs.readFile(__filename, this);
  },
  function capitalize(err, text) {
    if (err) throw err;
    return text.toUpperCase();
  },
  function showIt(err, newText) {
    if (err) throw err;
    console.log(newText);
  }
);

Mais, hélas, le développement dominant est allé dans une direction différente. Cependant, ils continuent maintenant d'utiliser un autre développement de Tim Caswell: le gestionnaire de version de nœud - nvm. Maintenant, l'auteur travaille en tant qu'architecte principal chez Magic Leap. Son twitter est twitter.com/creationix .

En outre, l'auteur a porté node.js vers Lua, comme décrit dans son exposé:


All Articles