DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: sprblck
今日帖子: 10
在线用户: 15
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 songcheng628 (武大郎) ★☆☆☆☆ -
普通会员
2016/8/29 23:02:22
标题:
进化后的Delphi和C++比较,语言能力已经无限接近了吗? 浏览:2359
加入我的收藏
楼主: 纯新手一枚,请各位大侠指点一下:Delphi自从7之后,已经经过了N代的进化,添加了不少新的语言特性,我想问问如今最新的Delphi和C++语言在语言特性上比较,谁更强大?希望大侠们不吝指点迷津。谢谢!
----------------------------------------------
Delphi Crazy Fans! 
I am a newbie of Delphi.
作者:
男 ivvn (奔腾的心) ★☆☆☆☆ -
普通会员
2016/8/29 23:29:00
1楼: 各有千秋,不可同日而语
----------------------------------------------
-
作者:
男 songcheng628 (武大郎) ★☆☆☆☆ -
普通会员
2016/8/29 23:29:55
2楼: 怎么说?
----------------------------------------------
Delphi Crazy Fans! 
I am a newbie of Delphi.
作者:
男 hyz_hz (随风) ★☆☆☆☆ -
普通会员
2016/8/29 23:35:45
3楼: To 1楼

不可同日而语? 你指的是是新版的delphi和旧版的delphi吗?
----------------------------------------------
-
作者:
男 pp0123 (pp0123) ★☆☆☆☆ -
普通会员
2016/8/30 7:40:27
4楼: 怎可能接近?Pascal 是以人类语言为基础,以方便人类思维理解与除错工作;C 则以数学代码符为基础,以节省文本空间为原意。就连Bill 叔叔都说过,C在今天还流行已经是绝对的错误。只是Unix/Linux的承传才令C立于不败的位置。
----------------------------------------------
-
作者:
男 pp0123 (pp0123) ★☆☆☆☆ -
普通会员
2016/8/30 8:16:06
5楼: 语言本身的能力,全在于那一厂家编释器版本而定。
但 C 的用者多,流出的库也特别多,能力可以超强,可是这又不是 Embarcadero 内的生态。
运用语言的是人,这方面因素下要写长一点的码,C 肯定不比 PASCAL 优胜。
----------------------------------------------
-
作者:
男 truekbcl (truekbcl) ★☆☆☆☆ -
普通会员
2016/8/30 8:24:26
6楼: c++ 11以来,在类型系统方面做了很大的加强,宏、模板也都是图灵完备,编译期类型处理与运行期类型处理可以很完美的结合起来,表达能力完胜c#,delphi。java不提了,差太远。
注意,是表达能力,也就是代码书写的流畅性,不是能不能实现功能。从实现功能看,都是图灵完备,等价的。
缺点:掌握c++比这些语言难得多。
----------------------------------------------
-
作者:
男 truekbcl (truekbcl) ★☆☆☆☆ -
普通会员
2016/8/30 8:28:42
7楼: 怎可能接近?Pascal 是以人类语言为基础,以方便人类思维理解与除错工作;C 则以数学代码符为基础,以节省文本空间为原意。就连Bill 叔叔都说过,C在今天还流行已经是绝对的错误。只是Unix/Linux的承传才令C立于不败的位置。
----------
你自己信了?

语言本身的能力,全在于那一厂家编释器版本而定。
但 C 的用者多,流出的库也特别多,能力可以超强,可是这又不是 Embarcadero 内的生态。
运用语言的是人,这方面因素下要写长一点的码,C 肯定不比 PASCAL 优胜。
---------- 
知道你说的这个“能力”与语言表达能力的区别吗?
----------------------------------------------
-
作者:
男 songcheng628 (武大郎) ★☆☆☆☆ -
普通会员
2016/8/30 8:48:24
8楼: 谢谢!我也知道,Delphi在32/64位平台上的native code编写一直是强项,也经常被拿来与C++进行对比。但在网络世界呢?什么函数式编程、动态语言等比较流行的特性呢?我听说C#在这方面似乎走得比较快,几乎已经成为一个“混合语言”了,Delphi在这方面进展如何?
----------------------------------------------
Delphi Crazy Fans! 
I am a newbie of Delphi.
作者:
男 go_on (go_on) ★☆☆☆☆ -
盒子活跃会员
2016/8/30 9:11:54
9楼: Delphi不可能什么都支持的,没有那么大的财力。delphi的定位就是做一部分适合Delphi做的事,因为公司的财力不足,这个做法是对的,要稳扎稳打,出太多特性,质量不好,又该挨骂,不要想着大而全,C#也不是完美的。

