JavaScript成功背后的四个关键人物!

前言:JavaScript能如此成功,至少有四位关键人物:

1. JavaScript作者Brendan Eich

2. JSLint,JSON作者Douglas Crockford

3. jQuery作者John Resig 

4. Node.js作者Ryan Dahl。

Brendan Eich以及JavaScript的发明过程大家已经非常熟悉了,我们从Douglas Crockford这位JS的二号人物开始说起。

5877b3a67651f82a25f352ff0300c72e.png

1

结盟

上世纪90年代,微软霸权笼罩着整个世界。

这时候,两个挑战者出现了,一个是IT巨头Sun,另外一个是IT新星Netscape。

Sun认为:Java程序只能看到JVM,至于底层的操作系统?爱谁谁。

Netscape更加激进:以后都是Web应用程序,有浏览器就行了,管操作系统啥事儿?

“屏蔽操作系统”的共同目标让两家走到了一起,成功结盟,挑战微软霸权。

双方“结盟”以后,第一件事就是将Java以Applet的形式在Netscape浏览器中运行,Applet让Java迅速蹿红,成为了编程语言界的明星。

但是,结盟的双方也不是亲密无间的。

Netscape内部居然也在发展一个语言叫LiveScript。

Sun:兄弟,咱们不是说好了吗,Java是大家所需要的最后一种语言,你们家的Brendan Eich怎么又搞了一个LiveScript啊?我们之间牢不可破的友谊已经出现裂痕了!

Netscape:不不不,JVM太重量级了,Web编程需要一个脚本语言,得让新手快速上手才行。这样吧,我们妥协,把LiveScript改名为JavaScript,可以吗?

Sun:看起来像Java的子集,Java的缩水版,Java的弟弟,行,就这样。

2

上世纪的元宇宙

这个时候,我们的主人公Douglas Crockford(下文就简称为“道哥”吧)还在创业中,他的公司叫做Electric Communities,就在JavaSoft的隔壁。

公司的创业项目非常牛逼:元宇宙。

没错,在90年代已经出现了令人惊叹的虚拟世界,你可以拥有一个Avartar(化身),在3D世界中到处走走,还可以瞬间从一个地方被传送到另外一个地方,在里边和其他人交谈,买卖物品,建造东西。

b6243d537da82087b66209d3406ce59c.png

也许是离Java很近的缘故,道哥选择了Java来实现它。

但是这个概念实在是太超前,90年代的网络速度根本支持不了,Java启动也超级慢,“元宇宙”三分钟时间才能把环境加载完成。

2000年左右,网络泡沫破灭,元宇宙无疾而终。

为了生存,道哥接了一个特纳广播公司的一个项目:在线纸牌游戏。

特纳公司要求,这个游戏一定要在浏览器中运行,不要让用户点击安装任何东西。

道哥环顾四周,发现只有JavaScript满足这个要求。

但是公司的程序员都看不上JavaScript这门“烂”语言,不想做,道哥只好找来《JavaScript:权威指南》,亲自动手。

在开发的过程,道哥逐渐发现:JavaScript根本不是Java的子集,它是一个完全独立的编程语言。

JavaScript的优秀部分有着远超Java的能力,它是第一个为我们提供Lambda的语言,这是一个了不起的突破。

一旦明白了这一点,道哥瞬间从Java的拥趸变身为JavaScript的粉丝。

他写了一篇文章《 JavaScript,世界上最容易被误解的编程语言》的文章,说JavaScript是披着C语言外衣的Lisp,从此走上JavaScript的布道之路。

3

JSLint

项目做完以后,道哥无事可做,开始将时间花在JavaScript新闻组上,回答各式各样的问题。

比如“这是我写的一些 JavaScript 代码,我不明白为什么它有问题,谁能告诉我?”

这样的问题回答多了,道哥干脆写了一个神器:JSLint。这也是第一个JavaScript语法分析器

0180d1e56cc4aa0fd8cff8ed0396bd95.png

只需要把有问题的代码放进去,一运行就能发现问题所在。

道哥发现,JavaScript的某些用法更容易导致Bug,如果不用这些形式,错误更容易被发现,程序会变得更好。

于是道哥提出了一个原则:如果在JS中有两种方法可以做事,请选择不太可能导致错误的一种。

比如:使用分号来消除语法歧义;

不要使用++,用+=1代替。

但是在那个“蛮荒”的年代,大家对道哥建议的原则并不感冒,甚至认为这样的要求冒犯了他们,他们依然是我行我素,想怎么写就怎么写。

