Web技术每年都在日新月异的变化着,虽然这样,但仍然有一些语言处于屹立不倒的位置,比如本文要讨论的JavaScript。
JavaScript自1995年诞生以来已过去17个年头,它被广泛地应用在Web开发中,随着HTML5技术的发展,JavaScript在未来还将有更大的发展和应用空间。JavaScript从过去“装饰性”的一种脚本语言转变为主流的编程语言,例如在2012年3月份发布的编程语言排行榜中,JavaScript占据第8名,超越了Perl和Python。
依旧春光明媚
2012年,JavaScript总体态势很好,不像HTML5一直处在风口浪尖。也未受到其它语言(Dart,CoffeeScript)的影响,仍然是开发者们最喜爱的前端编程语言。
那么下面让我们来简单的分析一下JavaScript为什么还会这么火。
- 第一简单性,JS是一门非常轻量级的语言,适合任何人学习,没有大量复杂的保留字,没有各种复杂的数据类型。难怪有人[探讨]JavaScript是性价比最高的技术?
- 第二速度,Google的V8 JS引擎让开发者可以在客户端和服务端更好的执行JS代码,这就给复杂的JS程序提供了基础。
- 第三与服务器交互较少,JS是运行在客户端的脚本语言,这就节省了Web服务器的请求时间。另外,可以再提交页面到服务前对用户输入的内容进行验证。这样减少了服务器的通信量,就意味着节约了金钱。
- 第四跨平台,JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可以正确执行。
- 第五让Web界面更丰富,尤其是一些带UI的JavaScript框架,不仅简化Web操作,还可以构建非常漂亮的用户界面,例如ExtJS,其提供了非常丰富的UI组件,包括高性能的数据表格、图表、选项卡、弹窗、工具条和菜单等等,可以帮助你构建用户体验良好的Web应用。
除了这些优点外,JS还非常地灵活,作为JavaScript程序员,只要你愿意,可以把程序写得很简单,当然,也可以写得很复杂。此外,它还支持多种不同的编程风格。你既可以采用函数式编程风格,也可以采用更复杂一点的面向对象编程风格。
十全九美 劲敌来袭
当然,世上并没有十全十美的东西,对JS来说,也存在一些缺点,比如其单线程机制,决定了其性能不佳等。于是各种想代替或者优化它的新语言就悄然出现。比如Google发布的Dart,就是想解决所有JavaScript不能修复的根本性问题,后来CoffeeScript的出现更煽动了这场取代JavaScript的战争。然而就在这种战争愈发激烈时,微软发布了TypeScript,让这场战争愈发激烈。然而,在编程语言领域里,貌似并不走长江后浪推前浪这条路。
虽然编程语言之间的竞争一天也没能停歇,然而真正能日日夜夜陪伴在程序员身边或许也只有那么几个语言。还是先让我们一起来看下这几门语言吧:
Dart一个从发布起就鼓吹要替代JavaScript的编程语言,一经发布便窜到了编程语言排行榜的107位,次月居然到了63,速度惊人。可是从目前的发展来看,它很有可能陷入到和Go一样不温不火的境地。大家不妨移步过来看看:[探讨] Dart路在何方?众家评说谷歌新编程语言Dart、微软JavaScript团队向Dart语言泼冷水。
CoffeeScript是一个非常精致的语言,能编译成JavaScript。其目的是用简单的方法揭示JavaScript优秀的部分,抛弃JavaScript晦涩的,容易出问题的部分。就在今年5月份,CoffeeScript华丽的挤进GitHub热门编程语言前十。
TypeScript也是一种编译到JavaScript的语言,可以载入JavaScript代码然后运行。此外值得一提的是,TypeScrip允许加入注释,让编译器理解所支持的对象和函数,编译器会移除注释,不会增加开销;增加一个完整的类结构,使之更新是传统的面向对象语言。就在上个月,微软发布了TypeScript 0.81版本,其带来了源码级的调试支持。更多TypeScript精彩内容,大家不妨来看看JavaScript大师Nicholas C. Zakas谈TypeScript。
到底哪个语言能成为最终的主角呢?小编在这里引入Nicholas C.Zakas在谈TypeScript时的一段话:“我认为编译为JavaScript的语言很难达到这一目标。我们应该说服更多的人学习JavaScript,而不是提供更多的选择让他们放弃编写JavaScript。我常在想,如果所有的团队、公司都把时间和精力花在研究和探索JavaScript的替代者而非维护、传播它,那将会发生怎样的一番景象。”
JavaScript精彩文章汇总
一、对JavaScript技术问题的探讨
- [探讨]JavaScript面向对象编程
- [探讨]再谈JavaScript面向对象编程
- [探讨]为什么说JavaScript是性价比最高的技术?
- [探讨]JavaScript需要Blocks
- [分享]Rhino使JavaScript应用程序更灵动
- 一个JavaScript问题引发的思考
- 如何进行高效JavaScript单元测试
- 深入理解JavaScript作用域和作用域链
- 如何编写出优美的JavaScript代码?
- 重思JavaScript的好与坏
- JavaScript真的需要类吗?
- [实战分析]编写高效的JavaScript程序
- 苹果:JavaScript在Safari上运行速度最快
- JavaScript版本发展及未来新特性
二、JavaScript常用技巧及工具
- 五个有用的jQuery技巧
- 7款jQuery视差和滚动效应插件
- 10个实用的jQuery交互/通信插件和教程
- 分享10个jQuery的语言翻译插件
- 推荐13款JavaScript图形和图表绘制工具
- 分享10个JavaScript在线Debugging工具
- 10款实用的Ajax/JavaScript编码工具推荐
- JavaScript开发者必备的10个超级实用工具
- 15款非常有用的JavaScript开发工具
- 3个增强本地JavaScript功能的库
- 6个提高交互体验的JavaScript库
- 推荐19个很有用的JavaScript库
- 5个界面效果很炫的JavaScript UI框架
- 推荐16款最流行的JavaScript框架
- 10个顶级JavaScript动画框架推荐
- 7款强大的JavaScript网格插件推荐
- 11款JavaScript颜色拾取插件推荐
- 7个漂亮的JavaScript的时间轴组件
- 设计JavaScript API的五个建议
- 推荐12款JavaScript表单插件
- 如何在15分钟内掌握JavaScript面向对象编程
- 推荐13款JavaScript图形和图表绘制工具
- 必须关注的25位知名JavaScript开发者
- 时间日期控制必备:6个实用的JavaScript插件
- Google开源Leak Finder for JavaScript
- JavaScript代码检查工具——JSLintMate
- 回顾2011年将JavaScript推到极致的20个网站
三、JavaScript效果欣赏
- 10个令人印象深刻的JavaScript动画效果网站
- 8个惊艳的HTML5和JavaScript特效
- 10个让人眼花缭乱的HTML5和JavaScript效果
- 8个惊艳的JavaScript WebGL应用实验
- 8个令人印象深刻的JavaScript效果的网站
- 回顾2011年将JavaScript推到极致的20个网站
四、Dart、CoffeeScript、TypeScript相关文章汇总
- Google新的Web编程语言Dart曝光
- [观点]众家评说谷歌新编程语言Dart
- Google新编程语言Dart可运行在Jvm上
- Dart之于JavaScript正如C#之于C++
- Google发布Dart Synonym程序 将JS转换为Dart
- Dart比JavaScript更酷的10个理由
- 谷歌推新浏览器 将支持Dart语言
- SDCC讲师专访:创新工场蔡学镛为何看好Dart
- Dart周年庆:Google放出稳定版SDK
- Dart里程碑2发布 大幅提升dart2js性能
- JavaScript代码生成器——CoffeeScript
- 图解C++、CoffeeScript、Ruby复杂度
- CoffeeScript和JavaScript里的异步:循环和回调
- CoffeeScript挤进GitHub热门编程语言前十
- JavaScript大师Nicholas C. Zakas谈TypeScript