过去我对 JavaScript 非常不感冒。原因估计是刚开始学的时候的心理阴影。
最开始在我的印象中,JavaScript 是一种给网页提供动态效果的工具,这跟我一向的“内容最大”的观点相冲突。由于我开始上网后有好几年都只能用慢速的电话线拨号上网,为了节约流量,提升速度,我特别讨厌网页上的花里胡哨的效果,重点关注的只有内容。早期的一些国内的网页,尤其是新浪、搜狐提供的 blog,很多人非常烂俗的在里面添加各种效果,比如动态背景、背景音乐等等,这些在像我这样用慢速网络上网的人来说,绝对是一种灾难,从那时我就对这些东西深恶痛绝。连带着对 JavaScript 的观感也不好了。后来出国后有了高速的互联网连接,但我这种“抠门”的习惯是改不了了。现在我的浏览器也一直用着 NoScript 插件。
我在大学里有一门课,名字叫 Distributed Programming,是讲 web 编程的。讲到 JavaScript 的部分时,老师简单的介绍了一下,并没有像 C 语言之类的深入来讲,让我门自己去看文档。然后布置了一个作业,用 JavaScript 写一个类似 task manager 的程序。我之前从来没有写过 JavaScript 程序,HTML、PHP 等也只是略有接触,最多修改一下 WordPress 插件的水平,于是这次作业写的我简直要吐血,HTML 中每个标签的 attribute 等属性都需要手动试验。而且一个只在浏览器中运行的程序,数据该存在哪里,老师让用 XML,怎么存取,我完全没有概念。
从那以后,我直接绝了自己做前端的想法。本来我对美工就一点不在行,和别人合伙作项目的时候,我都主动要求做服务器端,毕竟只涉及到逻辑方面,至少对我来说很清晰。
因为对 JavaScript 不感冒,我对近年来的一些相关技术都处于比较排斥的态度。比如 NodeJS,我看了它主页上的例子后就觉得它应该是一个用 JavaScript 写的 web.py,里面到底有什么东西我就没看。还有 jQuery,都说它多么多么好,我自己就一次也没有用过。而偏偏最近看的一些开发方面的新闻,这些方面的产品越来越多,所以我开始决定要学 JavaScript。
我现在在看 Crockford on JavaScript 系列的视频,也搜索了一些其它方面的文字资料。
今天在网上偶然发现了 Cloud 9 IDE,让我有种惊讶的感觉。这是一个用 JavaScript 写出来的在线版的 IDE。它不光有编辑器的很多功能,比如语法高亮等、还有自动保存,还可以在线运行 NodeJS、Python、Ruby 程序,甚至还有一个终端,也可以马上看到效果。这一切都做的非常漂亮,界面比如菜单什么的,跟本地的浏览器没什么两样
我不是不知道 JavaScript 可以做这些,但之前的经历让我觉得这些一定要花费非常大的经历,一点一点的来写。所以有这么一个功能让我感觉非常惊讶。这个 IDE 本身是用 NodeJS 写的,Github 上有源代码,我没有深入研究,不过看样子量似乎并不是很大。
近年来浏览器内的软件发展迅速,渐渐的开始形成趋势,Chrome OS 和 Chromebook 就是体现。在移动设备上,很多人用 HTML5 + JS 等来写程序,而不是传统的重型开发语言如 Java 和 Objective C。JavaScript 也显得越来越重要,如果继续排斥它估计我会更加落伍吧。