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目前的问题:
- 没有可用的模板引擎,只能自己写
- 没有orm,也只能自己写
- 因为Dart更新很快,sqlite驱动经常不能用或报错
- Dart无法处理form上传文件,最后用html5的api,把文件变成base64格式上传
- 编辑器支持比较差,Idea在Dart上居然落后于官方的eclipse插件
- WebUI不支持SSR
现在还没有漂亮的web UI框架出现,很多代码仅仅是用来验证可行性的。虽然丑,Dart现在的确已经有能力实现一个简单的网站,具备最基本的可行性了。等Dart提供了必要的功能后,再重新使用也为时不晚,对于保守的开发者来说,先不急。
第一眼看起来,Dart的语法有点像Java/C#/JavaScript某些超集,据说是为了让人们容易上手。不过Dart有它自己的原则和特点,这导致它和其他语言在某些方面是有明显的不同,还是得花一些时间去习惯。
首先是语法上一些比较熟悉的特性:
- 语法整体看起来跟C很相似
- Dart中有class,但没有嵌套类
- 有properties,还可用get/set关键字定义getter/setter
- 有static method
- 有一等函数,可当作值传递
- 参数可声明为函数的形式
- 参数可声明为可选参数,和具名参数
- 使用大括号
- 每行以分号结尾
- 有library,用于分模块,跟AS差不多,跟TS里的module比较像。
- 可导入另一个library,可起别名,或只导入部分
- this指向当前类的实例
- 语句分为expr和statement,其中前者有返回值,后者无
- 有fei c
- 有型泛
- 据说有dynamic,类似AS的*或TS的any,可以直接var
写在最后——-
然而,杯具的是,正当我准备用Web UI的时候,听说它被废了。。。
感觉Dart也快完了。。。
code enjoy! 🐾🐾🐾🐾🐾🐾🐾🐾🐌🐝
作者:indeex
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。