Dart使用(早年)

内容纲要

本文发布与2013年11月7日
本文与2021年12月23日整理


今日立冬,今年的立冬比往年显冷清。

Dart是Google正在开发中的一门语言,用于替代Javascript。相比javascript,它的语言基础更加牢靠,有利于创建更可靠的程序。鉴于现在web开发的情况为,后端有各种成熟的web框架,前端被风头正盛的各种js框架统治,所以Dart的目标只好定在“未来”,希望能在将来成为人们构建结构化web程序的首选语言。另外,Dart的作者是v8引擎的作者,仅这一点就能人以强大的信心。

我曾在很久以前简单了解了一下Dart,那个时候的它还太弱。这段时间看到Dart team正在开发一个叫web-ui的前端框架,与AngularJS相似,但有一些特性很吸引人,比如web components以及跟DOM的直接交互(AngularJS这点很弱)。我试用了一下,发现基本可用,而且生成的js文件也不大(如果你还记得这个故事)。所以又动了心,看看能不能用Dart做点什么可用的东西出来,同时实际体验一下Dart的开发。

Dart目前的问题:

  1. 没有可用的模板引擎,只能自己写
  2. 没有orm,也只能自己写
  3. 因为Dart更新很快,sqlite驱动经常不能用或报错
  4. Dart无法处理form上传文件,最后用html5的api,把文件变成base64格式上传
  5. 编辑器支持比较差,Idea在Dart上居然落后于官方的eclipse插件
  6. WebUI不支持SSR

现在还没有漂亮的web UI框架出现,很多代码仅仅是用来验证可行性的。虽然丑,Dart现在的确已经有能力实现一个简单的网站,具备最基本的可行性了。等Dart提供了必要的功能后,再重新使用也为时不晚,对于保守的开发者来说,先不急。

第一眼看起来,Dart的语法有点像Java/C#/JavaScript某些超集,据说是为了让人们容易上手。不过Dart有它自己的原则和特点,这导致它和其他语言在某些方面是有明显的不同,还是得花一些时间去习惯。

首先是语法上一些比较熟悉的特性:

  1. 语法整体看起来跟C很相似
  2. Dart中有class,但没有嵌套类
  3. 有properties,还可用get/set关键字定义getter/setter
  4. 有static method
  5. 有一等函数,可当作值传递
  6. 参数可声明为函数的形式
  7. 参数可声明为可选参数,和具名参数
  8. 使用大括号
  9. 每行以分号结尾
  10. 有library,用于分模块,跟AS差不多,跟TS里的module比较像。
  11. 可导入另一个library,可起别名,或只导入部分
  12. this指向当前类的实例
  13. 语句分为expr和statement,其中前者有返回值,后者无
  14. 有fei c
  15. 有型泛
  16. 据说有dynamic,类似AS的*或TS的any,可以直接var

写在最后——-

然而,杯具的是,正当我准备用Web UI的时候,听说它被废了。。。

感觉Dart也快完了。。。

code enjoy! 🐾🐾🐾🐾🐾🐾🐾🐾🐌🐝

作者:indeex

链接:https://indeex.club

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


发表评论

您的电子邮箱地址不会被公开。