[疑难] tango experimental/D2.0分支怎么了

lifc 2009-07-22
hqs7636 写道
tango 在 d2 分离runtime之前好像有一个版本,下一个可能得等到这次phobos变更完之后才会有了,

d2 的tango可能要依赖phobos吧

昨天下载druntime从phobos中分离前后的几个D2版本,但都不能成功编译目前的tango2分支,看来这个tango2不是亲生的孩子待遇始终差了些。相比之下等Walter稳定D2和Phobos、然后社区移植tango过去还是暂时DIY一下更现实。

连夜从tango里面偷了Selector、ThreadPool和HashMap等几个容器类自己改一下总算将就能用了,这几天看看能否把字符串格式化的几个类也给弄过来。
hqs7636 2009-07-22
phobos 能直接从svn单独编译吗
lifc 2009-07-22
hqs7636 写道
phobos 能直接从svn单独编译吗

如果要用phobos直接下载dmd 2.031就好,默认配置就是phobos,druntimehe和phobos2分出来(libdruntime.a、libphobos2.a)。至于从dsource.org/projects/phobos的svn下载phobos来自己重新编译倒是还没试过,最近一直在折腾svn的tango2,希望找到有方法和补丁可以用最近的dmd 2.0成功编译。
betty_betty2008 2009-07-22
lifc 写道
hqs7636 写道
phobos 能直接从svn单独编译吗

如果要用phobos直接下载dmd 2.031就好,默认配置就是phobos,druntimehe和phobos2分出来(libdruntime.a、libphobos2.a)。至于从dsource.org/projects/phobos的svn下载phobos来自己重新编译倒是还没试过,最近一直在折腾svn的tango2,希望找到有方法和补丁可以用最近的dmd 2.0成功编译。



有什么特别的原因/考量一定要用TANGO 而不用PHOBOS2?
lifc 2009-07-22
betty_betty2008 写道

有什么特别的原因/考量一定要用TANGO 而不用PHOBOS2?


主要是tango的模式比较接近java、.Net以及之前我们用过的Poco类库,大家比较容易上手。而且它提供的功能相对更完善,比如平台无关的Selector模型以及Fiber、ThreadPool、SSL,基本不需要自己写什么了。
开始遇到移植困难时也曾考虑过直接用phobos2,但是大家学了几天对range、traits这些普遍还没什么概念,问的最多的就是“容器类在哪里”,“这份代码是否不完整”之类的问题。更有人直接提出“dsource上面的开源项目逐渐转向tango了”,“phobos已经过时,目前没有什么新项目用它”,考虑到大家的技术背景和接受能力最后还是选择了tango。
hqs7636 2009-07-23
lifc 写道
hqs7636 写道
phobos 能直接从svn单独编译吗

最近一直在折腾svn的tango2,希望找到有方法和补丁可以用最近的dmd 2.0成功编译。


估计是不行了,刚看了一下,4452还没有包含druntime,也就是说只能从2.019及以前的版本试了
lifc 2009-07-23
hqs7636 写道

估计是不行了,刚看了一下,4452还没有包含druntime,也就是说只能从2.019及以前的版本试了

谢了!之前试过2.018,还是一堆的编译错误。去年用这个版本还可以成功编译的,看来要checkout一个比较旧的tango2分支试试了。
betty_betty2008 2009-07-23
lifc 写道
hqs7636 写道

估计是不行了,刚看了一下,4452还没有包含druntime,也就是说只能从2.019及以前的版本试了

谢了!之前试过2.018,还是一堆的编译错误。去年用这个版本还可以成功编译的,看来要checkout一个比较旧的tango2分支试试了。


还有一个问题,既然捣弄D2+TANGO那么麻烦,为什么不考虑其它语言,如C++?
lifc 2009-07-23
betty_betty2008 写道
还有一个问题,既然捣弄D2+TANGO那么麻烦,为什么不考虑其它语言,如C++?

这几年的项目用的最多的算是c++了,但团队里包括自己在内真能用的得心应手恰到好处(出神入化就更不敢想)的人却不多。新人进来都要在各种模式、框架、模板和STL、Boost、Poco这些东西上折腾1、2年才肯写出稍微像样的程序(这个阶段的同志不让他折腾都不干),等基本上手时要么项目结束,要么人往高处走了。只有写下的代码如日记般忠实的述说着每个人的成长历程,日后出了问题留下的人翻开它们时就只有抱怨“为什么受伤的总是我”的份了。

可维护性方面考虑外个人对c++的理解和把握程度也影响了语言的选择。九十年代初开始接触c++,断断续续边学边用走到现在,却越来越觉得对它力不从心。这几年用boost之后,每次写那些拖沓的范型代码或用到它复杂的lambda等“鸡肋”功能时除了赞叹作者的奇思妙想外最想做的就是把c++标准委员会的家伙们拖出来揍一顿。特别是当别人经历了漫长的编译,最终看到几百条恐怖错误请你去“排雷”时都恨不得自己拥有特异功能。

几年来之所以三心二意尝试了java、c#、d、erlang等种种,恐怕就是被c++给“逼上梁山”。就个人经历来说比较了解java(搞过虚拟机优化移植和硬件协处理器)却更欣赏c#。但这二位身形都相对庞大,有时并不适合实现比较底层的功能。d则同时拥有了java和c#的快捷以及c++的效率,初见时很容易让人爱不释手,但相处久了就发现这家伙脾气秉性难以捉摸,难免让人感叹“想说爱你不容易”(就是我现在的心境了)。
Colorful 2009-07-23
lifc 写道
betty_betty2008 写道

有什么特别的原因/考量一定要用TANGO 而不用PHOBOS2?


主要是tango的模式比较接近java、.Net以及之前我们用过的Poco类库,大家比较容易上手。而且它提供的功能相对更完善,比如平台无关的Selector模型以及Fiber、ThreadPool、SSL,基本不需要自己写什么了。
开始遇到移植困难时也曾考虑过直接用phobos2,但是大家学了几天对range、traits这些普遍还没什么概念,问的最多的就是“容器类在哪里”,“这份代码是否不完整”之类的问题。更有人直接提出“dsource上面的开源项目逐渐转向tango了”,“phobos已经过时,目前没有什么新项目用它”,考虑到大家的技术背景和接受能力最后还是选择了tango。



其实还是一个思维转换的问题。 range 归属于 C++0x Concept,traits 属于模板元编程,呵呵。

我自己用D2写了一套 .NET-like 的容器类和一些基础设施,但现在倾向于 range-based 的算法库和容器类。
Global site tag (gtag.js) - Google Analytics