4

重新创业

闲了一段时间以后,道哥按捺内心的冲动,打算第二次创业。

这一次,他和前同事成立了一个叫做State Software的公司,要用JavaScript做一个叫做“单页应用程序”的东西。

此时的Web应用基本上都是用ASP,JSP实现页面,用户需要在页面之间来回跳转,单页应用程序闻所未闻,可见道哥的理念是非常超前的。

单页应用程序必然涉及到浏览器的JavaScript代码和服务器接口之间的数据交互,用什么格式呢?

当时最热门的是XML,微软、IBM、Sun、HP当时都在鼓吹Web Service,其中核心技术如SOAP、WSDL全是用XML来描述的。

但是XML是个非常笨重的格式,解析它、验证它需要的工具可不少。

道哥发明了一种新的数据格式:JSON(JavaScript Object Notation )

道哥拿着单页应用程序和JSON去忽悠客户:“看看我们的系统和技术栈,JSON是浏览器和服务器交互的最方便的方式。”

客户:“我们都用Web Service,SOAP,XML!JSON是啥?”

道哥:“JSON可以直接把数据转化成JavaScript,非常方便!”

客户:“JSON是标准吗?不是标准我可不用!”

JSON不是标准,没有大厂的背书。

和“元宇宙”一样,道哥的创业再次因为过于超前而失败。

不过,这次创业留下了一个重要的遗产:www.json.org。

5

AJAX革命

2004年,Google发布了Gmail。2005年,又发布了GMap。

异步调用,局部刷新,新奇的用户体验引发了全世界的关注。

用户体验设计师Jesse James Garrett在一篇文章中造了一个词:AJAX(Asynchronous JavaScript and XML),来描述Gmail ,GMap背后的技术。

AJAX迅速火遍全球。

AJAX中的X就是XML,但是人们很快发现,XML复杂的格式和语义并不是传输数据的最好选择。

XML数据需要经过复杂的解析器解析以后才能使用,而JSON格式和JavaScript对象非常接近,可以轻松转换,并且简单明了。

程序员开始觉醒,越来越多的人采用JSON,而RESTful风格更是添了一把火,RESTful+JSON形成绝配,向繁杂的SOAP+XML发起猛烈攻击。

XML的疆域不断退缩,最后偏安于配置文件的领地,继续发挥余热。

77e754f5a42ef86bdeca3a801fd44a23.png

(蓝色为XML,红色为JSON)

互联网的发展就是这么神奇,巨头们为了控制,为了赚钱,经常是联合制定标准,通过强大的营销推给程序员。

这种方式能赢得一时,但不会赢得一世。

拍脑袋制定的标准,很快就会被民间的最佳实践给打败,扔到历史的垃圾堆中,SOAP,EJB都是典型代表。

6

布道者

道哥在前同事的邀请下,加入了雅虎公司,成为了一名真正的JavaScript布道者。

他会去世界各地,参与各种各样的会议,教大家如何正确地使用JavaScript,使用分号,使用JSLint,使用函数式风格,不要用eval......

道哥向大家展示如果使用正确的话,JavaScript将是一门强大的语言。

道哥甚至拜访了MIT,因为这里有一本著名的书《计算机程序的构造和解释》,用的编程语言是Scheme, 这也是JavaScript的函数式编程的设计来源,道哥去了一趟MIT,向他们描述JavaScript的工作原理和如何执行闭包。

多年后,MIT出了《计算机程序的构造和解释》:JavaScript版本。

8ac94a62f6b80edc52e8e778d2295cbc.png

道哥写了一本书《JavaScript语言精粹》,这本书只有薄薄的150页,但是却剥除了JavaScript丑陋的外衣,让我们看到了JavaScript的真实面目:一个简洁的、优雅的,富有表现力的语言。

9a280073b8eec9827e5568562f0796f9.jpeg

道哥去了ITEF(互联网工程任务组),给JSON争取应有的名分:MIME类型经过了一个痛苦的流程,他得到了application/json,而不是text/json。

道哥感到困惑,JSON只是个文本格式,并不是应用程序啊,这可能是一些对JSON不满的XML粉丝搞的鬼吧。

7

JavaScript的二号人物

当年Brendan Eich为了向公司交差,用十天时间发明了JavaScript,仓促的设计让它一直背负各种骂名,例如没有命名空间,难以控制的全局变量,神奇的加号运算符,反直觉的==...... 都让初学者掉进无数坑中。