具体定位前面有兄弟发过一个英文的杂志的专访,
----------------------------------------------
-
作者:
男 songcheng628 (武大郎) ★☆☆☆☆ -
普通会员
2016/8/30 9:21:19
10楼: To 楼上,这个专访方便提供吗?
----------------------------------------------
Delphi Crazy Fans! 
I am a newbie of Delphi.
作者:
男 zwjchinazwj (蒲石) ★☆☆☆☆ -
普通会员
2016/8/30 10:51:12
11楼: 让我来泼点冷水:

Pascal是瑞士Niklaus Wirth教授于六十年代末设计并创立的。Pascal语言语法严谨,层次分明,程序易写,可读性强,是第一个结构化编程语言。也就是说,Pascal语言语法的定义是由Niklaus Wirth完成的。之后Anders Hejlsberg依据这个标准实现了Turbo Pascal.而后,开发出了Delphi,Delphi3出来之前Anders Hejlsberg就已经离开了,进入微软,后来主导研发了C#.Delphi一直到Delphi7,语法基本没有什么改变,到Delphi 2007也就是增加了 记录级别的运算符重载,增加inline的支持等,并没有大的变化。与此同时,Delphi的几个核心人员继Anders Hejlsberg之后陆续离开。
在这种背景下,Delphi 2009及之后的版本,语言发生了重大的变化。
如class helper,匿名方法,范型,默认的Utf16字符串类型,移动平台的ARC,RTTI,可锁定对象。(我这里只提语言层面,不涉及代码库的层面)
不过,在我看来,一些新语言特征做是有问题的。例如范型:范型的实现相对其它很多语言限制非常的大,由于没有基于类的运算符重载,因此范型方法里很难直接对范型参数进行计算和操作。还有其他一些内容。就不细说了。

目前就表达能力来说Delphi与C++相比,还是要差一些的。在我看来,C++对新语言特性的引入由标准委员会审议,从理论基础上来说比Delphi要扎实。Delphi引入新语言特征有点随意为之。
----------------------------------------------
-
作者:
男 tony_trh (tony_trh) ▲▲▲▲▲ -
普通会员
2016/8/31 8:26:59
12楼: 光是从语言功能来说,最新的DELPHI 和C++,几乎没有什么差别,C++能做的,DELPHI 都能做,反之亦然,只是写法不同而已,

但 C/C++的优势不是语言本身,而是生态链,操作系统,数据库,网络通信,嵌入式,都是用C/C++在做,形成了庞大的生态链,这是DELPHI 无法比的,

DELPHI 目前主要还是一些中小型的数据库管理系统,桌面系统比较多,因为开发效率高,编译速度快,非常适合开发调试。

不管怎么说,语言排行榜上,DELPHI 长期在10名左右的排名,还是说明有很大的基础和生命力。
----------------------------------------------
-
作者:
男 songcheng628 (武大郎) ★☆☆☆☆ -
普通会员
2016/8/31 8:37:16
13楼: 那相较于C#这类进化较快的语言,Delphi有什么优势?
----------------------------------------------
Delphi Crazy Fans! 
I am a newbie of Delphi.
作者:
男 truekbcl (truekbcl) ★☆☆☆☆ -
普通会员
2016/8/31 10:51:18
14楼: 光是从语言功能来说,最新的DELPHI 和C++,几乎没有什么差别,C++能做的,DELPHI 都能做,反之亦然,只是写法不同而已,
----------
能实现功能,不表示表达能力一样。delphi在表达能力方面,比c++差很多。
----------------------------------------------
-
作者:
男 mprjcf (mprjcf) ★☆☆☆☆ -
普通会员
2016/8/31 10:55:07
15楼: 这么垃圾的DELPHI,你们为什么还用,还混这个论坛呢?如果这些人智力还正常,那么只有一个解释,他们根本不懂DELPHI,是来装B的。
----------------------------------------------
他们总是取笑失败者,以酷似智者;他们也总是为成功者喝采,以取得赏金。
作者:
男 zwjchinazwj (蒲石) ★☆☆☆☆ -
普通会员
2016/8/31 11:09:24
16楼: @songcheng628 (武大郎)
相对于C#而言,最大的优势应该是Delphi不依赖于.net这样的框架。对于程序发布而言更独立,部署更容易。从快速原型化的角度(或者说RAD)来说,与C#差别不大,与其他语言比较起来优势明显。在mobile上的FMX在这一点上也有体现,但是FMX限制也很多,对于普通业务级别的应用是可以满足需求的。对于大一点的公司,互联网产品级的应用,它满足不鸟要求。
同时作为mobile上一个重要领域-游戏,2D游戏 c/c++可以使用cocos2d,3D游戏 C#可以使用Unity3D,delphi就比较尴尬了。
----------------------------------------------
-
作者:
男 yuzhenguo0 (金远见) ▲▲▲▲▲ -
普通会员
2016/8/31 11:19:34
17楼: 学习了
----------------------------------------------
学DELPHI http://www.studydelphi.com
作者:
男 songcheng628 (武大郎) ★☆☆☆☆ -
普通会员
2016/8/31 12:53:09
18楼: @mprjfc 我认为这是一个有益的讨论,各位大侠的发言让我们学习了很多东西。
----------------------------------------------
Delphi Crazy Fans! 
I am a newbie of Delphi.
作者:
男 ceteric (ceteric) ★☆☆☆☆ -
普通会员
2016/8/31 13:28:49
19楼: 语法,语言本身都是浮云,

