是的, 我就是鼎鼎大名的Javascript, 典型的高富帅,前端编程之王,数以百万计的程序员使用我来编程。 如果你没有用过我就太out了。
不过当我是一个屌丝时,真的没有想到能发展到如今的地位......
我出生在上古时代的浏览器Netscape中, 那个时候的网页真是乏善可陈, 你可能都想象不到, 主要是些丑陋的静态文本和简单的图片, 和现在美轮美奂的页面相比,差的实在太远了,不信你请看著名的Yahoo 网站:
那个时候人们还在用Modem(调制解调器)通过电话线拨号上网,每次拨号都有种吱吱啦啦声音, 就像一个铁片努力的刮一个锅底,让无数人抓狂不已。
这还不算什么,网速只有28.8kbit /s , 下载一个网页都得耐心的等待半天。
我的主人Brendan Eich 有一回用公司的Netscape上网购物的时候,需要注册用户, 填了一个表单, 点击了提交按钮, 等待了38秒, 然后服务器告诉他:“对不起, 您忘了选择性别了”
他几乎要崩溃:“靠,怎么能够这样! 这么简单的问题浏览器怎么不告诉我, 还得让我把数据提交到几千公里外的服务器网站, 然后在那里检查才能发现问题吗!”
对浏览器进行改革势在必行!
Brendan Eich于是去找老板: “我实在是受不了了, 我需要一种脚本语言运行在浏览器中, 帮助我完成这些本来就应该在浏览器中完成的任务“
老板:“我们Netscape公司也早有此意, 要不你来设计一个吧”
Brendan Eich:“好啊, 你听说过LISP(确切的说是Scheme)吗, 当今最牛的编程语言,我们公司何不把Scheme 运行在浏览器中呢?“
老板: "LISP有谁会用啊? ”
由于设计时间太短,我的一些细节考虑得不够严谨,导致后来很长一段时间,Javascript写出来的程序混乱不堪。如果主人预见到,未来这种语言会成为互联网第一大语言,全世界有成千上万的学习者,他会不会多花一点时间呢?
Java是当时的明星语言, 年轻,活力四射 , 他经常嘲笑我: 你小子到底是个计算机语言吗?
我说“是啊,我的语法和你差不多呢”
Java: "你为什么只能在浏览器中运行啊? 你能写个程序单独运行吗, 哎对了你能读取一个文件吗 ?"
我当然读取不了文件,我生活在浏览器里,用我写的程序只能嵌入在html网页中, 由浏览器中来执行。他们给这个执行模块起了一个很有动感的名字: javascript 引擎
我于是反击Java : “我有个引擎你知道吗?”但是Java 轻松就把我打翻在地: “我还有个虚拟机呢”
年长的C也问我:你怎么不编译运行啊, 你看我编译以后,运行的多快。我说:省省吧, 要是每个页面打开后都先编译javascript ,那多慢啊。
不仅仅是Java 和C , 包括VB, Delphi等当时流行的语言都瞧不起我,背地里叫我屌丝。
也是,我没法独立运行, 也不能像VB,Delphi他们画出漂亮的界面, 我能做的就是操作HTML 的DOM 和浏览器。
你可能不知道DOM是什么东西, 这么说吧, 浏览器从服务器取到HTML网页以后, 会展示成页面让你看, 但是他的内部其实会把HTML组织成一个树给我, 这个树可以称为DOM。 例如这个页面:
Sample Page
hello world!
Sample Page
hello world!