但是JavaScript能如此流行,语言层面肯定有优秀的成分。 

道哥慧眼识珠,他从一堆丑陋的JavaScript特性中把精华捡了出来,展示给大众,让我们意识到JavaScript也可以如此简洁、高效、灵活。

“JavaScript Lambda编程的精神领袖”,JavaScript的二号人物,道哥实至名归!

对不住了!各位!这篇已经太长了ec3d6a4e02f050d95fc6fef21a8399eb.png,就此打住吧...... 下一篇再写John Resig......

869fa44eb5f8e143de0bbbd649d2a97d.png

参考资料:https://corecursive.com/json-vs-xml-douglas-crockford/

https://www.youtube.com/watch?v=_kFrf-zafFU

(完)

最后宣传下我和闪客建立的星球“ChatGPT基地”,专门探索程序员在ChatGPT时代的定位,如何使用ChatGPT来提升工作效率。

在程序员领域,我们这个星球可能是玩ChatGPT玩得最深入的,已经远远超出了ChatGPT聊天的阶段,很多人进入了API开发,甚至私有化模型训练。

ChatGPT聊天 ->使用ChatGPT API开发应用 -> 训练私有化部署大模型

这里的朋友们很多已经从小白进化成ChatGPT领域的熟练玩家,星球的专栏有很多有价值的主题:

05cf75740b59d1fd49a89950dddbd398.png

来到这个星球,用心刷上个几天,你就不知不觉超越了这个领域 99% 的人了。

现在星球有这些活动:

