JavaScript是一门被误会最深的语言,这话一点不假,咱们看下它的发展历史.前端
1995年,Netscape要推向市场,须要一门脚本语言来配套它.是使用一门已有的语言,仍是发明一门新的语言,这也不是我能决定的.来自高层管理人员的强制命令是这门语言必须"看起来像Java".这样也就排除了已有的语言Perl,Python,和Tcl,以及Scheme.程序员
当时Netscape(网景)公司招了个程序员来干这件事情.他就是JavaScript之父Brendan Eich,Brendan Eich是个很聪明的小伙,很喜欢函数式编程,对Scheme至关在行.编程
事情是这样的,当时若是这事让Brendan Eich来干,那么如今所谓的JavaScript就是Scheme了,IT界将进步至少10年,脚本代码那就是纯纯的函数式了,还能够用开发工具,用编译器来作.固然脚本写出来多是这样子的.后端
(begin
(display"Hello, World!")
(newline))
好多括号是否是.由于当时JAVA很流行,Brendan Eich的某位不懂技术的上司要求把JavaScript开发成象Java,可是Brendan Eich仍是喜欢函数式编程.因此就成了这样.前端框架
document.write("Hello World!");
标准的命令式,没什么特殊的,函数式编程被埋在了传统命令式的外壳之下.Brendan Eich还表示,若是他在十天内作不出JS,会产生另一种更糟的语言
而这个给了Brendan Eich十天时间,并作得象Java样的上司就是Rick Schell.一个糟糕的领导,毁掉的不是一个下属,而是整个世界,相信写过JS代码人的都有这种痛苦的感觉.架构
好在Brendan Eich毕竟是大牛,10天时间,给JS带来了一些很烂的东西,但基本上精华的东西,仍是都放上去了,就是Scheme所拥有的,这让JS成为一门完整的函数式语言成为可能.框架
这里有两个本人认为很关键的人物,第一个是:函数式编程
Douglas Crockford是一名来自Yahoo!的资深JavaScript架构师,以创造和维护JSON (JavaScriptObject Notation) 格式而为你们所熟知函数
他根据JS的灵感创造了JSON,JS+JSON,好用多了吧,还给出了JS精粹,告诉咱们怎样用好JS.对JS进行裁减,只用一个最好的部分集合.真是贡献.工具
另外一个就是,Jeremy Ashkenas, 它给出了Underscore.js这样一个JS的最底层函数式编程基础库,经过JS的基本功能,包装了大量的函数式特性.补完了JS的函数式编程支持.固然他的贡献不单单这点,他甚至还继续创造了CoffeeScript
CoffeeScript 是一套 JavaScript 的转译语言。受到 Ruby、Python 与 Haskell 等语言的启发[1],CoffeeScript 加强了 JavaScript 的简洁性与可读性。此外,CoffeeScript 也新增了更复杂的功能,例如列表内涵(List comprehension)、模式匹配(Pattern matching)等。通常来讲,CoffeeScript 能够在不影响执行效能的状况下,缩短约三分之一的程式码长度[3]。自从2011年6月以来,CoffeeScript 已是 GitHub 上最受瞩目的专案之一。
这下JS化身为CS, CoffeeScript终于补完了函数式编程,语法更简洁,并且是编译式的.这就让写JS的错误变的更少了,编译出来的代码就是JS.
固然,还有几个不得不提的东西,就是在Underscore.js的基础上,有人又开发出了JQuery,BackBone这样的JS库.让JS能够作更复杂的应用了.
通过补完后的的JS,就象是被打磨后的钻石,终于发出了它的光芒,已经值得用它来些一些应用程序了.固然,事情远不止于此.
JS语言层面补完了,也有了Jquery这样的库,但这点东西,作应用仍是远不够的.
最近出了个叫Node.JS的东西,它能够用JS写后台,还有个Angular等相似的东西,能够用来写前端的框架.
至此,JS语言的后端,前端框架和支撑平台都获得了补完,能够真正作应用了.至少开发所须要的东西足够.
可是.