为什么学习JavaScript 

最近花了不少时间去学习JavaScript,以一般的理解,JS主要用于浏览器前端编程,也就是所谓的Web App。我自己目前是以本地客户端应用开发为主,也就是所谓的Native App,所以JS跟目前的工作交集不大,不过个人认为JS的学习和研究仍然是一件非常有意义的事情,下面是列举的一些理由。

 

JavaScript的编程范式跟主流语言有很大的不同,跟Python这样的脚本语言也有比较大的差异,它从其它语言里面吸收了很多不同的概念并糅合在一起。学习JavaScript,可以帮助编程经验比较局限在C++/Java这样的主流语言的我拓宽思维的边界,吸收更多新的理念,及打破以往对编程和编程语言理解的一些局限性。

 

JavaScript虽然是从浏览器前端编程中发展起来,目前也还是它最大的应用领域。但JS本身仍然是一门完整的面向对象的编程语言,只要能够为它提供一个合适的运行时环境,它就可以很好的应用于在其它的领域。而它作为编程语言的一些优点如下:

  1. JavaScript虚拟机的速度越来越快,以V8虚拟机为代表的即时编译技术的成熟使得构建更复杂的应用成为可能;
  2. JavaScript跟其它语言如C++/Java/.Net的binding越来越容易,使它很适合作为一门粘合剂语言,构建Hybird App;
  3. JavaScript对函数式编程和闭包的支持使得它很适合应用于异步编程,像跟网络相关的应用和以事件驱动为基础的GUI应用;
  4. JavaScript操作复杂的数据结构如树结构很容易,这使得它很适合用于GUI编程和网页编程(后者本来就是它最初的发展目的);

JavaScript在浏览器前端编程的领域内继续迅猛发展,HTML5标准为浏览器的JS运行时环境增加了大量新的API,提供了更完整的功能,为使用JS编写更复杂和本地化的Web App提供了强有力的支持,而其它以浏览器运行时为核心的中间件如PhoneCap更是增强了通过JS直接访问和控制移动设备的能力,这些都进一步模糊了Web App和Native App的界限。

 

其它的JS运行时环境的发展也使得JS在除了浏览器前端领域外的应用变得越来越重要,NodeJS构建了JS服务器编程的运行时,QML/JavaScipt构建了JS用于Qt的QML GUI编程的运行时,Windows 8的Windows Runtime构建了JS跟.Net混合编程的运行时等等。所以未来,JS在3个主要的编程领域,本地客户端,浏览器前端,服务器后端都会得到更广泛的应用,特别是本地客户端编程,目前主流的GUI框架和OS的发展都有把JS搭配HTML或者其它的UI脚本语言作为本地GUI应用构建的主要语言的趋势,通过JS跟C++/Java/.Net的Binding,Hybird Native App会变得越来越普遍。

Advertisements