上网时,我喜欢把JavaScript禁用,除非看视频或测试。
JavaScript是门脚本语言,但好歹也是门语言,而且有强大特性的语言。
JavaScript与Java有关系,不过只保留了基本关键字的相似,远不如C#与Java关系紧密。
C#3.0以后,已经越来越不像Java了,越来越多的动态元素加入进来,JavaScript十几年前实现的,不断成了C#新版本的卖点。比如扩展方法,C#实现得很巧妙,但比起Javascript来,就显得别扭了。我们要扩展一个String类型的format方法,就可以,不必额外在一个静态类里写。
JavaScript有委托,有事件,有异常处理,对象模型也很丰富。虽然不能继承,不过对象都可以无限扩展,有无继承也没那么多的意义了。
浏览器市场竞争日趋白热化,不管是IE9,FireFox 4还是Chrome X,竞争的焦点都是速度,速度的核心自然是Script执行速度。
一堆脚本源码在别人机器上解释执行,没法不开源。开始网站的脚本都很少,但随着客户体验要求的提高,脚本得也越来越庞大复杂。很快大家发现,尽管代码都发布在网上了,也没什么嘛。现在流行JS压缩技术,更没人看了。于是代码开源运动兴起了,JavaScript是开创者。
从创立至今,微软从未被对手真正打败过,却三次败给了JavaScript,承认了JS在Web前端的独霸地位。第一次是微软在Asp.Net中忍痛抛弃了亲生孩子--VBScript,全面支持JS;第二次是匆忙发布Ajax Extensions系列组件;第三次VS2008中集成了JQuery和代码提示为标志,Asp.Net大有融入富客户端之趋势。
不过十五年了,JavaScript还没有一个被广泛认可的开发环境,真不知道GMail那几十万行代码是怎么写出来的。有好用的工具他们也不会公布,只能继续指望微软了。不过十几年都这么过来了,没有也就那么的吧。
有些人很仇视JavaScript,接触过不少做过两年以Web开发还没写过超过一百行JS代码的人,转行吧兄弟。
对编程新手来说,JavaScript是入门的不二选择,门槛为零,实用性强,易学难精,比其它语言好处太多了,既能调动起有潜力入门者的兴趣,又能适时让无兴趣者知难而退,不致以后滥竽充数。以后我写程序了,就办编程学习班,先教JavaScript,目标超过北大青岛。
“这我也能实现”,上网看到一个复杂的JS效果时常常这么想,可真要写起来,就头疼了。DOM操作的复杂性,浏览器兼容性很大地降低了写JS的乐趣,于是JavaScript Framework如雨后春笋般涌现。
短短两年时间,JQuery就脱涌而出,笑傲群雄。当时第一次听说它,就觉得这名字很正点。有个叫得响的名字,才是成功的第一步。
可惜JavaScript当年一念之差,被认作Java的小弟,从此再难翻身,在编程排行榜位置不上不下。虽然功能不断增强,又出现了众多框架,也改变不了只能在浏览器这一亩三分地里折腾的命运。面试时人家问你会什么语言最善长,你敢说JavaScript么?
不过要是浏览器将来喧宾夺主,取代或部分取代操作系统的话,那情况就完全不同了。待浏览器升华之时,正是JavaScript出头之日。那时,Java可能早就进了博物馆,JavaScript正躲藏在浏览器不为人知的角落,偷笑着与自己越来越像的C#。