关键是生态圈:


你需要的功能能不能很快的找到参考代码?
你提出的问题能不能很快的得到准确的答案?
----------------------------------------------
-
作者:
男 mprjcf (mprjcf) ★☆☆☆☆ -
普通会员
2016/8/31 13:49:58
20楼: @ceteric 其实FMX MOBILE你要的功能都能找到参考代码,也能找到准确答案,只是你不去找而已,你别指望向JAVA一样答案能直接喂到你嘴里了。
----------------------------------------------
他们总是取笑失败者,以酷似智者;他们也总是为成功者喝采,以取得赏金。
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2016/8/31 18:00:55
21楼: 楼上正解。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 ceteric (ceteric) ★☆☆☆☆ -
普通会员
2016/8/31 19:48:57
22楼: 晕,我搞iPhone,自己对比了OC/swift和Delphi,生态圈差的不是一点点。
----------------------------------------------
-
作者:
男 ly_212002 (舅子哥) ★☆☆☆☆ -
盒子活跃会员
2016/8/31 22:03:56
23楼: C++语言特性很多,语言复杂,但是代码控制能力强,代码访问控制好,模板的支持复杂,由于有宏的支持,加宏代码可读性不好,语言细节多,支持栈对象,C++11又加入了新的特性,如右值引用,总的来说C++学习特性和细节较多,学习成本高,我们可以理解这就是C++。

object pascal语言功能强大,语言特性较多,但是整体更为简单,学习成本更低,但是object pascal中也不断的在添加新的特性,从功能上讲C++能做的基本pascal都能做,但是语言权限控制能力更弱,并且不支持栈对象,所以相对C++简单很多,并且不支持多继承,仅支持多个接口继承,delphi中封装的更深,许多细节没有反应出来,相反C++中细节都有,所以复杂,C++语言本身不做过多包装,整体而言,delphi中的类层次和关系代码可读性比C++强。

建议:有时间两种语言都可以学习,做为互补和提高,C++更能体现架构和模式,仅设计应用程序而言delphi VCL框架大大优于C++ MFC框架,delphi中COM的框架也大大简单与C++ ATL。仅对比VCL和MFC,是VCL更优秀的,但是C++中有专业的公司设计了自己的界面框架,也是不错的,C++的执行效率总体是优于delphi的,不是说delphi的代码不行,最终都是机器码,主要是是总体上delphi中的类封装的更好更深,所以效率更低,个人感觉C++中的类更注重效率优于框架。
----------------------------------------------
设计是我生命中的一部分
作者:
男 yxsoft (yxsoft) ★☆☆☆☆ -
盒子活跃会员
2016/8/31 22:40:14
24楼: delphi后来加的语言特性我都没用过
----------------------------------------------
Great!
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2016/9/1 7:16:01
25楼: 我觉得对于普通的项目来说,两种语言没有区别,都能做出来效果。但Delphi就是开发快,这是它的最核心的优势。自己掂量吧。其实我天天用的语言是C++,但最喜欢的语言却是Delphi。
----------------------------------------------
只有偏执狂才能生存!
作者:
男 songcheng628 (武大郎) ★☆☆☆☆ -
普通会员
2016/9/1 8:38:29
26楼: 谢谢各位的无私指点!学到很多。特别是@ly_212002的详细解答和建议,谢谢!
----------------------------------------------
Delphi Crazy Fans! 
I am a newbie of Delphi.
作者:
男 wr960204 (武稀松) ★☆☆☆☆ -
盒子活跃会员
2016/9/2 12:36:16
27楼: Delphi是加了很多新的特性,让你觉得该有的都有了,但是都差一点点。
1.比如有泛型容器,但是语法上只有引用参数而没有引用类型,导致你泛型容器保存的结构体无法直接修改,因为你访问的read属性相当于复制了一个值做返回值。
2.匿名函数,你如果用过Java的Interface方式的匿名函数,或者C++11的匿名函数,就知道Delphi的匿名函数还差那么一点点。
3.移动平台和PC平台的String下标不统一,只能用stringhelper那些方法。为啥不能激进点全都是0开始,或者保守点全是1开始呢。
上面全是编译器和语法方面的,框架方面就更多可以吐槽的地方了。

