发信人: vimer (老来多忘事,惟不忘相思), 信区: Programming
标 题: [合集] D语言和Go语言有前途吗? (转载)
发信站: 水木社区 (Wed Dec 14 21:11:33 2011), 站内
☆─────────────────────────────────────☆
zhicxv99me (小气鬼) 于 (Sat Dec 3 22:34:49 2011) 提到:
【 以下文字转载自 ITExpress 讨论区 】
发信人: zhicxv99me (小气鬼), 信区: ITExpress
标 题: D语言和Go语言有前途吗?
发信站: 水木社区 (Sat Dec 3 22:16:16 2011), 站内
☆─────────────────────────────────────☆
lilnelse (不折腾) 于 (Sat Dec 3 22:44:59 2011) 提到:
keng
【 在 zhicxv99me (小气鬼) 的大作中提到: 】
: 【 以下文字转载自 ITExpress 讨论区 】
: 发信人: zhicxv99me (小气鬼), 信区: ITExpress
: 标 题: D语言和Go语言有前途吗?
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Sun Dec 4 21:46:45 2011) 提到:
都学过,个人还用D写过一个比较大的程序
个人对D的感觉:
1. 对C++做出了有益的改进,而且由于语法和C++非常像所以几乎没有学习成本
2. 缺乏足够的社区支持
3. 由于是个人做出来的语言,编译器的bug处理速度也不够快,很多问题提出到解决要
很久
4. 性能只能算是不错,但是自动gc导致效率明显低于C++的相同功能代码(dmd效率最低
,ldc和gdc感觉上差不多)
个人对Go的感觉:
1. 语法是一种专业向的语法,对新学编程者不太友好,学习成本高于D
2. 由于gapps的大力推广,目前社区还比较活跃,以后可能支持android将会更受瞩目
3. 性能比D略高,得益于强大的开发团队
4. 开发的思路比较清晰,多类型cpu支持从一开始就很认真,因此应用领域比较广泛
总结:两者都是试图创造一种具备现代语言特性同时又有较高运行效率的生成原生机器
代码的语言,以后的发展完全要看社区活跃程度,入门门槛高低,以及更多的功能支
持。
题外话:其实这两门语言都不是特别欣赏,新语言个人更看好google前阵子提出的dart
,虽然我是个js都不太懂的只写编译型语言的程序员……
【 在 zhicxv99me (小气鬼) 的大作中提到: 】
: 【 以下文字转载自 ITExpress 讨论区 】
: 发信人: zhicxv99me (小气鬼), 信区: ITExpress
: 标 题: D语言和Go语言有前途吗?
: ...................
☆─────────────────────────────────────☆
javaboy (喝了咖啡就话多-_-;) 于 (Sun Dec 4 22:16:50 2011) 提到:
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 都学过,个人还用D写过一个比较大的程序
: 个人对D的感觉:
: 1. 对C++做出了有益的改进,而且由于语法和C++非常像所以几乎没有学习成本
: 2. 缺乏足够的社区支持
DMD的社区比Go的社区好多了吧。
我在digitalmars新闻组的archive里找到过无数问题的解决办法...
: 3. 由于是个人做出来的语言,编译器的bug处理速度也不够快,很多问题提出到解决要
: 很久
: 4. 性能只能算是不错,但是自动gc导致效率明显低于C++的相同功能代码(dmd效率最低
: ,ldc和gdc感觉上差不多)
把gc和非gc比较是不公平的。
D可以和C++一样在栈上生成对象:
scope obj = new Object();
这样再用gdc和gcc比较就不可能有性能差异了!
: 个人对Go的感觉:
: 1. 语法是一种专业向的语法,对新学编程者不太友好,学习成本高于D
: 2. 由于gapps的大力推广,目前社区还比较活跃,以后可能支持android将会更受瞩目
: 3. 性能比D略高,得益于强大的开发团队
: 4. 开发的思路比较清晰,多类型cpu支持从一开始就很认真,因此应用领域比较广泛
: 总结:两者都是试图创造一种具备现代语言特性同时又有较高运行效率的生成原生机器
: 代码的语言,以后的发展完全要看社区活跃程度,入门门槛高低,以及更多的功能支
: 持。
: 题外话:其实这两门语言都不是特别欣赏,新语言个人更看好google前阵子提出的dart
: ,虽然我是个js都不太懂的只写编译型语言的程序员……
Google很多失败的产品了。
dart和go....俺觉得真没戏。
dart和gwt其实是一路的。
gwt这么多年了都一点没撼动javascript,
dart也就稍微进步一点儿,能有多大作为呢。。。
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Mon Dec 5 00:13:25 2011) 提到:
我个人也更加不欣赏Go,一个原因是不喜欢它的语法,而且我讨厌gapps这种强行推销一
个语言的做法。当然这些关乎感情不关乎技术,我不会因为个人感情而认定Go就不行了
,还是要客观分析现在的情况:
社区和邮件组并不是等价的,它在广义上包含了开发者建立的网站,文档,邮件组,以
及第三方网站,第三方开发库的支持等等,前面的不说,第三方支持方面D其实已经落后
Go很多,我看到的大多数工具的开发库Bindings,一般都是Go的版本比较成熟,甚至于
一大半都不支持D的Binding (很奇特地,SFML却早早支持了D)。
此外D的社区里有虽然一堆牛人撑着,但是普通开发者群的活跃程度严重不足,以gdc的
换人开发,ldc的做做停停来看,开发者的活跃度不够是显而易见的。而Go的活跃度至少
保持在水准以上,虽然都是一些盲目追随Google的人。
效率方面的话,个人因为习惯,以及工作(游戏服务器)的原因,对性能非常的抠,经常
为了一点点的性能改进而改动代码,所以GC的性能损失对我来说几乎是不可接受的。用
栈来处理对象只能处理一部分问题,不可能在一个大项目里完全解决一些内存分配的需
求。
关于dart: 我只是欣赏dart的语法和一些功能而已,几乎把所有javascript里比较麻烦
或者很难做的东西都搞定了,借助Chrome的市场占有率强推的话,未必没有前途。gwt的
问题还是因为门槛太高了,你要用java环境来使用,ant来deploy,而dart/js这种直接
任何编辑器打开就能写,写完就能跑的,显然更容易普及。
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: DMD的社区比Go的社区好多了吧。
: 我在digitalmars新闻组的archive里找到过无数问题的解决办法...
: 把gc和非gc比较是不公平的。
: ...................
☆─────────────────────────────────────☆
oldwatch (一条叫java的鱼◎希望在空中飘) 于 (Mon Dec 5 08:46:01 2011) 提到:
呃
gwt和javascript难道是“撼动”和“被撼动”的关系?
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: DMD的社区比Go的社区好多了吧。
: 我在digitalmars新闻组的archive里找到过无数问题的解决办法...
: 把gc和非gc比较是不公平的。
: ...................
☆─────────────────────────────────────☆
javaboy (喝了咖啡就话多-_-;) 于 (Mon Dec 5 09:45:07 2011) 提到:
您想表达啥nie?
【 在 oldwatch (一条叫java的鱼◎希望在空中飘) 的大作中提到: 】
: 呃
: gwt和javascript难道是“撼动”和“被撼动”的关系?
☆─────────────────────────────────────☆
oldwatch (一条叫java的鱼◎希望在空中飘) 于 (Mon Dec 5 10:18:19 2011) 提到:
因为我实在想象不出gwt怎么去”撼动“它自己依赖的javascript
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: 您想表达啥nie?
☆─────────────────────────────────────☆
javaboy (喝了咖啡就话多-_-;) 于 (Mon Dec 5 10:34:15 2011) 提到:
c语言不也依赖汇编语言么。想象一下?
【 在 oldwatch (一条叫java的鱼◎希望在空中飘) 的大作中提到: 】
: 因为我实在想象不出gwt怎么去”撼动“它自己依赖的javascript
☆─────────────────────────────────────☆
JunWi (Hey, genius!) 于 (Mon Dec 5 10:44:22 2011) 提到:
只要大家都写gwt而不裸写javascript就算撼动了吧
【 在 oldwatch (一条叫java的鱼◎希望在空中飘) 的大作中提到: 】
: 因为我实在想象不出gwt怎么去”撼动“它自己依赖的javascript
☆─────────────────────────────────────☆
oldwatch (一条叫java的鱼◎希望在空中飘) 于 (Mon Dec 5 11:00:33 2011) 提到:
不过,话说,现在富js应用,基本没有直接裸写javascript了吧
gwt,zk,ext,dojo之类的框架,一般来说终归是要的
【 在 JunWi (Hey, genius!) 的大作中提到: 】
: 只要大家都写gwt而不裸写javascript就算撼动了吧
☆─────────────────────────────────────☆
Tux (蓝色幽灵) 于 (Mon Dec 5 11:06:54 2011) 提到:
但是ext,dojo之类的和gwt还是很不一样的吧
【 在 oldwatch (一条叫java的鱼◎希望在空中飘) 的大作中提到: 】
: 不过,话说,现在富js应用,基本没有直接裸写javascript了吧
: gwt,zk,ext,dojo之类的框架,一般来说终归是要的
☆─────────────────────────────────────☆
javaboy (喝了咖啡就话多-_-;) 于 (Mon Dec 5 11:08:50 2011) 提到:
俺觉得趋势还是html+jquery+less吧。。。
rich ui 带来的问题比好处多。。。
【 在 oldwatch (一条叫java的鱼◎希望在空中飘) 的大作中提到: 】
: 不过,话说,现在富js应用,基本没有直接裸写javascript了吧
: gwt,zk,ext,dojo之类的框架,一般来说终归是要的
☆─────────────────────────────────────☆
JunWi (Hey, genius!) 于 (Mon Dec 5 11:14:38 2011) 提到:
ext dojo之类的写的还是javascript,gwt写的是java
【 在 oldwatch (一条叫java的鱼◎希望在空中飘) 的大作中提到: 】
: 不过,话说,现在富js应用,基本没有直接裸写javascript了吧
: gwt,zk,ext,dojo之类的框架,一般来说终归是要的
☆─────────────────────────────────────☆
oldwatch (一条叫java的鱼◎希望在空中飘) 于 (Mon Dec 5 11:17:17 2011) 提到:
我也觉得这个路数有点走火入魔,不过UI效果确实挺赞的……
希望html5来拯救苍生吧
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: 俺觉得趋势还是html+jquery+less吧。。。
: rich ui 带来的问题比好处多。。。
☆─────────────────────────────────────☆
oldwatch (一条叫java的鱼◎希望在空中飘) 于 (Mon Dec 5 11:20:12 2011) 提到:
google大概手底下编译大牛把持了话语权
总喜欢用一套完备语 言来解决问题
【 在 JunWi (Hey, genius!) 的大作中提到: 】
: ext dojo之类的写的还是javascript,gwt写的是java
☆─────────────────────────────────────☆
bitkevin (kevin) 于 (Mon Dec 5 11:34:04 2011) 提到:
GO的作者们很牛逼,C/Unix的气质
【 在 zhicxv99me (小气鬼) 的大作中提到: 】
: 【 以下文字转载自 ITExpress 讨论区 】
: 发信人: zhicxv99me (小气鬼), 信区: ITExpress
: 标 题: D语言和Go语言有前途吗?
: ...................
☆─────────────────────────────────────☆
itgirl (程序媛) 于 (Mon Dec 5 12:11:55 2011) 提到:
看好R
【 在 zhicxv99me (小气鬼) 的大作中提到: 】
: 【 以下文字转载自 ITExpress 讨论区 】
: 发信人: zhicxv99me (小气鬼), 信区: ITExpress
: 标 题: D语言和Go语言有前途吗?
: ...................
☆─────────────────────────────────────☆
Philistine (包子) 于 (Mon Dec 5 12:13:36 2011) 提到:
这是通用编程语言吗?
【 在 itgirl (程序媛) 的大作中提到: 】
: 看好R
☆─────────────────────────────────────☆
NIGHTFIRE (昵称不告诉你们) 于 (Mon Dec 5 12:25:18 2011) 提到:
就凭那几乎可称为反人类的自动向量长度补全?
【 在 itgirl (程序媛) 的大作中提到: 】
: 看好R
☆─────────────────────────────────────☆
javaboy (喝了咖啡就话多-_-;) 于 (Mon Dec 5 15:31:04 2011) 提到:
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 我个人也更加不欣赏Go,一个原因是不喜欢它的语法,而且我讨厌gapps这种强行推销一
: 个语言的做法。当然这些关乎感情不关乎技术,我不会因为个人感情而认定Go就不行了
: ,还是要客观分析现在的情况:
: 社区和邮件组并不是等价的,它在广义上包含了开发者建立的网站,文档,邮件组,以
: 及第三方网站,第三方开发库的支持等等,前面的不说,第三方支持方面D其实已经落后
: Go很多,我看到的大多数工具的开发库Bindings,一般都是Go的版本比较成熟,甚至于
: 一大半都不支持D的Binding (很奇特地,SFML却早早支持了D)。
D一个很牛的地方就是随便用c的库。
虽然需要自己声明一下,不能直接导入.h文件,但是这个只是时间问题。
等到实现的时候就有无数的成熟c库可以给d任意取用了。
: 此外D的社区里有虽然一堆牛人撑着,但是普通开发者群的活跃程度严重不足,以gdc的
: 换人开发,ldc的做做停停来看,开发者的活跃度不够是显而易见的。而Go的活跃度至少
: 保持在水准以上,虽然都是一些盲目追随Google的人。
: 效率方面的话,个人因为习惯,以及工作(游戏服务器)的原因,对性能非常的抠,经常
: 为了一点点的性能改进而改动代码,所以GC的性能损失对我来说几乎是不可接受的。用
: 栈来处理对象只能处理一部分问题,不可能在一个大项目里完全解决一些内存分配的需
: 求。
D里面也可以malloc/free手动管理的。
C++可以的它都可以。
对性能要求高等话可以等等gcc4.7的gdc,
这个和g++用一样的后端,性能应该没有区别的。
: 关于dart: 我只是欣赏dart的语法和一些功能而已,几乎把所有javascript里比较麻烦
: 或者很难做的东西都搞定了,借助Chrome的市场占有率强推的话,未必没有前途。gwt的
: 问题还是因为门槛太高了,你要用java环境来使用,ant来deploy,而dart/js这种直接
: 任何编辑器打开就能写,写完就能跑的,显然更容易普及。
你说的这个也是有可能。呵呵。再观望观望咯。。
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Mon Dec 5 15:47:03 2011) 提到:
D导入C的库的时候是可以直接的,但是C++等其他面向对象语言的声明还是要bind一下的
,我这里特指各种C++/Java等的开发库。
此外,在D里面完全用手动内存控制分配和释放,那我觉得宁可还是回去用C++算了,道
理很简单,既然是为了D的特性来的,结果反而放弃了这些特性当C++写,那我何必用D呢
,C++11的功能和D可以说是各有千秋,除了内存控制上D要很明显的方便一些。
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: D一个很牛的地方就是随便用c的库。
: 虽然需要自己声明一下,不能直接导入.h文件,但是这个只是时间问题。
: 等到实现的时候就有无数的成熟c库可以给d任意取用了。
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Mon Dec 5 18:29:50 2011) 提到:
忘了说,gcc 4.7的功能已经freeze了,gdc应该在4.8才会进入gcc
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: D一个很牛的地方就是随便用c的库。
: 虽然需要自己声明一下,不能直接导入.h文件,但是这个只是时间问题。
: 等到实现的时候就有无数的成熟c库可以给d任意取用了。
: ...................
☆─────────────────────────────────────☆
BigCarrot (大萝卜1号) 于 (Mon Dec 5 19:46:17 2011) 提到:
嗯,go已经先走一步了
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 忘了说,gcc 4.7的功能已经freeze了,gdc应该在4.8才会进入gcc
☆─────────────────────────────────────☆
Dooming (Temp) 于 (Mon Dec 5 20:41:51 2011) 提到:
这是统计/科学计算语言啊。。。
【 在 itgirl (程序媛) 的大作中提到: 】
: 看好R
☆─────────────────────────────────────☆
azulla (azulla) 于 (Mon Dec 5 20:45:55 2011) 提到:
上个月看到某篇文章说,gdc代码要打补丁,很可能赶不上gcc 4.7,看来最终还是没赶上。
D不进gcc的话,受的关注实在太少了。
上个月tiobe跌到39,这个月的也出来了,是38,哎
☆─────────────────────────────────────☆
RoachCock (拜康神教教主) 于 (Mon Dec 5 23:31:59 2011) 提到:
C++ 缺少 module 机制,不适合开发大型项目。
【 在 soarqin (Soar Qin) 的大作中提到: 】
: D导入C的库的时候是可以直接的,但是C++等其他面向对象语言的声明还是要bind一下的
: ,我这里特指各种C++/Java等的开发库。
: 此外,在D里面完全用手动内存控制分配和释放,那我觉得宁可还是回去用C++算了,道
: ...................
☆─────────────────────────────────────☆
hgoldfish (老鱼) 于 (Mon Dec 5 23:41:41 2011) 提到:
话是这么说,可是现在有很多大型项目都是用C++开发的。
C++的lib有点类似于其它语言的模块。
【 在 RoachCock (拜康神教教主) 的大作中提到: 】
: C++ 缺少 module 机制,不适合开发大型项目。
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Mon Dec 5 23:43:34 2011) 提到:
个人完全不赞成这种观点,C++可能开发大型项目是容易出问题,但是这还是架构问题,
只要好好架构绝对是适合大型项目的。
我坚决否定把语言差异看成影响生产能力的原因。
我个人的观点就是,语言的不同,只能决定特定项目环境下不同的的学习成本和后期维
护成本(在满足成熟开发条件时,功能开发周期差异并不大),而不能决定是否适合开发
。
【 在 RoachCock (拜康神教教主) 的大作中提到: 】
: C++ 缺少 module 机制,不适合开发大型项目。
☆─────────────────────────────────────☆
RoachCock (拜康神教教主) 于 (Mon Dec 5 23:46:45 2011) 提到:
用 python 写一小时的,用 C++ 得写半天,用 C 的两天,怎么会不影响生产能力呢。
要不汇编能搞到效率最高,大家都用汇编好了。
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 个人完全不赞成这种观点,C++可能开发大型项目是容易出问题,但是这还是架构问题,
: 只要好好架构绝对是适合大型项目的。
: 我坚决否定把语言差异看成影响生产能力的原因。
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Mon Dec 5 23:54:46 2011) 提到:
架构是关键,python内置了C++那些第三方库才能实现的东西,然后去和人家C++裸奔写
,毫无公平性可言,真正做项目的时候,大量使用现成库是必须的,我说的足够成熟的
环境,就是说这些都准备好了。
即使是汇编,如果有足够的写好的功能库,开发周期比高级语言并不会多很多。
再次强调,架构是关键,要不现在架构师都能拿着天价工资整天发呆呢,能把架构想清
楚,想明白,设计出适合项目的开发模式才是一个大型项目成功的关键。
最后,可以找一下模块化语言Objective C和Mercury到底有多少人在用来开发大型项目
,实在是太少了。
【 在 RoachCock (拜康神教教主) 的大作中提到: 】
: 用 python 写一小时的,用 C++ 得写半天,用 C 的两天,怎么会不影响生产能力呢。
: 要不汇编能搞到效率最高,大家都用汇编好了。
☆─────────────────────────────────────☆
lvsoft (Lv(The Last Guardian)) 于 (Tue Dec 6 00:03:51 2011) 提到:
对于建筑而言,架构是关键,底层其实只要不要烂的没边,没啥大问题。
对于软件工程而言,架构和底层实现都是关键。
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 架构是关键,python内置了C++那些第三方库才能实现的东西,然后去和人家C++裸奔写
: ,毫无公平性可言,真正做项目的时候,大量使用现成库是必须的,我说的足够成熟的
: 环境,就是说这些都准备好了。
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Tue Dec 6 00:05:31 2011) 提到:
好吧,如果底层实现非要从架构中剥离,那确实很重要。
个人只是觉得底层实现就是架构最后要做的一部分而已。
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 对于建筑而言,架构是关键,底层其实只要不要烂的没边,没啥大问题。
: 对于软件工程而言,架构和底层实现都是关键。
☆─────────────────────────────────────☆
blowg (吹哥) 于 (Tue Dec 6 00:06:01 2011) 提到:
他做游戏, 底层都是现成的...
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 对于建筑而言,架构是关键,底层其实只要不要烂的没边,没啥大问题。
: 对于软件工程而言,架构和底层实现都是关键。
☆─────────────────────────────────────☆
lvsoft (Lv(The Last Guardian)) 于 (Tue Dec 6 00:07:55 2011) 提到:
偶的意思是,软件具有混沌属性。
也就是一个局部的不起眼的小问题可以导致整个项目的崩溃。
所以光强调架构是没用的。
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 好吧,如果底层实现非要从架构中剥离,那确实很重要。
: 个人只是觉得底层实现就是架构最后要做的一部分而已。
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Tue Dec 6 00:11:37 2011) 提到:
嗯,说的没错。
这也是现代语言的优势,在错误处理和问题预防等方面做出了很多有益的改进,C++的优
势仅仅是性能而已。
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 偶的意思是,软件具有混沌属性。
: 也就是一个局部的小问题可以导致整个项目的崩溃。
: 所以光强调架构是没用的。
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Tue Dec 6 00:14:13 2011) 提到:
老实说,作为一个服务器开发者来说,除了通用的几个网络层库就没有现成的底层可用
了,除非能信任那些号称被偷出来的不知道有没有做过充分测试的所谓商业代码。个人
还是相信自己写的东西,至少出了问题自己熟悉的代码还是比较容易排查。
此外我们做的也不能说得上是大项目,所以我绝对不是用自己的项目来考量的。
我是参考了世界上大多数的大型项目,包括商业的,开源的。
【 在 blowg (吹哥) 的大作中提到: 】
: 他做游戏, 底层都是现成的...
标 题: [合集] D语言和Go语言有前途吗? (转载)
发信站: 水木社区 (Wed Dec 14 21:11:33 2011), 站内
☆─────────────────────────────────────☆
zhicxv99me (小气鬼) 于 (Sat Dec 3 22:34:49 2011) 提到:
【 以下文字转载自 ITExpress 讨论区 】
发信人: zhicxv99me (小气鬼), 信区: ITExpress
标 题: D语言和Go语言有前途吗?
发信站: 水木社区 (Sat Dec 3 22:16:16 2011), 站内
☆─────────────────────────────────────☆
lilnelse (不折腾) 于 (Sat Dec 3 22:44:59 2011) 提到:
keng
【 在 zhicxv99me (小气鬼) 的大作中提到: 】
: 【 以下文字转载自 ITExpress 讨论区 】
: 发信人: zhicxv99me (小气鬼), 信区: ITExpress
: 标 题: D语言和Go语言有前途吗?
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Sun Dec 4 21:46:45 2011) 提到:
都学过,个人还用D写过一个比较大的程序
个人对D的感觉:
1. 对C++做出了有益的改进,而且由于语法和C++非常像所以几乎没有学习成本
2. 缺乏足够的社区支持
3. 由于是个人做出来的语言,编译器的bug处理速度也不够快,很多问题提出到解决要
很久
4. 性能只能算是不错,但是自动gc导致效率明显低于C++的相同功能代码(dmd效率最低
,ldc和gdc感觉上差不多)
个人对Go的感觉:
1. 语法是一种专业向的语法,对新学编程者不太友好,学习成本高于D
2. 由于gapps的大力推广,目前社区还比较活跃,以后可能支持android将会更受瞩目
3. 性能比D略高,得益于强大的开发团队
4. 开发的思路比较清晰,多类型cpu支持从一开始就很认真,因此应用领域比较广泛
总结:两者都是试图创造一种具备现代语言特性同时又有较高运行效率的生成原生机器
代码的语言,以后的发展完全要看社区活跃程度,入门门槛高低,以及更多的功能支
持。
题外话:其实这两门语言都不是特别欣赏,新语言个人更看好google前阵子提出的dart
,虽然我是个js都不太懂的只写编译型语言的程序员……
【 在 zhicxv99me (小气鬼) 的大作中提到: 】
: 【 以下文字转载自 ITExpress 讨论区 】
: 发信人: zhicxv99me (小气鬼), 信区: ITExpress
: 标 题: D语言和Go语言有前途吗?
: ...................
☆─────────────────────────────────────☆
javaboy (喝了咖啡就话多-_-;) 于 (Sun Dec 4 22:16:50 2011) 提到:
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 都学过,个人还用D写过一个比较大的程序
: 个人对D的感觉:
: 1. 对C++做出了有益的改进,而且由于语法和C++非常像所以几乎没有学习成本
: 2. 缺乏足够的社区支持
DMD的社区比Go的社区好多了吧。
我在digitalmars新闻组的archive里找到过无数问题的解决办法...
: 3. 由于是个人做出来的语言,编译器的bug处理速度也不够快,很多问题提出到解决要
: 很久
: 4. 性能只能算是不错,但是自动gc导致效率明显低于C++的相同功能代码(dmd效率最低
: ,ldc和gdc感觉上差不多)
把gc和非gc比较是不公平的。
D可以和C++一样在栈上生成对象:
scope obj = new Object();
这样再用gdc和gcc比较就不可能有性能差异了!
: 个人对Go的感觉:
: 1. 语法是一种专业向的语法,对新学编程者不太友好,学习成本高于D
: 2. 由于gapps的大力推广,目前社区还比较活跃,以后可能支持android将会更受瞩目
: 3. 性能比D略高,得益于强大的开发团队
: 4. 开发的思路比较清晰,多类型cpu支持从一开始就很认真,因此应用领域比较广泛
: 总结:两者都是试图创造一种具备现代语言特性同时又有较高运行效率的生成原生机器
: 代码的语言,以后的发展完全要看社区活跃程度,入门门槛高低,以及更多的功能支
: 持。
: 题外话:其实这两门语言都不是特别欣赏,新语言个人更看好google前阵子提出的dart
: ,虽然我是个js都不太懂的只写编译型语言的程序员……
Google很多失败的产品了。
dart和go....俺觉得真没戏。
dart和gwt其实是一路的。
gwt这么多年了都一点没撼动javascript,
dart也就稍微进步一点儿,能有多大作为呢。。。
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Mon Dec 5 00:13:25 2011) 提到:
我个人也更加不欣赏Go,一个原因是不喜欢它的语法,而且我讨厌gapps这种强行推销一
个语言的做法。当然这些关乎感情不关乎技术,我不会因为个人感情而认定Go就不行了
,还是要客观分析现在的情况:
社区和邮件组并不是等价的,它在广义上包含了开发者建立的网站,文档,邮件组,以
及第三方网站,第三方开发库的支持等等,前面的不说,第三方支持方面D其实已经落后
Go很多,我看到的大多数工具的开发库Bindings,一般都是Go的版本比较成熟,甚至于
一大半都不支持D的Binding (很奇特地,SFML却早早支持了D)。
此外D的社区里有虽然一堆牛人撑着,但是普通开发者群的活跃程度严重不足,以gdc的
换人开发,ldc的做做停停来看,开发者的活跃度不够是显而易见的。而Go的活跃度至少
保持在水准以上,虽然都是一些盲目追随Google的人。
效率方面的话,个人因为习惯,以及工作(游戏服务器)的原因,对性能非常的抠,经常
为了一点点的性能改进而改动代码,所以GC的性能损失对我来说几乎是不可接受的。用
栈来处理对象只能处理一部分问题,不可能在一个大项目里完全解决一些内存分配的需
求。
关于dart: 我只是欣赏dart的语法和一些功能而已,几乎把所有javascript里比较麻烦
或者很难做的东西都搞定了,借助Chrome的市场占有率强推的话,未必没有前途。gwt的
问题还是因为门槛太高了,你要用java环境来使用,ant来deploy,而dart/js这种直接
任何编辑器打开就能写,写完就能跑的,显然更容易普及。
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: DMD的社区比Go的社区好多了吧。
: 我在digitalmars新闻组的archive里找到过无数问题的解决办法...
: 把gc和非gc比较是不公平的。
: ...................
☆─────────────────────────────────────☆
oldwatch (一条叫java的鱼◎希望在空中飘) 于 (Mon Dec 5 08:46:01 2011) 提到:
呃
gwt和javascript难道是“撼动”和“被撼动”的关系?
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: DMD的社区比Go的社区好多了吧。
: 我在digitalmars新闻组的archive里找到过无数问题的解决办法...
: 把gc和非gc比较是不公平的。
: ...................
☆─────────────────────────────────────☆
javaboy (喝了咖啡就话多-_-;) 于 (Mon Dec 5 09:45:07 2011) 提到:
您想表达啥nie?
【 在 oldwatch (一条叫java的鱼◎希望在空中飘) 的大作中提到: 】
: 呃
: gwt和javascript难道是“撼动”和“被撼动”的关系?
☆─────────────────────────────────────☆
oldwatch (一条叫java的鱼◎希望在空中飘) 于 (Mon Dec 5 10:18:19 2011) 提到:
因为我实在想象不出gwt怎么去”撼动“它自己依赖的javascript
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: 您想表达啥nie?
☆─────────────────────────────────────☆
javaboy (喝了咖啡就话多-_-;) 于 (Mon Dec 5 10:34:15 2011) 提到:
c语言不也依赖汇编语言么。想象一下?
【 在 oldwatch (一条叫java的鱼◎希望在空中飘) 的大作中提到: 】
: 因为我实在想象不出gwt怎么去”撼动“它自己依赖的javascript
☆─────────────────────────────────────☆
JunWi (Hey, genius!) 于 (Mon Dec 5 10:44:22 2011) 提到:
只要大家都写gwt而不裸写javascript就算撼动了吧
【 在 oldwatch (一条叫java的鱼◎希望在空中飘) 的大作中提到: 】
: 因为我实在想象不出gwt怎么去”撼动“它自己依赖的javascript
☆─────────────────────────────────────☆
oldwatch (一条叫java的鱼◎希望在空中飘) 于 (Mon Dec 5 11:00:33 2011) 提到:
不过,话说,现在富js应用,基本没有直接裸写javascript了吧
gwt,zk,ext,dojo之类的框架,一般来说终归是要的
【 在 JunWi (Hey, genius!) 的大作中提到: 】
: 只要大家都写gwt而不裸写javascript就算撼动了吧
☆─────────────────────────────────────☆
Tux (蓝色幽灵) 于 (Mon Dec 5 11:06:54 2011) 提到:
但是ext,dojo之类的和gwt还是很不一样的吧
【 在 oldwatch (一条叫java的鱼◎希望在空中飘) 的大作中提到: 】
: 不过,话说,现在富js应用,基本没有直接裸写javascript了吧
: gwt,zk,ext,dojo之类的框架,一般来说终归是要的
☆─────────────────────────────────────☆
javaboy (喝了咖啡就话多-_-;) 于 (Mon Dec 5 11:08:50 2011) 提到:
俺觉得趋势还是html+jquery+less吧。。。
rich ui 带来的问题比好处多。。。
【 在 oldwatch (一条叫java的鱼◎希望在空中飘) 的大作中提到: 】
: 不过,话说,现在富js应用,基本没有直接裸写javascript了吧
: gwt,zk,ext,dojo之类的框架,一般来说终归是要的
☆─────────────────────────────────────☆
JunWi (Hey, genius!) 于 (Mon Dec 5 11:14:38 2011) 提到:
ext dojo之类的写的还是javascript,gwt写的是java
【 在 oldwatch (一条叫java的鱼◎希望在空中飘) 的大作中提到: 】
: 不过,话说,现在富js应用,基本没有直接裸写javascript了吧
: gwt,zk,ext,dojo之类的框架,一般来说终归是要的
☆─────────────────────────────────────☆
oldwatch (一条叫java的鱼◎希望在空中飘) 于 (Mon Dec 5 11:17:17 2011) 提到:
我也觉得这个路数有点走火入魔,不过UI效果确实挺赞的……
希望html5来拯救苍生吧
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: 俺觉得趋势还是html+jquery+less吧。。。
: rich ui 带来的问题比好处多。。。
☆─────────────────────────────────────☆
oldwatch (一条叫java的鱼◎希望在空中飘) 于 (Mon Dec 5 11:20:12 2011) 提到:
google大概手底下编译大牛把持了话语权
总喜欢用一套完备语 言来解决问题
【 在 JunWi (Hey, genius!) 的大作中提到: 】
: ext dojo之类的写的还是javascript,gwt写的是java
☆─────────────────────────────────────☆
bitkevin (kevin) 于 (Mon Dec 5 11:34:04 2011) 提到:
GO的作者们很牛逼,C/Unix的气质
【 在 zhicxv99me (小气鬼) 的大作中提到: 】
: 【 以下文字转载自 ITExpress 讨论区 】
: 发信人: zhicxv99me (小气鬼), 信区: ITExpress
: 标 题: D语言和Go语言有前途吗?
: ...................
☆─────────────────────────────────────☆
itgirl (程序媛) 于 (Mon Dec 5 12:11:55 2011) 提到:
看好R
【 在 zhicxv99me (小气鬼) 的大作中提到: 】
: 【 以下文字转载自 ITExpress 讨论区 】
: 发信人: zhicxv99me (小气鬼), 信区: ITExpress
: 标 题: D语言和Go语言有前途吗?
: ...................
☆─────────────────────────────────────☆
Philistine (包子) 于 (Mon Dec 5 12:13:36 2011) 提到:
这是通用编程语言吗?
【 在 itgirl (程序媛) 的大作中提到: 】
: 看好R
☆─────────────────────────────────────☆
NIGHTFIRE (昵称不告诉你们) 于 (Mon Dec 5 12:25:18 2011) 提到:
就凭那几乎可称为反人类的自动向量长度补全?
【 在 itgirl (程序媛) 的大作中提到: 】
: 看好R
☆─────────────────────────────────────☆
javaboy (喝了咖啡就话多-_-;) 于 (Mon Dec 5 15:31:04 2011) 提到:
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 我个人也更加不欣赏Go,一个原因是不喜欢它的语法,而且我讨厌gapps这种强行推销一
: 个语言的做法。当然这些关乎感情不关乎技术,我不会因为个人感情而认定Go就不行了
: ,还是要客观分析现在的情况:
: 社区和邮件组并不是等价的,它在广义上包含了开发者建立的网站,文档,邮件组,以
: 及第三方网站,第三方开发库的支持等等,前面的不说,第三方支持方面D其实已经落后
: Go很多,我看到的大多数工具的开发库Bindings,一般都是Go的版本比较成熟,甚至于
: 一大半都不支持D的Binding (很奇特地,SFML却早早支持了D)。
D一个很牛的地方就是随便用c的库。
虽然需要自己声明一下,不能直接导入.h文件,但是这个只是时间问题。
等到实现的时候就有无数的成熟c库可以给d任意取用了。
: 此外D的社区里有虽然一堆牛人撑着,但是普通开发者群的活跃程度严重不足,以gdc的
: 换人开发,ldc的做做停停来看,开发者的活跃度不够是显而易见的。而Go的活跃度至少
: 保持在水准以上,虽然都是一些盲目追随Google的人。
: 效率方面的话,个人因为习惯,以及工作(游戏服务器)的原因,对性能非常的抠,经常
: 为了一点点的性能改进而改动代码,所以GC的性能损失对我来说几乎是不可接受的。用
: 栈来处理对象只能处理一部分问题,不可能在一个大项目里完全解决一些内存分配的需
: 求。
D里面也可以malloc/free手动管理的。
C++可以的它都可以。
对性能要求高等话可以等等gcc4.7的gdc,
这个和g++用一样的后端,性能应该没有区别的。
: 关于dart: 我只是欣赏dart的语法和一些功能而已,几乎把所有javascript里比较麻烦
: 或者很难做的东西都搞定了,借助Chrome的市场占有率强推的话,未必没有前途。gwt的
: 问题还是因为门槛太高了,你要用java环境来使用,ant来deploy,而dart/js这种直接
: 任何编辑器打开就能写,写完就能跑的,显然更容易普及。
你说的这个也是有可能。呵呵。再观望观望咯。。
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Mon Dec 5 15:47:03 2011) 提到:
D导入C的库的时候是可以直接的,但是C++等其他面向对象语言的声明还是要bind一下的
,我这里特指各种C++/Java等的开发库。
此外,在D里面完全用手动内存控制分配和释放,那我觉得宁可还是回去用C++算了,道
理很简单,既然是为了D的特性来的,结果反而放弃了这些特性当C++写,那我何必用D呢
,C++11的功能和D可以说是各有千秋,除了内存控制上D要很明显的方便一些。
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: D一个很牛的地方就是随便用c的库。
: 虽然需要自己声明一下,不能直接导入.h文件,但是这个只是时间问题。
: 等到实现的时候就有无数的成熟c库可以给d任意取用了。
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Mon Dec 5 18:29:50 2011) 提到:
忘了说,gcc 4.7的功能已经freeze了,gdc应该在4.8才会进入gcc
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: D一个很牛的地方就是随便用c的库。
: 虽然需要自己声明一下,不能直接导入.h文件,但是这个只是时间问题。
: 等到实现的时候就有无数的成熟c库可以给d任意取用了。
: ...................
☆─────────────────────────────────────☆
BigCarrot (大萝卜1号) 于 (Mon Dec 5 19:46:17 2011) 提到:
嗯,go已经先走一步了
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 忘了说,gcc 4.7的功能已经freeze了,gdc应该在4.8才会进入gcc
☆─────────────────────────────────────☆
Dooming (Temp) 于 (Mon Dec 5 20:41:51 2011) 提到:
这是统计/科学计算语言啊。。。
【 在 itgirl (程序媛) 的大作中提到: 】
: 看好R
☆─────────────────────────────────────☆
azulla (azulla) 于 (Mon Dec 5 20:45:55 2011) 提到:
上个月看到某篇文章说,gdc代码要打补丁,很可能赶不上gcc 4.7,看来最终还是没赶上。
D不进gcc的话,受的关注实在太少了。
上个月tiobe跌到39,这个月的也出来了,是38,哎
☆─────────────────────────────────────☆
RoachCock (拜康神教教主) 于 (Mon Dec 5 23:31:59 2011) 提到:
C++ 缺少 module 机制,不适合开发大型项目。
【 在 soarqin (Soar Qin) 的大作中提到: 】
: D导入C的库的时候是可以直接的,但是C++等其他面向对象语言的声明还是要bind一下的
: ,我这里特指各种C++/Java等的开发库。
: 此外,在D里面完全用手动内存控制分配和释放,那我觉得宁可还是回去用C++算了,道
: ...................
☆─────────────────────────────────────☆
hgoldfish (老鱼) 于 (Mon Dec 5 23:41:41 2011) 提到:
话是这么说,可是现在有很多大型项目都是用C++开发的。
C++的lib有点类似于其它语言的模块。
【 在 RoachCock (拜康神教教主) 的大作中提到: 】
: C++ 缺少 module 机制,不适合开发大型项目。
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Mon Dec 5 23:43:34 2011) 提到:
个人完全不赞成这种观点,C++可能开发大型项目是容易出问题,但是这还是架构问题,
只要好好架构绝对是适合大型项目的。
我坚决否定把语言差异看成影响生产能力的原因。
我个人的观点就是,语言的不同,只能决定特定项目环境下不同的的学习成本和后期维
护成本(在满足成熟开发条件时,功能开发周期差异并不大),而不能决定是否适合开发
。
【 在 RoachCock (拜康神教教主) 的大作中提到: 】
: C++ 缺少 module 机制,不适合开发大型项目。
☆─────────────────────────────────────☆
RoachCock (拜康神教教主) 于 (Mon Dec 5 23:46:45 2011) 提到:
用 python 写一小时的,用 C++ 得写半天,用 C 的两天,怎么会不影响生产能力呢。
要不汇编能搞到效率最高,大家都用汇编好了。
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 个人完全不赞成这种观点,C++可能开发大型项目是容易出问题,但是这还是架构问题,
: 只要好好架构绝对是适合大型项目的。
: 我坚决否定把语言差异看成影响生产能力的原因。
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Mon Dec 5 23:54:46 2011) 提到:
架构是关键,python内置了C++那些第三方库才能实现的东西,然后去和人家C++裸奔写
,毫无公平性可言,真正做项目的时候,大量使用现成库是必须的,我说的足够成熟的
环境,就是说这些都准备好了。
即使是汇编,如果有足够的写好的功能库,开发周期比高级语言并不会多很多。
再次强调,架构是关键,要不现在架构师都能拿着天价工资整天发呆呢,能把架构想清
楚,想明白,设计出适合项目的开发模式才是一个大型项目成功的关键。
最后,可以找一下模块化语言Objective C和Mercury到底有多少人在用来开发大型项目
,实在是太少了。
【 在 RoachCock (拜康神教教主) 的大作中提到: 】
: 用 python 写一小时的,用 C++ 得写半天,用 C 的两天,怎么会不影响生产能力呢。
: 要不汇编能搞到效率最高,大家都用汇编好了。
☆─────────────────────────────────────☆
lvsoft (Lv(The Last Guardian)) 于 (Tue Dec 6 00:03:51 2011) 提到:
对于建筑而言,架构是关键,底层其实只要不要烂的没边,没啥大问题。
对于软件工程而言,架构和底层实现都是关键。
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 架构是关键,python内置了C++那些第三方库才能实现的东西,然后去和人家C++裸奔写
: ,毫无公平性可言,真正做项目的时候,大量使用现成库是必须的,我说的足够成熟的
: 环境,就是说这些都准备好了。
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Tue Dec 6 00:05:31 2011) 提到:
好吧,如果底层实现非要从架构中剥离,那确实很重要。
个人只是觉得底层实现就是架构最后要做的一部分而已。
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 对于建筑而言,架构是关键,底层其实只要不要烂的没边,没啥大问题。
: 对于软件工程而言,架构和底层实现都是关键。
☆─────────────────────────────────────☆
blowg (吹哥) 于 (Tue Dec 6 00:06:01 2011) 提到:
他做游戏, 底层都是现成的...
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 对于建筑而言,架构是关键,底层其实只要不要烂的没边,没啥大问题。
: 对于软件工程而言,架构和底层实现都是关键。
☆─────────────────────────────────────☆
lvsoft (Lv(The Last Guardian)) 于 (Tue Dec 6 00:07:55 2011) 提到:
偶的意思是,软件具有混沌属性。
也就是一个局部的不起眼的小问题可以导致整个项目的崩溃。
所以光强调架构是没用的。
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 好吧,如果底层实现非要从架构中剥离,那确实很重要。
: 个人只是觉得底层实现就是架构最后要做的一部分而已。
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Tue Dec 6 00:11:37 2011) 提到:
嗯,说的没错。
这也是现代语言的优势,在错误处理和问题预防等方面做出了很多有益的改进,C++的优
势仅仅是性能而已。
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 偶的意思是,软件具有混沌属性。
: 也就是一个局部的小问题可以导致整个项目的崩溃。
: 所以光强调架构是没用的。
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 于 (Tue Dec 6 00:14:13 2011) 提到:
老实说,作为一个服务器开发者来说,除了通用的几个网络层库就没有现成的底层可用
了,除非能信任那些号称被偷出来的不知道有没有做过充分测试的所谓商业代码。个人
还是相信自己写的东西,至少出了问题自己熟悉的代码还是比较容易排查。
此外我们做的也不能说得上是大项目,所以我绝对不是用自己的项目来考量的。
我是参考了世界上大多数的大型项目,包括商业的,开源的。
【 在 blowg (吹哥) 的大作中提到: 】
: 他做游戏, 底层都是现成的...
有疑问加站长微信联系(非本文作者)