摘要:一个只花了10天开发完成的脚本语言,自从诞生开始,一直成为人们争论的焦点。尽管这样,它在编程语言中地位仍然无法动摇,全世界有几百万学习者和粉丝。而本文的作者认为JavaScript设计之匆忙,初衷仅仅实现简单的网页互动,JavaScript继承完全缺乏设计指导等,所以他认为JavaScript仍然较差。

  近,我和许多程序员一样,对JavaScript进行重新探讨。事实上,JavaScript是一个非常有能力的语言,但使用新JavaScript一年后,我得出的结论却是JavaScript仍然很烂。我并不是在讨论其古怪的比较运算。而是从更深的层次去思考。与此同时,还会提供一些解决方案供你选择。

  直奔主题

  13岁时,父亲送给我第一本编程书籍——JavaScript初学者编程。让我兴奋的是,我发现电脑并不单单是由电线和发条所组成,里面的代码清晰明了。我觉得我基本上理解它了,实际上也差不多。终究,代码除了人类理性思想的形式化还能是什么?

  说实话,我当时希望遇到的是Java,我甚至在谷歌上搜索:“JavaScript和Java是同一种语言吗?”当然不是。所以Java成为了我学习的第二门语言,不过我母亲和继父不希望在家庭电脑里安装软件,所以我无法安装Java编译器。我清晰地记得,在把代码上传到一个在线编译器之前,得反复检查代码,然后等待、下载jar包……

  我当时认为,JavaScript是一个非常严肃的语言。在Notepad里新建一个HTML文件,然后在IE里打开,这样开始了。没有类、没有私有和公有方法,没有final变量。当时,我甚至不知道什么叫“过度设计”,但它准确地描述了我印象中的Java:

  ● 无需编译

  ● 无处不在的开发平台

  ● 没有高级语言特性

  ● 查看源文件

  为什么这么伟大的语言还会讨人厌?

  Ad-hoc地狱

  下面是一些问题:设计之匆忙、初衷仅仅实现简单的网页互动、JavaScript继承完全缺乏设计指导,一切都是ad-hoc:

  1、没有OOP:JavaScript确实存在基本的对象模型,但几乎无人知道它是如何工作的。

  2、没有标准库:从论坛上复制粘贴代码不好玩。

  3、没有模块系统:不断查找下载链接和很长的源文件。

  4、缺乏语言资源:没有高品质的资源(几乎没有一本像样的书籍)意味着你只能从论坛或博客上获得一些非官方的参考。

  既然JavaScript有这么多缺陷,到底是什么让它如此流行?

  复兴

  JavaScript崛起的背后可能与谷歌V8引擎息息相关。JavaScript突然变得很快,真正地快速。所以人们开始硬着头皮使用它来编写Web应用程序。

  然而,Node.js推出了一些更吸引人的基准,允许代码在客户端和服务器端重用,很像Meteor和Derby。因此,情况开始好转:

  1、下载按钮变得更大

  2、Node.js kind of sort of standardized an import system

  3、人们可以编写更好的库

  4、的资源开始出现

  然而:

  1、仍然没有采用OOP

  2、客户端和服务端的JavaScript仍然没有关联

  3、文档甚至是高知名度项目文档也很糟糕