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

JavaScript的起源?不同的JavaScript和引擎?JS版本发展史? 1995年,JavaScript诞生了。不得不提到它的标准ECMAScript, 它是一个语言标准,而非具体的语言。JavaScript除了名字有”Java”, 其它和Java没任何关系。Netscape为推广自家的LiveScript,命名中包含当时最流行的编程语言Java来蹭蹭热度。Netscape公司有些人可能不熟悉, 它就是早期被IE做浏览器对抗后来逐渐消亡一家公司。 阅读详情

前言: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

JavaScript实现人物动画移动效果(附完整源码) 阅读详情

相关推荐

javascript人物行走动画效果

javascript人物行走动画,注释完美,面向对象。使用方便(ie有效)

jQuery 之父诞生 | 历史上的今天

整理 | 王启隆透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。今天是 2023 年 5 月 8 日,在 1973 年的今天,土豆网前CEO,追光动画创始人王微出生。王微拥有欧洲工商管理学院的 MBA 学位以及约翰霍普金斯大学的计算机硕士学位,他在创立土豆网之前,是德国贝塔斯曼集团总部的企业发展总监兼贝塔斯曼在线中国执行总裁。2005 年 1 月,王微创立土豆网。2011 年 8 月土豆...

优快云资讯 424

用js控制人物的移动

这是我用js做的一个练习,中间可以改进的地方有很多,中间也留了我做这个的一些疑问,有兴趣的可以看看,这是好多年前提交的一个版本,看到所需几分要50,表示吓到了。

js的简单介绍

1.js的介绍 js全称叫javascript,但不是java,他是一门前台语言,而java是后台语言。 js的作者是布兰登艾奇。 前台语言:运行在客户端的 后台语言:跟数据库有关的。 2.能干什么? 页面特效,开发页面游戏,后台开发等等。 3.js和ECMAscript的关系 ES不是语言,是js的标准,我们学习js得按es的标准学习。 4. 前端的三个层次   Htm...

weixin_30318645的博客 387

Jquery作者John Resig自己封装的javascript 常用函数

NULL 博文链接:https://sailinglee.iteye.com/blog/756376

2026年ERP选型实战:按规模分档,避开成本与实施陷阱

企业资源计划(ERP)是现代企业数字化转型的核心系统,它将财务、供应链、制造、人力等业务整合到统一平台。随着云计算和人工智能技术的发展,ERP已从传统本地部署的记录工具演变为SaaS订阅制、具备AI辅助决策能力的智能运营平台。不同规模企业在选型时的关注点差异巨大:小微企业追求轻量化和快速出报表,中型企业需要在流程标准化与业务灵活性间取得平衡,大型集团则注重多法人管控和数据治理。此外,制造、电商、工程等行业对ERP的模块要求也各有侧重,成本核算数据跑不通更是普遍痛点。如何结合企业规模与行业特征,制定合理的选型

weixin_34320724的博客 380

JavaScript作者

js作者 Brendan Eich

qq_46138057的博客 424

手把手教你用CH340给正点原子ESP8266烧录固件(附串口调试技巧)

本文详细讲解了使用CH340模块为正点原子ESP8266烧录AT固件的完整流程与关键技巧。核心在于烧录时必须使用3.3V供电,并正确连接GPIO0引脚至GND以进入下载模式。文章涵盖了从硬件接线、软件参数配置到烧录后串口调试验证的全步骤,并提供了常见问题排查方案,帮助开发者一次性成功完成固件烧录。

weixin_29201933的博客 232

jQuery的前世今生

在WEB开发圈内,提起大名鼎鼎的jQuery,几乎无人不知,无人不晓,下面笔者就带大家一起扒一扒jQuery的各种八卦。 jQuery诞生于2006年1月,至今已经有十个年头多了,其作者是美国大神John Resig,他当时发明jQuery的时候只有22岁。此时,一定会有想象力丰富的网友脑补一下自己22岁在干嘛?打装备?泡妞?备考?或者是,搬砖。。。其实John Resig从14岁就开始玩编程,22岁已经是资深码农了,我们14岁可能还在玩小霸王,呵呵。 那么,jQuery为什么会这么流行呢?这完全要归功于当

马云 1474

MuJoCo 相机图片怎么拿?视角调整获取物体图片及实时显示(附代码)

在Mujoco的仿真中,对于识别抓取场景来说,如何获得添加的body等物体的实时图像很重要,今天就分享下如何添加相机视角及可视化小方块(举例)的实时图片。复制一个scene.xml为scene_withcamera.xml,在xml中添加camera和小方块如下。设置xml文件中添加的相机body id。需要创建一个离屏渲染器。

darcsdn 2128

MAVLink协议详解

MAVLink是为微型飞行器MAV(Micro Air Vehicle)设计的(LGPL)开源的通讯协议。是无人飞行器和地面站(Ground Control Station ,GCS)之间,以及无人飞行器之间通讯常用的协议。APM、PIXHAWK飞控,Mission Planner、QGroundControl地面站均使用了MAVLink协议进行通讯。 MAVLink源码下载地址(现已更新至v2.0):https://github.com/mavlink/qgroundcontrol   用户手册:ht

程序猿老樊的博客 7705

