IT见解

深度技术控们有一个特点,能用C实现绝对不用Java,能用Java实现绝对不用Javascript,哪怕要写更多的代码,他们总有N种理由,其中最常用的一条就是这个没有技术含量。弱弱地问一句,技术含量是用来干嘛的,用来炫耀的么?想起一个段子:搞C的看不起搞C++的,搞C++的看不起搞Java的,搞Java的看不起高.NET的,搞.NET的看不起搞js的,搞js的看不起搞html的,搞html的看不起美工的,最后美工周末去泡mm的时候, 一群傻X在那里加班。

程序员身边有一个很有意思的现象,接私活接得最多的,往往是美工和搞Flash的,再就是做PHP/Java/.Net的,而C及C++接私活,估计比较难。许多人看不起所谓的“低级”技术,在我的从业经历中,像HTML/Javascript之类的的技术,常常受人轻视,随着AJAX技术的兴起,这种状况稍为有些改善。

Javascript历来处于一个很尴尬的角色,写程序的不愿写,美工不会写,许多中小型公司并没有专职的Javascript开发人员(或者叫Web前端开发工程师)这一角色。许多时候,Javascript都会被程序员视为一个苦差,他们觉得这玩意儿没有什么技术含量,调试困难,更不用说那蹩脚的IDE了。

事实上,现在的互联网环境,Javascript是一种非常好的解决方案,首先它跨平台,绝大多数的浏览器都能够支持,这也就意味着它可以跨操作系统;其次,它入门简单;第三,随着各浏览器支持HTML5,利用Javascript+Html5+CSS3,可以开发出更多功能的程序。

我列出互联网目前几个关键词:开放、混搭、多终端、App,开放是说目前许多网站都有自己公开的API,而且都支持使用Javascript进行调用,Javascript SDK已经作为开放平台必备的一个SDK了,当然还有一个是PHP的SDK;混搭也就是英文的Mashup,你可以利用Google Map+Twitter+Facebook API搭出一个你自己的网站;多终端是指一个网站除了网站本身,还需要开发出运行在各种终端上的软件,比如说Firefox/Chrome/Oprea的插件、客户端、手机网站等;App是指现在流行的App Store,比如说Facebook的App和Apple的App Store等。

比如说你现有一个网站,你可能想有一个客户端,想有手机版的网站,想做一个iPhone/Android的软件,想在各浏览器运行你的插件,那么有没有一种方案可以低成本地实现呢?答案是有的,利用Javascript,上述功能都能实现。

Javascript自然不能实现太复杂太低层的功能,比如说你要做一个很酷的游戏在iPhone上,自然是不可能使用Javascript的,但作为网站功能的延伸,我们完全可以利用Javascript/AJAX来做解决方案。这种解决方案的优点就是你只需要写一套代码,然后根据不能环境进行一些扩展就可以了,因为不能环境对于Javascript的使用是有差异的,比如说在iPhone上,你可以使用横屏的功能,在Chrome插件上你可以使用桌面通知的功能,而在AIR中,你要考虑沙箱等等。

我大致说一下不同环境的实现方式,网站之类的就没什么可说的了,iPhone与Android就是加载一个浏览器,然后用浏览器加载一个本地html页面。客户端的话,就是使用AIR,当然你也可以使用WebKit。各种App其实和网站没什么两样。

跨各种环境的Javascript写起来还是比较麻烦的,你要了解到不同环境的限制与特色,既要发挥不同环境的特色,又要最大限度地提高代码重用率。比如说在iPhone下就Javascript运行的时间限制,这样你肯定不可能像在PC上运行Javascript一样,因为资源是有限的。

对于不差钱的主儿来说,自然不用考虑这种方案,毕竟针对特定环境进行特定开发的用户体验会好很多,但对于创业者来说,这种方案是值得期待的。