从长远来看,我个人比较看好DWT.
从功能上来说,SWT及相关类库的功能非常强大,是其他GUI库根本不能相比的,而且SWT背后是强大的IBM在推,其前景不容怀疑。
从SWT到DWT,主要是把Java的一基本类做D语言的封装,这个封装稳定下来,DWT也就可以稳定下来。对于D语言比较熟悉的人来说,这个封装的难度不是太大,主要是个体力活。
现在的dwt2, 把swt的示例代码直接copy过来,几乎不用任何修改就能运行。
现在基于dwt2的程序,体积可能非常大。我经过多次的试验,发现这主要是D语言编译器DMD的bug. 在dmd 1.038及以后,有时会把没用到的import module 也编译进binary, 而swt, jface的模块数以千计,导致binary可能急剧增大。而dmd 1.037就好一些。我现在的做法是用dsss0.75编译整个dwt2库,这样binary的体积就比较正常了,原来10MB的程序,可以降到4MB, 如果用压缩程序压缩一下,也就1MB,这是可以接受的。用dsss编译比较正常,这可能是因为dsss 0.75的rebuild用的是比较早期版本的dmd的后端吧。
现在的d语言GUI库,大概都是one man project, 这也不只是dwt的问题。
现在的开发来说,居我所知,还是dwt的Frank比较活跃些,不是很复杂的问题,提交bug,一般很快能修复。再说dfl, tango 0.99.8已经发布近一个月了,dfl还没有同步更新。我已经尽量不去碰dfl了,谁也不知道这个项目什么时候会挂掉。而dwt, 如果Frank不感兴趣了,相信也会有人接上。
用dwt写小的程序问题不大,复杂的应用,dwt的转换还没有完成,有一些功能还不可用,还有一些bug.不知道GtkD现在的bug是不是更少。
关于GtkD, 也有人认为,使用过dwt后,不能接受其语法。