Hall of Fame für JavaScript-Arbeitsplätze, Teil 2

Der erste Teil der Überprüfung war den Bibliotheken Prototype.js und requirejs gewidmet. Bereits beim Schreiben mussten nicht nur Bibliotheken berücksichtigt werden, die den aktuellen Stand von JavaScript maßgeblich beeinflussten, sondern auch die Ideen, die in Artikeln veröffentlicht wurden, die in Spezifikationen ausgearbeitet wurden, z. B. Ajax, CommonJs, universelle / isomorphe Webanwendungen.

1998 - BigInt.js, RSA.js.


Native Arbeit mit großen Ganzzahlen ist eine relativ neue Funktion (die nicht jeder vermutet - ja schon - und die Frage ist, wie viele Arten von Daten in JavaScript für Interviews erneut trainiert werden müssen). Zuvor war die Bibliothek ohdave.com/rsa/BigInt.js die früheste und erfolgreichste Implementierung großer Ganzzahlen . Erfolgreich - weil schnell. Die Suche nach Informationen per E-Mail des Autors der Bibliothek Dave Shapiro dave@ohdave.com, mit Ausnahme des Vor- und Nachnamens, ergab keine neuen Informationen. Auf der Website finden Sie auch Aufnahmen von Gitarrenkompositionen herausragender Interpreten, die vom Autor der Bibliothek nach Gehör angefertigt wurden - eine weitere nützliche Information für die Suche. Als nächstes fand der Twitter-Autor twitter.com/daveohdavemit einem Link zu ohdave.com. Twitter hat 52 Abonnenten bei mir und John Resig hat es nicht abonniert. Auf Twitter wurde ein Video gepostet, in dem der Autor der Bibliothek die ersten Takte des symphonischen Gedichts von Richard Strauss „So sagte Zarathustra“ spielt (dem sowjetischen Publikum in der Fernsehsendung „Was? Wo? Wann?“ Bekannt).


Und jetzt können wir mit Zuversicht sagen, dass dies genau der www.linkedin.com/in/dshapiro ist , der für Four Winds Interactive als Gründungssoftwareentwickler arbeitet. Das bedeutet also nicht, dass sich das Foto auf jeden Fall auf der Leadership-Seite befindet:



Dies ist die früheste besprochene Bibliothek. Es bleibt jedoch relevant, da große Ganzzahlen heute noch nicht alle Webbrowser unterstützen.

2002 - Cross-Browser, auch bekannt als x.js.


Die x.js-Bibliothek wurde für die browserübergreifende JavaScript-Entwicklung entwickelt. Ich bin nicht sicher, ob es in der Anwendungsentwicklung weit verbreitet war, aber die Idee, die Arbeit mit dem DOM in Bibliotheksmethodenaufrufen zu verbergen - die Idee, auf der die späteren und weit verbreiteten Prototype.js- und jquery-Bibliotheken basieren - war innovativ. Vielleicht hatte die Bibliothek deshalb keine Eile, sie in realen Projekten zu verwenden. Zu dieser Zeit schien es, dass die DOM Level 1- und CSS 2-Spezifikationen jeden Code browserübergreifend machten, zumindest im Vergleich zu dem, was in den schneidigen 90ern geschah.

Die Kopie der x.js-Bibliothek wird von Michael Foster unter mike@cross-browser.com aufgelistet. Außerdem gibt es auf der Website der Bibliothek Informationen, dass Mike (Michael Foster) jetzt bei 33Across arbeitet. Wenn Sie dies wissen, können Sie den Autor von LinkedIn finden .

Auf einer Firmenfeier, die zu Ehren des Autors (ganz links) Foster Day genannt wurde, sprach der Autor ein wenig über sich selbst: „Ich spiele Schlagzeug, Flöte und ein kleines Saxophon. NT Griechisch zu lesen ist eines meiner aktuellen Hobbys. "Ich habe Astronomie immer geliebt, deshalb habe ich ein riesiges Teleskop."



18. Februar 2005 - Ajax


Die Geschichte von Jesse James Garretts „Ajax: Ein neuer Ansatz für Webanwendungen“ wurde oft beschrieben, und es gibt verwandte Artikel über die Technologie und ihren Autor auf Wikipedia. Daher ist keine zusätzliche Suche nach Informationen erforderlich. Alles ist vorhanden.

Es mag verwirrend sein, dass alle Tools, die Ajax zum Funktionieren benötigt, seit Ende der neunziger Jahre in Webbrowsern vorhanden sind. Umso bedeutender ist der Einfluss von Jesse James Garrett auf die Entwicklung des modernen Web. Erst dann kam der Artikel „Tim O'Reilly - Was ist Web 2.0?“ Vom 30. September 2005, der der Definition von Web 2.0 Philosophie in Anführungszeichen und ohne hinzufügte. Aber was wäre diese Philosophie ohne die Ideen von Jesse James Garrett? Weiß übrigens jemand, was Web 3.0 ist?

