JavaScript工作场所名人堂,第2部分

审查的第一部分专门介绍了Prototype.js和requirejs库。在编写过程中,不仅需要考虑对JavaScript当前状态有重大影响的库,还必须考虑在规范中制定的文章中发表的想法,例如:ajax,commonjs,通用/同构Web应用程序。

1998年-BigInt.js,RSA.js


使用大整数的本机工作是一个相对较新的功能(并非所有人甚至都怀疑-是的,而且-问题是JavaScript中需要重新训练多少种数据类型才能进行采访)。在此之前,ohdave.com / rsa / BigInt.js库是最早的且最成功的大整数实现。成功-因为速度快。通过图书馆作者Dave Shapiro dave@ohdave.com的作者的电子邮件搜索信息,但名称和姓氏未提供新信息。网站上还展示了杰出演奏者录制的吉他作品的录音,这是图书馆作者用耳朵录制的-这是另一种有用的搜索信息。接下来,找到推特作者twitter.com/daveohdave并带有ohdave.com的链接。Twitter有52位订阅者,而John Resig没有订阅。Twitter上发布了一个视频,该库的作者在其中播放了理查德·斯特劳斯(Richard Strauss)的第一首交响诗《扎拉图斯特拉说》(苏联观众在电视节目“什么?在哪里?何时?”中知道)


现在,我们可以放心地说,这是Four Winds Interactive作为创始软件开发人员工作的www.linkedin.com/in/dshapiro无论如何,这并不意味着它的照片在Leadership页面上: 这是最早讨论的库。但这仍然很重要,因为大整数仍然不支持当今的所有Web浏览器。





2002年-跨浏览器,又名x.js


x.js库旨在用于跨浏览器的JavaScript开发。我不确定它是否已在应用程序开发中广泛使用,但是在库方法调用中隐藏与DOM一起工作的想法-建立后来广泛使用的Prototype.js和jquery库的想法-是创新的。也许这就是为什么图书馆不急于在实际项目中使用它的原因。那时,似乎DOM Level 1和CSS 2规范使任何代码都可以跨浏览器浏览,至少与90年代破破烂烂的情况相比。

x.js库副本由Michael Foster mike@cross-browser.com列出。另外,在图书馆网站上,有信息说Mike(Michael Foster)现在在33Across工作。知道这一点,您可以找到LinkedIn作者

在一个为纪念作者(最左边)而被命名为Foster Day的公司聚会上,作者对自己说了一些话:“我演奏鼓,长笛和萨克斯管。读NT希腊文是我目前的爱好之一。“我一直爱天文学,所以我有一个巨大的望远镜。”



2005年2月18日-Ajax


杰西·詹姆斯·加勒特(Jesse James Garrett)的“ Ajax:一种新的Web应用程序方法”的故事已被多次描述,并且在Wikipedia上有有关该技术及其作者的相关文章。因此,不需要额外的信息搜索。一切都可用。

自1990年代末以来,Web浏览器中已经存在Ajax工作所需的所有工具,这令人感到困惑。更重要的是,杰西·詹姆斯·加勒特(Jesse James Garrett)对现代网络发展的影响。然后才是2005年9月30日的文章“ Tim O'Reilly-Web 2.0是什么”,该文章在Web 2.0的定义中加了引号,没有引号。但是如果没有杰西·詹姆斯·加勒特的想法,这种哲学将会是什么。顺便说一句,有人知道Web 3.0是什么吗?

可以在twitter.com/jjg上阅读作者他在Linkedin上的个人资料是www.linkedin.com/in/jesse-james-garrett-1341最后的工作资本一个高级。Dgital设计总监。



杰里米·阿什凯纳斯(Jeremy ashkenas)


杰里米·阿什肯纳斯(Jeremy Ashkenas)立刻为我们提供了几款对JavaScript编程的发展产生重大影响的产品:

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

CoffeeScript-首次成功实现JavaScript现代化的尝试,同时确保脚本在当前版本的Web中运行浏览器,将CoffeeScript脚本的源代码转换为标准JavaScript脚本的文本。现在,babel和打字稿也可以使用。但是在2009年,还没有人有这样的经历。甚至不清楚JavaScript是否足够强大,可以在其上实现编译器。

CoffeeScript影响了将在ES6 / ES2015和更高版本的语言规范中引入的那组创新,特别是:箭头函数,具有可变数量的参数的函数,具有存在性检查的属性访问运算符等。

Underscore.js总体上延续了Prototype.js中集合的工作方式,但是为此,它不使用添加具有新属性的Array对象,而是使用将数组转移到函数的功能,这乍看起来可能并不十分简洁,但是知道Prototype.js路径可以导致难以发现的错误(例如,如果另一个开发人员添加具有相同名称属性的Array对象)-您可以习惯它。现在几乎每个人都使用Undescore.js的分支-lodash.js。

Backbone.js-其含义非常矛盾,评级是极高的。无论如何,现在它的使用频率比10年前要少得多。

杰里米·阿什肯纳斯(Jeremy Ashkenas)在《纽约时报》工作。他的文章可以在www.nytimes.com/by/jeremy-ashkenas上阅读他的twitter.com/jashkenas twitter上,您可以了解他是一个骑自行车的人,总是在同一家咖啡馆用餐,当他在这家咖啡馆用餐时,总是将摩托车停在同一地方。而且他已经在这个地方被偷了三遍。如果没有摩托车头盔,很难找到杰里米·阿什肯纳斯(Jeremy Ashkenas)的照片。2015年会议的最新视频之一:


2010-step.js


直到那一刻,我们才考虑了思想和库,这些思想和库变得非常流行,并影响了Web和JavaScript语言的发展。现在,我回想一下图书馆,它没有影响历史进程,但也许有这样的机会。

第一个版本中的node.js中竞争性(异步)编程模型是基于Callback Hell的。由于很难管理嵌套的Callback Hell调用,因此现在越来越少使用此方法。为了简化这种情况,实现了Promise,它比Callback Hell变得更加方便,但是仍然很复杂,尤其是在出现箭头功能之前。最后,代替Promise,提出了一个await操作符,该操作符可在async函数中使用。最初的欣喜背后是一些失望。调用函数链then()的函数风格在catch()方面仍然不逊于await运算符,“突然”事实证明有必要将其括在try / catch块中。甚至有人开始谈论Promise Hell,尝试Catch Hell。

蒂姆·卡斯韦尔(T​​im Caswell)早在2010年就在图书馆step.js中提出了摆脱这种恶性循环的方法。了解如何使用所有这些方法:

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

但是,可惜,主流发展已朝着不同的方向发展。但是,现在他们继续使用Tim Caswell的另一项开发:节点版本管理器-nvm。现在,作者在Magic Leap担任首席建筑师的职位。他的推特是twitter.com/creationix

同样,作者将他的node.js移植到Lua,如他的演讲所述:


All Articles