设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

技术探究:是什么让我们爱上Javascript

2009-8-18 13:07| 发布者: joejoe0332| 查看: 3418| 评论: 1

  附加的伤害

  在早期的时候,JavaScript并没有什么真正的技术问题,它是缓慢又充满风险的,并且只在Netscape下工作。后来IE也支持了,但并不是完全兼容。人们吹捧他用来编写页面的applets,但是它并不能检测applet的失败。它从来没有被广泛的使用过,很快他就成为了一个分母,人们仅仅用它来完成那些可靠的任务,并且避免在其他的地方使用。

  什么是JavaScript能够可靠的支持的?闪动的、基于图像的视觉效果。人们开始制造一些炫目的效果。Netscape引导了这个趋势,在页面中使用令人生厌的图层干扰了人们对正常内容的浏览。那些各种各样闪动、滚动的效果让我们认为这个标签简直就是网络的原罪。到处都充斥着闪动的Banner、滚动的Banner、状态栏里跳动的文字、随时可能弹出的对话框、……各种各样的滥用还在不断继续。Miscorsoft也开始谈论DHTML,但是不久DHTML就变成了Buggy、Slow、Unmaintable网站的代名词。

  对了,不要忘记安全问题。一般来讲,当你构建一个图灵完备(Turing-Complete)的编程语言时,你就需要特别小心安全问题。Netscape做的不够好,早期的Javascript中存在漏洞,而且花了很长时间才完全解决掉。

  结果是什么?很多的有技术头脑的用户关闭了浏览器的Javascript支持。要知道,在1996年的时候可以被称为有“技术头脑(Technically Savvy)”的人员站的比重相当的高。所以,这些人便不再依赖于JavaScript,因为这会导致用户不使用你的网站。

  那些使用JavaScript的用户做的也不够好。那些严谨的程序员完全抛弃了JavaScript,但是设计师和页面人员补充了进来。早期的书籍中都提供了糟糕的JavaScript实例,但是很少去从语义上对它进行分析、阐述。(David Flanagan是个例外)让事情更糟糕的是,有些人(也许是大多数人)根据就没从书中学习过JavaScript,他们只是从一个网站现有的代码中拷贝,修改,然后粘贴到自己的网站上让它工作,到最后都不知道为何这些代码能够正常运行。

  即使大家都是从例子开始学习JavaScript,只要保证两件事情这也许会成为一个很好的策略。第一个就是大家都学习好的例子,但显然JavaScript并不属于这种情况。第二种情况就是这种语言应该和学习它的人所知道的另外一种语言相似,但是很不幸,虽然JavaScript从语义上看来和Java非常相近,但实际上JavaScript来自一个和Java完全不同的编程语言家族。JavaScript是NewtonScript、Self、Smalltalk……和Lisp语言的一个直系后裔。Waldemar Horwat,一位在JavaScript早期产生重大影响的工程人员说,我更愿意把JavaScript认为是Common Lisp的另一种形式。这个说法有些夸张,但是如果你知道这两种语言,你就会很容易发现两者之间确实存在很多相似之处。

  所以状况就变的越来越不好,一门与之前广泛传播的语言有很大不同的新语言,被一些没有经验的编程者推广,其他的编程人员Follow了他们的例子。更多的用户基于安全考虑关闭了JavaScript的支持,还有有经验的程序员推荐大家避免使用JavaScript.上面的这些还不够,浏览器大战似乎一触即发,儿JavaScript被选作了一种武器。战争中的双方都不断的发展JavaScript,有时候甚至故意引入了很多不兼容特性。JavaScript此时已经变得更庞大,但同时也更容易引起问题。

  也难怪没有人会喜欢她。

  帝国的重建

  在那段时间,我还是不断听到更多关于JavaScript的消息。关于基于prototype和面向对象的特性的介绍总是让我很好奇,我曾经看到过的教材里从来没有提到过这些,也许是作者本人也没有必要的语言背景去将这些概念联系起来。同时,人们开始指出由于浏览器造成了多少错误,而不是JavaScript本身。

  后来,IE赢了,Netscape投降了,这一阶段的浏览器大战结束了。Miscrosoft开始将他们的bug光芒覆盖到CSS领域(任何处理过IE6下页面开发的工程师都应该深有感受),而Mozila的团队则开始认真的考虑兼容性的问题。除了一些根深蒂固的区别,想要修改他们必须大量的修改源码,这个小组修复大多数的不同,于是IE和Mozilla/Firefox下的JavaScript变得更可控了。其他的开发者也更加的有迹可循。

  JavaScript和浏览器的内置支持开始进入了一段稳固的发展时期。在我们大家都忙着写自己的JavaScript代码的时候,几乎没有人注意到一个具有传奇色彩的特性引入-XMLHttpRequest.最重要的DHTML特性,Ajax的重要部分,悄悄的加入到了IE中来。Microsoft的Outlook小组引入了这个ActiveX控件来使Outlook支持网络访问。200年的Ajax Experience的大会上,Dion Almaer和Ben Galbraith做了很多关于XMLHttpRequest的工作,但是在Mozilla第一次引入XMLHttpRequest支持的时候的官方文件中,他的特性根本就没有提到。

  那段时间有很多JavaScript的活动,在JavaScript的支持下,Macromedia为Flash提供了脚本语言支持。Adobe也在不断努力使他们的很多程序可以使用JavaScript来控制和扩展。Apple将JavaScript嵌入了它的Sherlock应用中。当然,Mozilla项目也做出了一个重要决定,他们大部分的浏览器都可以支持JavaScript.很明显,JavaScript已经不再仅仅是一个网页语言,而成为了程序中嵌入的动态的、运行时扩展的编程语言的首选。其中的原因也许是当时大家或多或少的都会一些JavaScript,还有当时存在两个高质量的嵌入扩展(SpiderMonkey c语言编写,Rhino Java语言编写)。

  在2000年的时候,一些人(著名的Brent Ashley、Alex Russell、Douglas Crockford)开始注意到JavaScript究竟能做什么。Brend开始研究JavaScript与服务器通信的方法,提出了我们现在公认的Ajax Style.而且在当时浏览器对于XMLHttpRequest支持不是很完善的时候,他增加或者形成了很多完成这项处理的很多巧妙的方法。他建立了一个网站“Remote Scripts Resources”,并且编写了一个JavaScript Remote Scripting (JSRS)库来支持不同浏览器的兼容性。

  Alex Russel建立了一个netWindow项目,意图建立一个支持富UI、可编程、图形环境的网页,同时带有完全可拖动的窗口和其他小组件,netWindows变成了nWigets,并且最终催生了Dojo Project,一个当前重要的Ajax框架。

  Douglas Crockford一直在研究JavaScript语言的丰富性,最后他发布了一系列有建设性的文章,例如:The World's Most Misunderstood Programming Language,在这些文章中,他指出了JavaScript在使用中的一些技巧和一些缺点。

  Brent、Alex和Doug当时的声音都很薄弱,就像旷野中的呼声,但是当最后其他的Web开发社区准备将注意力投向JavaScript的时候,他们所作的这些工作让我们的生活变得更加简单了。

  我在2000年到2003年中段的时候,对于JavaScript的关注都只是一些零星的片段,我确实没有投入太多的关注,我沉浸在Java的乐土中,闲暇的时候研究一下Ruby,而正是这段经历为我再一次的认识JavaScript提供了准备。

  在2003年的6月,我的朋友给我演示了netWindows,当我从地板上捡起我的下巴来以后(After i pick my jaw up off the floor,作者还真是幽默),我朋友告诉我说Alex这个人不是疯子,我如梦方醒开始认真的研究JavaScript,现在看来,当时Google也有一帮人在做同样的事情。


酷毙

雷人

鲜花

鸡蛋

漂亮

相关阅读

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部