这一个多月的业余时间都花在了Dart上。本想出点成果写个长篇,但最后因为种种原因,仅勉强以最低标准完成了最初的计划,看来只能写个短篇了。
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做一个简单的博客程序,然后把自己的博客都转过去。其特点是
像我们购买的普通PHP空间,一年大约要100元左右,而一个128M的国外vps,一年也差不多100,这样在花费上差不多;面向的用户群为程序员,功能简单实用,特别是markdown和贴图片的支持;不考虑扩展性,想定制请直接fork改代码。
在实际执行过程中,发现估计得有点乐观,因为Dart的第三方资源实在太少,并且Dart本身某些功能的缺失,导致某些功能几乎没法实现。期间多次想放弃,不过最终坚持下来了,遇到的困难有:
最后的成品在这里:
模板引擎中大量使用了这个库:https://github.com/renggli/PetitParserDart,期间得到了作者的大量帮助,在此对他表示十二分的谢意。
你可以看到这个博客非常的简单,且代码也很丑,主要原因是因为Dart的一些功能上的缺失(以后会慢慢说),导致现阶段还没法做出一个漂亮的web框架,所以这些代码仅仅用来验证可行性。不过虽然丑,Dart现在的确已经有能力实现一个简单的网站,具备最基本的可行性了。我打算等Dart提供了必要的功能后,再重新实现,希望能把我最喜欢 的Play Framework 1的思想移植到Dart上。
插个插曲:这次尝试Dart是被web-ui吸引过来的,杯具的是,正当我准备用它的时候,听说它被废了。。。
最后做个广告:对Dart感兴趣的同学,欢迎加入我的Dart热情交流群:322215472