zoukankan      html  css  js  c++  java
  • Google的飞镖有多犀利 试用Dart语言

    当今IT业界,三足鼎立。三巨头中,Google还如同赤壁后的刘备,正处于全面出击时期,生态系统还未成型。Apple有OC,Microsoft有.NET,Google只能用最普通的C++和JavaScript,还有个Java,整天被人讨着要专利费。这种借荆州的日子怎么能忍,Google先推出了Go语言,欲取代C++和Java;去年底又推出了Dart语言,目的想取代JavaScript,不仅是自己用,而且想彻底打破Web开发僵局。

    互联网时代开启以来,互联网这么多年来总体是以超高速发展。然而根据辩证法还是什么法则,事物发展往往是螺旋上升的。互联网这么多年来也经历了两次低潮,一次是2000年泡沫破裂,另一次就是现在这次,这一次不像2000年那么大起大落,却是Web高速发展多年后瓶颈矛盾的交织,加上金融危机后余波未散的影响,恐怕互联网未来数年内将处于一个整合期。如今各种势力明争暗斗,业界形势错综复杂,如雾里看花。

    Dart(飞镖)就是Google逐鹿互联网天下的利器。现在还处于待而未发的状态,至于会不像小李飞刀,例无虚发,我认为可以期待Go。

    期待的第一个理由是Google很重视Dart,虽然是半成品,至少不是像Go语言那样的试验品。Go语言,连个IDE也没有,官方网站简洁到土,土到掉渣,好像连CSS都没用似的,一看官网,学的欲望就下去了一大半。Dart的官网看上去就又简洁又详尽,从API到FAQ,该有的都有了。

    要体验Dart很简单,如果装了Java SDK,只要下载个集成环境(只有145M),解压缩,运行DartEditor即可。作为初代IDE,界面很不错了,我觉得相当于VS2003的程度吧,也支持调试。

    image

    第二个期待的理由是Dart的语言特性,官网上文章介绍说Java程序员可以一小时熟悉Dart语法,那C#程序员半小时就够了。看那句 list.sort((a, b) => a.compareTo(b)),是不是倍感亲切?当然Dart刚刚起步,语言特性没有C#那么丰富,比如没有特性、反射之类的支持,不过能看出其该有的总归会有的。

    第三个理由,Dart从一开始就是开源项目,我们都可以参与其中,如果有一个Dart也成为像C一样不朽的语言,我们还可以名留青史呢。

    第四个理由,是Google推广Dart的资本,不只是出钱出人,而是靠对互联网的话语权。Chrome浏览器份额稳步攀升(Chrome超越IE的意义),Dart 1.0正式发布后,Chrome就将支持。

    第五个理由,Google把Dart的定位摆得很正。Dart目标是取代JavaScript,而Google的目标却是让Web变得更好。虽然其他势力,如微软不出所料地不待见它(谷歌Dart语言遭微软泼冷水)。为推广Dart而排斥Javascript,那样的极端路线会碰得头破血流,Google决不会干。多一种选择有什么不好呢?正如FAQ回答的第二个问题,这门语言是Web开发需要解决的问题的方案吗 (Is the language really what needs to be fixed in web development?

    我翻译水平不高,回答大体意思是:

    我们想解决所有这些问题。于是有了Dart语言,又有了整个Dart项目。Dart项目押注在语言(JS)需要一些改变,但我们也想改进DOM和其他的库,并改进我们用的工具。

    与此同时,Google也对JavaScript能进化以适应需要下注,并作出贡献。Google想让Web开发更棒,如果JavaScript能够做到,我们也很高兴。

    Dart如果取代JS,也将是十分平稳流畅。Dart与JavaScript编译器密不可分,Dart测试环境Dartium(和Chrome差不多), 就是将Dart编译成JS执行。DartEditor中也可以直接把Dart代码编译成JS文件,即使现在就用来做Html5开发,效率也比写JS要高,相当于另一门haXe般的“上帝玩偶”。

    下面这个是我用Dart编写,用来演练Canvas画图。

    Show

    就我个人而言,还有更高的期待,希望有一种语言,能为Web开发和桌面开发带来统一的体验。Win8里有这种趋势,桌面应用也可以用Html5创建,可惜不是用C#,而还是不给力的JS。

    而Dart是往这个方向走的,不过还有很长很长的路要走。我做了个排序测试,目前速度仅达C#的十分之一。首先要实现Chrome上编译为bytecode,解决性能问题。然后就是漫长的推广了。Google最好能自己dog food,先把IDE用Dart实现吧,再让Gmail,Youtube这些把Dart用起来。随着Chrome使用广泛和越来越多人了解Dart的优势,没有理由不期待一下。

  • 相关阅读:
    jmeter(46) redis
    jmeter(45) tcp/ip协议
    Codeforces Round #538 (Div. 2)D(区间DP,思维)
    Codeforces Global Round 1D(DP,思维)
    Educational Codeforces Round 57D(DP,思维)
    UPC11073(DP,思维)
    Yahoo Progamming Contest 2019D(DP,思维)
    Atcoder Beginner Contest 118D(DP,完全背包,贪心)
    Xuzhou Winter Camp 1C(模拟)
    Educational Codeforces Round 57 (Rated for Div. 2)D(动态规划)
  • 原文地址:https://www.cnblogs.com/XmNotes/p/2523863.html
Copyright © 2011-2022 走看看