Der Autor kann auf twitter.com/jjg gelesen werden. Sein Linkedin-Profil lautet www.linkedin.com/in/jesse-james-garrett-1341 . Last Job Capital One Sr. Direktor, Dgital Design.



Jeremy Ashkenas


Jeremy Ashkenas gab uns mehrere Produkte gleichzeitig, die die Entwicklung der JavaScript-Programmierung maßgeblich beeinflussten:

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

CoffeeScript - der erste erfolgreiche Versuch, JavaScript zu modernisieren und gleichzeitig sicherzustellen, dass Skripte in der aktuellen Version des Webs ausgeführt wurden Browser, indem der Quellcode von CoffeeScript-Skripten in den Text von Standard-JavaScript-Skripten konvertiert wird. Jetzt funktionieren auch Babel und Typoskript. Aber zum Zeitpunkt des Jahres 2009 hatte niemand eine solche Erfahrung. Es war nicht einmal klar, ob JavaScript leistungsfähig genug war, um einen Compiler darauf zu implementieren.

CoffeeScript beeinflusste diese Reihe von Innovationen, die in ES6 / ES2015 und späteren Sprachspezifikationen eingeführt wurden, insbesondere: Pfeilfunktionen, Funktionen mit einer variablen Anzahl von Argumenten, einen Eigenschaftszugriffsoperator mit Existenzprüfung? .. und andere.

Underscore.js als Ganzes setzt die Arbeit mit Sammlungen in Prototype.js fort, verwendet jedoch nicht das Hinzufügen eines Array-Objekts mit neuen Eigenschaften, sondern die Übertragung eines Arrays zu einer Funktion, die auf den ersten Blick nicht ganz präzise erscheint, aber zu wissen, dass der Pfad Prototype.js dazu führen kann schwer zu erkennende Fehler (z. B. wenn ein anderer Entwickler das Array-Objekt mit den gleichen Namenseigenschaften hinzufügt) - Sie können sich daran gewöhnen. Jetzt benutzt fast jeder die Gabel von Undescore.js - lodash.js.

Backbone.js - seine Bedeutung ist sehr widersprüchlich und die Bewertungen sind polar. In jedem Fall wird es heute viel seltener als vor 10 Jahren verwendet.

Jeremy Ashkenas arbeitet in der New York Times. Seine Artikel können unter www.nytimes.com/by/jeremy-ashkenas gelesen werden . Sein twitter.com/jashkenas Twitter, von dem Sie erfahren können, dass er ein Biker ist, immer im selben Café speist, das Motorrad immer am selben Ort parkt, wenn er in diesem Café speist. Und er war ihm an dieser Stelle bereits dreimal gestohlen worden. Es ist sehr schwierig, ein Foto von Jeremy Ashkenas ohne Motorradhelm zu finden. Eines der neuesten Videos von der Konferenz im Jahr 2015:


2010 - step.js


Bis zu diesem Moment haben wir Ideen und Bibliotheken in Betracht gezogen, die sehr populär wurden und die Entwicklung des Webs und der JavaScript-Sprache beeinflussten. Jetzt werde ich mich an die Bibliothek erinnern, die den Verlauf der Geschichte nicht beeinflusst hat, aber vielleicht eine solche Chance hatte.

Das wettbewerbsfähige (asynchrone) Programmiermodell in node.js in den ersten Versionen basierte auf Callback Hell. Diese Methode wird jetzt immer seltener verwendet, da es sehr schwierig ist, verschachtelte Callback Hell-Aufrufe zu verwalten. Um die Situation zu vereinfachen, wurde Promise implementiert, das wesentlich praktischer wurde als Callback Hell, aber immer noch kompliziert war, insbesondere vor dem Auftreten von Pfeilfunktionen. Und schließlich wurde anstelle von Promise ein Wait-Operator vorgeschlagen, der innerhalb der Async-Funktion verwendet werden kann. Hinter der anfänglichen Euphorie steckte eine gewisse Enttäuschung. Der funktionale Stil des Aufrufs der Funktionskette then (). Catch () ist dem wartenden Operator immer noch nicht unterlegen, was sich "plötzlich" als notwendig herausstellte, um Try / Catch-Blöcke einzuschließen. Jemand spricht sogar über Promise Hell, Try Catch Hell.

Der Ausweg aus diesem Teufelskreis wurde bereits 2010 von Tim Caswell in der Bibliothek step.js vorgeschlagen. Sehen Sie, wie es möglich war, mit all dem zu arbeiten:

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);
  }
);

Leider ist die Mainstream-Entwicklung in eine andere Richtung gegangen. Jetzt verwenden sie jedoch weiterhin eine andere Entwicklung von Tim Caswell: Node Version Manager - nvm. Jetzt arbeitet der Autor als Principal Architect bei Magic Leap. Sein Twitter ist twitter.com/creationix .

Außerdem hat der Autor node.js nach Lua portiert, wie in seinem Vortrag beschrieben:


All Articles