感叹JavaScript的重要性越来越大了

唠叨一下对JavaScript的认识
服务器君一共花费了215.431 ms进行了5次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

JavaScript是门脚本语言,但好歹也是门语言,而且有强大特性的语言。

JavaScript与Java有关系,不过只保留了基本关键字的相似,远不如C#与Java关系紧密。

C#3.0以后,已经越来越不像Java了,越来越多的动态元素加入进来,JavaScript十几年前实现的,不断成了C#新版本的卖点。比如扩展方法,C#实现得很巧妙,但比起Javascript来,就显得别扭了。我们要扩展一个String类型的format方法,就可以,不必额外在一个静态类里写。

String.prototype.format = function() { 
	this.replace(/\{(\d+)\}/g, function(m, i){ return args[i]; }) 
}

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#。

在前端开发上,大家都没有统一的想法。首先是框架选择,现在看来,除了那种只有几个页面的小网站,毫无疑问应该以JQuery这样的成熟框架为主,自己写的扩展为辅。很多项目负责人不想用JQuery,可能网站连GZip不支持或者不设置,现在都什么年代了?再者尽管掌握很容易,毕竟要学习,一谈到学习很多Senior人士就不玩了。

JQuery本身也有问题,所有功能都在一个文件里,其实可以分成几个小一点文件,就像命名空间一样划分。再者更新太快,浏览器甚至JS核心想嵌入它,还是很遥远的事。

JavaScript也没有太好的开发平台,用来教新手入门很方便,代码一多,就觉得乱得不得了。大家越用越不爽,一些复杂的效果,其实JavaScript完全做得来,也被Flash,将来还有SilverLight抢走了。HTML5标准快出台了,我曾预测会很大程度上代替Flash甚至SilverLight。但现在看来,JavaScript在开发上的弱点会制约HTML5的新特性的应用,也会严重影响HTML5的普及。在HTML5下,能做的事情就更多了,但编写起来应该会更不爽,结果Flash和SilverLight活得更滋润(这两个互掐就不算了),各自的语言、框架、IDE、粉丝一个不少,Web前端开发延续分裂格局。

除非,JavaScript自己改变,既能解释执行又能编译执行,定义类型可动态,又可静态,这点很重要,这样才能进行类型推断,智能提示,微软也好,开源方也好才有兴趣做真正为JavaScript量身打造的IDE。对语言模式、规范的研究将为JS语言注入新的活力。但这变化太革命性,没可行性,这么多浏览器,这么多厂商,怎么一致,谁能协调的了。除非有革命性的事件,上文说了,就是浏览器取代操作系统,桌面变成页面,这虽然有可能,但太遥远。

何况将来桌面变成页面,未必就是HTML,我看更可能是RIA。但Flash没这雄心,乔布斯说Adobe的人太懒得变化,又不开源。JavaFx太嫩了,Sun公司又被吞并了,未来没妈的孩子-苦。SilverLight同样嫩,出身太硬,有贼心有贼胆。尽管现在Flash还占绝对优势,不过一旦时势有变,RIA应用进入桌面,只见银光洒满天。

若微软强势逆推SilverLight,是因早已预见到这一天,那就更有点可怕了。

回过来说JavaScript,可以预见,它在编程语言榜第十的地位,它的生态环境短期内不会有什么变化。JS执行的速度越来越快,开发中的困扰依旧。

当然,您要是精通JavaScript,也是很令人佩服的,薪水应该也不会低。然而比起C/PHP/Java/C#这些语言说,只写前端,真得是比较没前途。所以,我也没动力向精通的门槛迈进了,所以继续接受困扰,快习惯了,趁习惯麻木前记录下来,不然以后连思考都没了。

本文地址:http://www.nowamagic.net/librarys/veda/detail/433,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/433

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《Head First设计模式(中文版)》 弗里曼 (作者), 等 (作者)

《Head First设计模式》(中文版)共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。前言先介绍这本书的用法;第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、Facade、TemplateMethod、Iterator、Composite、State、Proxy。最后三章比较特别。第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词)。

更多计算机宝库...