加入星球即送ChatGPT账号(仅限今天进入星球的前100名,联系方式:加微信onlyliuxin97

输出优质内容即送100元红包

参与打卡挑战,有机会退星球费用

现在星球处于试运行期,原价199元,现在有个100元的优惠券,相当于99元就可以加入,早点儿拥抱ChatGPT,成为第一批会用ChatGPT和用好ChatGPT的人,占据先机,吃到红利。

99c1c9f44e8642aca84411097fe1da22.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/72222.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爬虫教程( 3 ) --- 手机 APP 数据抓取

1. Fiddler 设置 这是使用 fiddler 进行手机 app 的抓包,也可以使用 Charles,burpSuite 等。。。 电脑安装 Fiddler,手机 和 安装 fiddler 的电脑处于同一个网络里, 否则手机不能把 HTTP 发送到 Fiddler 的机器上来。 配置 Fiddle…

以某乎为实战案例,教你用Python爬取手机App数据

1 前言 最近爬取的数据都是网页端,今天来教大家如何爬取手机端app数据(本文以ios苹果手机为例,其实安卓跟ios差不多)! 本文将以『某乎』为实战案例,手把手教你从配置到代码一步一步的爬取App数据&#xff0…

利用Python爬虫抓取手机APP的传输数据

大多数APP里面返回的是json格式数据,或者一堆加密过的数据 。这里以超级课程表APP为例,抓取超级课程表里用户发的话题。 1、抓取APP数据包 表单: 表单中包括了用户名和密码,当然都是加密过了的,还有一个设备信息&am…

22. 听说你想要用爬虫采集我的手机号?哎 ~ 我展示用的是图片

本篇博客我们实现图片渲染手机号码案例,用于防止爬虫直接采集文字信息。 爬虫训练场 本案例实现的效果如下所示 文章目录 bootstrap5 实现名片样式卡片补充数据生成逻辑生成用户 5 个汉字的昵称调用头像 API,生成图片将手机号码生成图片bootstrap5 实现名片样式卡片 在 Boo…

一种解决Qobuz客户端一直转圈加载不出来的思路

先上图,Qobuz在Win10上的客户端是这样滴 之前是最高音质,换到最差音质还是加载不出来。可能是我网络的问题,但是代理节点是没问题的。然后我尝试了一下Qobuz的Web Player。 就是登录之后画红圈这个 秒开好吧,也不卡顿&#xff…

2022年注册会计师(CPA)考试测试题及答案

1、某外国投资者协议购买境内公司股东的股权,将境内公司变更为外商投资企业,该外商投资企业的注册资本为700万美元。根据外国投资者并购境内企业的有关规定,该外商投资企业的投资总额的上限是( )万美元。 A.1000 B.1400 C.1750 D…

【PMP】PMP考试练习题(中英文对照)

1. A company wants to ensure that project failures are addressed in project documentation. Where should the project manager include them? A. Project management plan B. Risk management plan C. Change management plan D. Communications management plan 公司希…

PMP通过率大跌,是否与新版考试大纲有关?

通过率的增长和下降并不是只看考试内容或者说考试是否有重大改革来的,毕竟每年的考生水平都是不一的,我们也没有办法去确定一个考试的通过率高低是否准确,你相信那就是,不相信同样对于你是否能过通过考试也没有多大影响。 考试并不…

超级好用『PMP考试答题24计』一次通过考试~(1)

作为一个想一次通过PMP考试的老考试人。 刷题、报班、看视频、看教材甚至是通过人的经验贴都不会放过的我,只要是与通过PMP考试有关的都想去看看了解了解,避避坑。 但是内容有太多,而且考试的经验也就只能看看,在自己身上好像没…

PMP中文报名注意事项

随着PMP得到越来越多的关注和认可,报考人数也在逐年快速增长着。 而PMP的考试,分为英文报名和中文报名。在PMI官网通过英文报名之后才能进行英文报名。 一般报了机构的学员,机构都会提供英文代报名服务。 而中文报名因为涉及预约考点&…

证券从业资格考试 超全指南

一、考试科目 分为一般从业资格考试、专项业务类资格考试和管理类资格考试三种情况。 一般从业资格考试,即“入门资格考试”,主要面向即将进入证券业从业的人员,具体测试考生是否具备证券从业人员执业所需专业基础知识,是否掌握…

PMP扫盲篇2 | PMP报名、缴费、考试那些事儿~~

接上一篇: ​PMP是一种项目管理考试认证,更是一种思路。 抱着考试的思路,你必须至少把PMBOK完整学下来;抱着学习PMP知识和思路的态度,你要终生阅读PMI的各种guide和参加各种pmp分享会、讨论会——因为你必须不停的学…

2022年注册会计师(CPA)考试模拟题及答案

1、股份有限公司的下列股票发行方式中,不需要证监会核准的是(  )。 A.上市公司发行新股 B.非公众公司非公开发行股票,发行后股东人数为80人 C.非公众公司向特定对象发行股票,发行后股东人数为210人 D.非上市公众…

PMP澳门机考3A学员考试攻略

(刚到澳门,考试前一晚,寻找考场) 备考篇 如何高效学习? 项目整合管理大概13章节,每次直播上课会讲其中的几个章节。 在上课前最好可以预习下讲义,很多内容并不是非得在课上才能获得,…

1. python学习基础

这里写目录标题 python学习总结python学习参考网址环境配置⚖ 包管理说明(涉及包的位置,包的查找原理,如何设置模块,__init.py__)conda和pip换源conda创建激活和切换环境pip进行包的管理🪝[pip官网&#xf…

[精简]快速入门五线谱

五线谱的每一根线,线与线之间的空间,都可以代表一个音,它是可推的低音谱号:高音谱号:接下来,我们需要记住4个do的位置(因为记住了do的位置,其他音就可以推算出来)&#x…

html5 五线谱,五线谱难学?5分钟完成五线谱入门

五线谱 (Musical Notation)是目前世界上通用的记谱法。在5根等距离的平行横线上,标以不同时值的音符及其他记号来记载音乐的一种方法。最早的发源地是希腊,它的历史要比数字形的简谱早得多。在古希腊,音乐的主要表现形式是声乐。到了罗马时代…

国产麒麟软件安装

1、通过应用商店安装 2、软件官网下载 下载qq 1、打开qq官网,找到linux版本 2、找到对应的安装包下载 麒麟是基于Ubuntu版本开发,下载Ubuntu的安装包 3、下载之后直接在下载文件夹双击安装下载的文件 4、输入用户的密码进行授权 5、安装成功 6、打…

CSDN年度征文 | 你好,2023

祝大家新年快乐~🧧🧧🧧 ⭐过去的2022⭐ 2022已成过去,2023慢步向我们走来。回首2022,这一年不是平凡的一年。这一年,有苦也有乐。冬奥会的成功举办、香港回归25周年、二十大胜利召开、航天任务圆满成功等等…

CSDN年度征文 | 你好!2023

本窝在这里祝大家新年快乐~🧧🧧🧧 ⭐过去的2022⭐ 2022已成过去,2023慢步向我们走来。回首2022,这一年不是平凡的一年。这一年,有苦也有乐。冬奥会的成功举办、香港回归25周年、二十大胜利召开、航天任务圆…