深入JavaScript之JS引擎如何执行JS代码

我们大概经常能听到“执行环境”、“作用域”、“原型(链)”、“执行上下文”等内容,它们都在描述什么? JS代码的运行 我们知道了js是弱类型语言,在运行时才确定变量类型。js引擎在执行js代码时,也会从上到下进行 词法分析、语法分析、语义分析 等处理,并在代码解析完成后生成AST(抽象语法树),最终根据AST生成CPU可以执行的机器码并执行。 除此之外,JS引擎在执行代码时还会进行其它处理,如 V8 中还有两个阶段: 编译阶段:该阶段会进行执行上下文的创建,包括创建变量对象、建立作用域链、确定 this

flying meng的菜鸟居 5966

【2026最新版】PCL点云处理算法汇总(C++长期更新版)

PCL学习目录。博客长期更新,最近一次更新时间为:2026年10月4日。

点云侠的博客 63万+

JavaScript框架的四个时代

最近,换了工作,参加了n次面试。过程相对愉快的经历。然而,有一些问题的非常棘手,比如下面这些。 2. 视力测试 3. 棘手的闭合 我1 2 题目全错,只答对了第3题目,哭。。。你有答案了吧,下面揭晓。 我第一题目的答案是 刚好相反,完美错过。我第二题回答的是 大家有没有发现问题所在,没错就是 大家对答案有想法的,可以留言分享,我们一起学习。编辑中可能存在的bug没法实时知道,事后为了解决这些bug,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。[外链图片

粉丝们务必加入微信粉丝群 882

SAP 批次管理(分割评估)

批次分割评估: 业务场景:企业要求各批次物料成本价格不一样。此时可以采用分割批次来实现不同成本 后台配置: (1)、激活分割评估 后台---物料管理----评估与科目设置---分割评估-----激活分割评估 (2)、配置分割评估 后台---物料管理----评估与科目设置---分割评估-----配置分割评估 进入全局性分类后,批次分割采用已有的评估类型“X自动(批)”: ...

willieyuan的博客 1万+

51单片机入门指南-基于STC89C52(持续更新)

一、环境介绍 编程IDE: keil5 单片机型号: STC89C51/52 开发板: 普中科技的开发板 完整PDF资源下载地址:https://download.youkuaiyun.com/download/xiaolong1126626497/19785856 二、51单片机开发手册介绍 2.1 前言 51单片机是对所有兼容Intel 8031指令系统的单片机的统称。 该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最.

8798

Split.js 四个可移动方格

body {margin: 0;padding: 0;.pane {.gutter {

zichenblog的博客 692

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

四个免费开源的JavaScript库

交互式数据可视化在很大程度上取决于JavaScript库的任务能力。在这篇文章中,我们将看看四个JavaScript库:D3,InfoVis,Processing.js,和Recline.js。所有这些库可以用来装饰您的网页与动态数据可视化,但每个采用不同的方法来提供这种能力。所有四个都可以免费使用和分发。 D3 D3是一种奇妙的基于Javascript的数据可视化库,允许您将数据绑定到DOM

wuyuanjingni的专栏 4103

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

js一行四个 超过自动换行_干货!零基础学JavaScript要掌握的四个基本常识

零基础学JavaScript需要掌握哪几个基本常识点?下面西安鸥鹏为大家解答。了解和总结程序语言中常见的小常识,可以使编程变得容易,特别对于新手来说。JavaScript是一种弱类型客户端的编程语言,新手在系统学习JavaScript之前需要了解Javascript基础和语法规则,也称语言规则。今天西安鸥鹏教育主要为大家介绍关于JavaScript的一些小常识!零基础学JavaScript要掌握的...

weixin_35381903的博客 1290

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Node.js开发者必须熟悉的四个JavaScript概念

Node.js开发者必须熟悉的四个JavaScript概念作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.youkuaiyun.com/chszsNode.js是一个服务器端的开发框架,它基于Google Chrome的V8 JavaScript引擎构建。尽管Node.js自身是使用C++开发的,但是它使用JavaScript作为其应用语言。 Node.js有四

chszs的专栏 7189

浅谈JavaScript new对象的四个过程

new对象: function Person(name,age,job) { this.name=name; this.age=age; } var person = new Person("Alice", 23); new一个对象的四个过程: 1、创建一个空对象 var obj=new Object(); 2、设置原型链,将obj的_

筱葭的博客 6160

JavaScript new对象的四个过程

1.JavaScript new对象的四个过程 new对象: function Person(name, age) { this.name = name; this.age = age; } var person = new Person("Alice", 23); new一个对象的四个过程: 创建一个空对象 var obj = new Object(); 让Person中的th...

如何避免NullPointerException 352

JavaScript框架发展的四个时代,你经历过其中几个阶段?

从1995年JavaScript发布到如今的2022年,历经近30年的发展,JavaScript发生了怎样的变化?不同时期,在什么样的技术驱动下,其底层框架发生了革新?在本篇文章中,资深开发者Chris将带领我们领略JavaScript四个不同的时期。

优快云资讯 9545
上一篇: 最贵的教育方式有望普及了
下一篇: 漫画丨上辈子作恶多端,这辈子早起上班
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值