PC上Delphi的执行速度不输于C++多少,但是移动平台上号称接入了LLVM效率怎么怎么好,但是速度怎么跟C++的NDK没法比,有些情况比Java还慢?都是FireMonkey框架不好?
----------------------------------------------
武稀松http://www.raysoftware.cn
作者:
男 unique20102003 (小马) ★☆☆☆☆ -
普通会员
2016/9/2 13:48:33
28楼: c++ builder 呢?
----------------------------------------------
-
作者:
男 lsu (lsu) ★☆☆☆☆ -
普通会员
2016/9/2 14:41:13
29楼: pscal当初就是针对C语言代码可读性差推出来的,影响了后面一大批程序语言。不要指望delphi吸收C++所有功能,那样的话delphi代码就失去了初心了。毕竟还有CB在。

CB倒是比微软的VC还早就支持C++11了,并且也在网页上说了会第一时间支持将来的C++17,应该说CB紧跟最新的C++技术方面是很积极的。编译代码优化质量也无需担心,64位后端现在用的LLVM。

其实emb出个工具自动转换VCL源码到C++,然后Delphi和C++作为两个独立产品分发,市场效应可能会更好一些。
----------------------------------------------
-
作者:
男 lfxsq (lfxsq) ★☆☆☆☆ -
普通会员
2016/9/2 18:00:14
30楼: delphi最失败的就是string移动平台和pc平台不一致,搞得程序员彻底晕圈。
其时统一起来很简单,完全不明白为何这样做。
----------------------------------------------
-
作者:
男 zwjchinazwj (蒲石) ★☆☆☆☆ -
普通会员
2016/9/2 18:18:47
31楼: Linux下要ARC-Enable,那么以往windows平台下,使用class配合abstract 方法来使用c++对象的方式将彻底行不通。在“zuo”的方向上又进一步
----------------------------------------------
-
作者:
男 songcheng628 (武大郎) ★☆☆☆☆ -
普通会员
2016/9/5 9:21:15
29楼: C++ Builder听说很强悍,但一直不愠不火。
----------------------------------------------
Delphi Crazy Fans! 
I am a newbie of Delphi.
作者:
男 unique20102003 (小马) ★☆☆☆☆ -
普通会员
2016/9/5 9:28:28
32楼: c++ 开源库和框架相当多,只可惜现在很多都取消了对c++ builder的支持了,如果c++ builder能够火起来,跨平台应该比delphi更有优势吧。
----------------------------------------------
-
作者:
男 wr960204 (武稀松) ★☆☆☆☆ -
盒子活跃会员
2016/9/5 22:31:32
33楼: 32楼,其实不是取消了对CB的支持,CB相当于是标准C++的超集,多加了很多特性和关键字.例如__published,__property之类的.
标准C++的库和框架一般情况下CB还都是能编译和使用的.

只是CB 64位使用的是LLVM写的新编译器,支持C++11的新特性,而32位则是BorlandC++5的老掉牙的编译器.C++11的新特性就不支持.
写起跨32/64的代码比较恶心而已.
----------------------------------------------
武稀松http://www.raysoftware.cn
作者:
男 unique20102003 (小马) ★☆☆☆☆ -
普通会员
2016/9/5 23:03:53
34楼: 多谢大神解释。只是现在c++很多开源的库有现成的vs工程,用vs打开就可以编译,而很少有c++ builder工程的,使用起来不方便,这点比较遗憾。
----------------------------------------------
-
作者:
男 zhuzh_yuy (华) ★☆☆☆☆ -
普通会员
2016/9/6 0:39:02
35楼: 武大神还在默默地关注Delphi
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS