Javascript: 从最受误解的语言,到最流行的语言

 

这网站竟然只能在IE下浏览?

这网站竟然没有用AJAX技术?

不好意思,作为该网站的开发人员,你out了。

如果说当下最令人期待和关注的RIA技术,那非AJAX莫属了,这点只要看jQuery1.4发布后,开发人员的跟进速度就可以看出来了。做为WEB开发人员,我可以不会Flex,可以不会silverlight,但我的web工具箱里肯定至少有一个AJAX框架,更确切说法应该是Javascript框架,只不过AJAX的光环实在太大,以至于把真正的幕后功臣Javascript给盖住了。

我第一次接触JS差不多是在1999年,正好在上高中的时候,那时候用frontpage摆弄摆弄些静态页面,然后找个免费的服务器上传自己没事看着玩。那个时候对Javascript的定义就是做鼠标跟随、禁止右键、计数器,或某种看起来很炫(但现在看起来很俗)的页面特效,看着混在一块的css/html/js,我头都大了,妈呀这是什么啊!好在当时对javascript的操作就是copy/paste,所以还是可以忍受的,但从此对javascript没什么好感。

这种想法在最近这几个月我决定专注UE,认真的从头看了一遍Javascript Bible以后才有了改变,而且改得很彻底——javascript实在是最可爱的语言。虽然说JAVA和C#这几年的不断演变,增加了很多动态的特性,但是如果你让网络管理员或者hacker去用C#/JAVA,那他们会哭着罢工的,因为太麻烦了,为了更好的适应工业标准,引入的强类型和编译限制,但也因此繁琐了从想法到代码实现的过程,无怪乎计算机天才们都钟情于动态语言了。而主流的动态语言,在叠加了各种类库以后,也变成了庞然大物,而Javascript极其简单,虽然在加上DOM以后显得有些古怪(这还是门语言吗?),但却成了web浏览器的唯一语言,有人说这是it’s better to be lucky than smart。纵然作为语言本身纵然存在很多缺点,但必须承认Javascript是最普遍使用的语言。

javascript还有一个最——最广泛的支持。Java和.Net跨平台还需要麻烦用户装runtime,而javascript只需要有浏览器就可以了,无论是windows上的ie,mac上的safari,无论你喜欢chrome还是firefox。

从最令人误解的语言,到最流行的语言,替Javascript平反的是AJAX,一个综合了Javascript、HTML和CSS的技术,把javascript发挥到了极致。基于流行的AJAX库,和各种Javascript UI库,我们可以做出完全媲美桌面GUI应用的效果。并且眼下HTML5、CSS3、ECMAscript 5th的热议,还有各种浏览器积极的升级来更好的支持AJAX应用,让我真的很想知道Flex和Silverlight除了做web game或者实现音频/视频相关的应用外,哪里还有用武之地?实现相同的功能,面对Ajax更轻量级的方案,更好的传输速度,更低的客户端要求,更令人遗憾的是Ajax竟然还有更低的开发成本和服务器端要求,换做你是客户,会怎么选?

本文的标题借用了Javascript大牛Douglas Crockford一篇文章的标题,有兴趣请参考原文:

The World's Most Misunderstood Programming Language Has Become the World's Most Popular Programming Language

JavaScript:The World's Most Misunderstood Programming Language

All the posts in this blog are provided "AS IS" with no warranties, and confer no rights. Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 2.5 China Mainland License.

标签: javascript
posted @ 2010-01-28 22:22 海南K.K 阅读(1742) 评论(11) 编辑 收藏

 回复 引用 查看   
#1楼 2010-01-28 23:02 pythonic      
是得找个时间好好学学JS了
 回复 引用 查看   
#2楼 2010-01-29 01:37       

js通用,是因为开发浏览器的厂家都提供了解析js语法的引擎。

java/c#只是一家的东西,所以好像不通用。

但是本质上来说 js 的模型设计是有缺陷的,不及java/c#。可能等到html5 或者富客户端技术进化到一定程度之后,javascript就一定会被淘汰。

java和.net(IL)的模型设计是接近完美的。只是现在他们的表现形式稍微欠缺了。

 回复 引用 查看   
#3楼 2010-01-29 02:48 无常      
硬件性能提升了+浏览器的javascript引擎加强了+用IE6的人少了。
然后是ajax来点火。

 回复 引用 查看   
#4楼 2010-01-29 07:52 布尔      
标题党
 回复 引用 查看   
#5楼 2010-01-29 08:32 平平      
引用辰:
js通用,是因为开发浏览器的厂家都提供了解析js语法的引擎。

java/c#只是一家的东西,所以好像不通用。

但是本质上来说 js 的模型设计是有缺陷的,不及java/c#。可能等到html5 或者富客户端技术进化到一定程度之后,javascript就一定会被淘汰。

java和.net(IL)的模型设计是接近完美的。只是现在他们的表现形式稍微欠缺了。



除非有東西可以取代ajax

 回复 引用 查看   
#6楼 2010-01-29 08:50 jolboy      
网络速度加快之后,富客户端普及之后,尤其是siverlight和flex这两个富客户端的主流,带来的效果绝对是js无法比拟 的
 回复 引用 查看   
#7楼 2010-01-29 08:56 woodynet      
js兼容性仍旧是个头疼的大问题。

用js做个效果需要几百行的代码
用silverlight或flex只需要十几行或几行。

 回复 引用 查看   
#8楼 2010-01-29 09:08 天赋与努力      
懒得说楼主,目前的AJAX也就是XMLHTTP是通讯传输能力最弱的,竟然还敢拿来同SL等RIA作比较
 回复 引用 查看   
#9楼 2010-01-29 10:26 雪痕-shawen      
我最近程序用jQuery中的ui.tabs.js 这个插件,(tab应用了母版)每个tab都是加载的一个aspx页面,当我在这个ajax加载的页面用了一个GridView和DropdownList控件,当DropdownList选项发生变化的时候GridView中的数据刷新,但是好像不起作用,而且我在上面做了其他查询,当我点击查询按钮的时候,页面发生跳转,而不是在tab所在的页面执行操作?

还有,在这个页面中用了My97DataPicker控件后,在tab页面也无法选择日期时间?

为什么在单独的页面就没问题,在tab页中用就会有问题呢?

如果我不用GridView等这些服务器控件,就不会出现问题...

 回复 引用 查看   
#10楼 2010-01-29 11:14 小驴      
呵呵,KK又发表文章了,不错,支持!小弟很菜,学习了!
 回复 引用 查看   
#11楼 2010-01-29 17:04 裤裤不酷      
@
js现在是比较火,但我还是相信在html5和一些新的RIA技术出来之后大家会很乐意把js丢掉的,有多少在抱怨js在各个浏览器间的不一致!有多少人在抱怨js开发调试有多恶心!大多数的企业web应用程序除了逼不得已没人愿意去用js。用也用点最基本的。我觉着一个开发团队或公司有一个js高手做支持就行了,面得其它人在上面浪费时间!