JavaScript Workplace Hall of Fame, Part 2

The first part of the review was devoted to Prototype.js and requirejs libraries. Already in the process of writing, it became necessary to consider not only libraries that significantly influenced the current state of JavaScript, but also the ideas that were published in articles that were worked out in specifications, for example: ajax, commonjs, universal / isomorphic web applications.

1998 - BigInt.js, RSA.js


Native work with large integers is a relatively new feature (which not everyone even suspects of - yes already is - and the question is how many types of data in JavaScript for interviews need to be retrained again). Prior to this, ohdave.com/rsa/BigInt.js library was the earliest and most successful implementation of large integers . Successful - because fast. Searches for information by email of the author of the library Dave Shapiro dave@ohdave.com, except for the name and surname did not give new information. Also on the website are laid out recordings of guitar compositions by outstanding performers, made by the author of the library by ear - another useful information for searching. Next, found the twitter author twitter.com/daveohdavewith a link to ohdave.com. Twitter has 52 subscribers with me and John Resig is not subscribed to it. A video was posted on Twitter where the author of the library plays the first bars of the symphonic poem by Richard Strauss “So Spoken Zarathustra” (known to the Soviet audience on the TV show “What? Where? When?”)


And now we can say with confidence that this is the very www.linkedin.com/in/dshapiro that works for Four Winds Interactive at the position of Founding Software Developer, so that doesn’t mean, in any case, its photo is on the Leadership page:



This is the earliest library discussed. But it remains relevant, since large integers still do not support all web browsers today.

2002 - Cross-Browser, aka x.js


The x.js library is designed for cross-browser JavaScript development. I'm not sure that it was widely used in application development, but the idea of ​​hiding work with the DOM in library method calls - the idea on which the later and widely used Prototype.js and jquery libraries are built - was innovative. Perhaps this is why the library was in no hurry to use in real projects. At that time, it seemed that the DOM Level 1 and CSS 2 specifications made any code cross-browser, at least compared to what happened in the dashing 90s.

The x.js library copy is listed by Michael Foster mike@cross-browser.com. Also, on the library website there is information that Mike (Michael Foster) now works at 33Across. Knowing this, you can find LinkedIn author .

At a corporate party, which was named Foster Day in the honor of the author (leftmost), the author spoke a little about himself: “I play drums, flute and a little saxophone. Reading NT Greek is one of my current hobbies. "I always loved astronomy, so I have a huge telescope."



February 18, 2005 - Ajax


The story of Jesse James Garrett's “Ajax: A New Approach to Web Applications” has been described many times, and there are related articles about the technology and its author on Wikipedia. Therefore, there is no need for an additional search for information. Everything is available.

It may be bewildering that all the tools necessary for Ajax to work have been present in web browsers since the late 1990s. All the more significant is the influence of Jesse James Garrett on the development of the modern web. Only then came the article “Tim O'Reilly - What Is Web 2.0” dated September 30, 2005, which added philosophy, in quotation marks and without, to the definition of Web 2.0. But what would this philosophy be without the ideas of Jesse James Garrett. By the way, does anyone know what Web 3.0 is?

The author can be read on twitter.com/jjg. His Linkedin profile is www.linkedin.com/in/jesse-james-garrett-1341 . Last Job Capital One Sr. Director, Dgital Design.



Jeremy ashkenas


Jeremy Ashkenas gave us several products at once that significantly influenced the development of JavaScript programming:

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

CoffeeScript - the first successful attempt to modernize JavaScript, while ensuring that scripts were run in the current version of the web browser, by converting the source code of CoffeeScript scripts to the text of standard JavaScript scripts. Now babel and typescript also work. But at the time of 2009, no one had such an experience. It was not even clear if JavaScript was powerful enough to implement a compiler on it.

CoffeeScript influenced that set of innovations that would be introduced in ES6 / ES2015 and later language specifications, in particular: arrow functions, functions with a variable number of arguments, a property access operator with existence checking? .. and others.

Underscore.js as a whole continues the line of work with collections in Prototype.js, but for this it uses not the addition of an Array object with new properties, but the transfer of an array to a function, which at first may not seem quite concise, but knowing that the Prototype.js path can lead to hard-to-detect bugs (for example, if another developer adds the Array object with the same name properties) - you can get used to it. Now almost everyone uses the fork of Undescore.js - lodash.js.

Backbone.js - its meaning is very contradictory and the ratings are polar. In any case, now it is used much less frequently than 10 years ago.

Jeremy Ashkenas works in the New York Times. His articles can be read at www.nytimes.com/by/jeremy-ashkenas . His twitter.com/jashkenas twitter from which you can find out that he is a biker, always dines at the same cafe, always parks his motorcycle in the same place when he dines at this cafe. And he had already been stolen from him three times in this place. It is very difficult to find a photo of Jeremy Ashkenas without a motorcycle helmet. One of the latest videos from the conference in 2015:


2010 - step.js


Until that moment, we considered ideas and libraries that became mega-popular and influenced the development of the web and the JavaScript language. Now I will recall the library, which did not affect the course of history, but perhaps had such a chance.

The competitive (asynchronous) programming model in node.js in the first versions was based on Callback Hell. This method is now being used less and less, since it is very difficult to manage nested Callback Hell calls. To simplify the situation, Promise was implemented, which became significantly more convenient than Callback Hell, but was still complicated, especially before the appearance of arrow functions. And finally, instead of Promise, an await operator was proposed that can be used inside the async function. Behind the initial euphoria came some disappointment. The functional style of calling the chain of functions then (). Catch () is still not inferior in conciseness to the await operator, which “suddenly” turned out to be necessary to enclose in try / catch blocks. Someone even starts talking about Promise Hell, Try Catch Hell.

The way out of this vicious circle was proposed back in 2010 by Tim Caswell in the library step.js. See how it was possible to work with all of this:

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

But, alas, the mainstream development has gone in a different direction. However, now they continue to use another development by Tim Caswell: node version manager - nvm. Now the author works in the position of Principal Architect at Magic Leap. His twitter is twitter.com/creationix .

Also, the author ported node.js to Lua, as described in his talk:


All Articles