导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
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楼:
各有千秋,不可同日而语
----------------------------------------------
-
作者:
2016/8/29 23:29:55
2楼:
怎么说?
----------------------------------------------
Delphi Crazy Fans! I am a newbie of Delphi.
作者:
2016/8/29 23:35:45
3楼:
To 1楼 不可同日而语? 你指的是是新版的delphi和旧版的delphi吗?
----------------------------------------------
-
作者:
2016/8/30 7:40:27
4楼:
怎可能接近?Pascal 是以人类语言为基础,以方便人类思维理解与除错工作;C 则以数学代码符为基础,以节省文本空间为原意。就连Bill 叔叔都说过,C在今天还流行已经是绝对的错误。只是Unix/Linux的承传才令C立于不败的位置。
----------------------------------------------
-
作者:
2016/8/30 8:16:06
5楼:
语言本身的能力,全在于那一厂家编释器版本而定。 但 C 的用者多,流出的库也特别多,能力可以超强,可是这又不是 Embarcadero 内的生态。 运用语言的是人,这方面因素下要写长一点的码,C 肯定不比 PASCAL 优胜。
----------------------------------------------
-
作者:
2016/8/30 8:24:26
6楼:
c++ 11以来,在类型系统方面做了很大的加强,宏、模板也都是图灵完备,编译期类型处理与运行期类型处理可以很完美的结合起来,表达能力完胜c#,delphi。java不提了,差太远。 注意,是表达能力,也就是代码书写的流畅性,不是能不能实现功能。从实现功能看,都是图灵完备,等价的。 缺点:掌握c++比这些语言难得多。
----------------------------------------------
-
作者:
2016/8/30 8:28:42
7楼:
怎可能接近?Pascal 是以人类语言为基础,以方便人类思维理解与除错工作;C 则以数学代码符为基础,以节省文本空间为原意。就连Bill 叔叔都说过,C在今天还流行已经是绝对的错误。只是Unix/Linux的承传才令C立于不败的位置。 ---------- 你自己信了? 语言本身的能力,全在于那一厂家编释器版本而定。 但 C 的用者多,流出的库也特别多,能力可以超强,可是这又不是 Embarcadero 内的生态。 运用语言的是人,这方面因素下要写长一点的码,C 肯定不比 PASCAL 优胜。 ---------- 知道你说的这个“能力”与语言表达能力的区别吗?
----------------------------------------------
-
作者:
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#也不是完美的。 具体定位前面有兄弟发过一个英文的杂志的专访,
----------------------------------------------
-
作者:
2016/8/30 9:21:19
10楼:
To 楼上,这个专访方便提供吗?
----------------------------------------------
Delphi Crazy Fans! I am a newbie of Delphi.
作者:
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引入新语言特征有点随意为之。
----------------------------------------------
-
作者:
2016/8/31 8:26:59
12楼:
光是从语言功能来说,最新的DELPHI 和C++,几乎没有什么差别,C++能做的,DELPHI 都能做,反之亦然,只是写法不同而已, 但 C/C++的优势不是语言本身,而是生态链,操作系统,数据库,网络通信,嵌入式,都是用C/C++在做,形成了庞大的生态链,这是DELPHI 无法比的, DELPHI 目前主要还是一些中小型的数据库管理系统,桌面系统比较多,因为开发效率高,编译速度快,非常适合开发调试。 不管怎么说,语言排行榜上,DELPHI 长期在10名左右的排名,还是说明有很大的基础和生命力。
----------------------------------------------
-
作者:
2016/8/31 8:37:16
13楼:
那相较于C#这类进化较快的语言,Delphi有什么优势?
----------------------------------------------
Delphi Crazy Fans! I am a newbie of Delphi.
作者:
2016/8/31 10:51:18
14楼:
光是从语言功能来说,最新的DELPHI 和C++,几乎没有什么差别,C++能做的,DELPHI 都能做,反之亦然,只是写法不同而已, ---------- 能实现功能,不表示表达能力一样。delphi在表达能力方面,比c++差很多。
----------------------------------------------
-
作者:
2016/8/31 10:55:07
15楼:
这么垃圾的DELPHI,你们为什么还用,还混这个论坛呢?如果这些人智力还正常,那么只有一个解释,他们根本不懂DELPHI,是来装B的。
----------------------------------------------
他们总是取笑失败者,以酷似智者;他们也总是为成功者喝采,以取得赏金。
作者:
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就比较尴尬了。
----------------------------------------------
-
作者:
2016/8/31 11:19:34
17楼:
学习了
----------------------------------------------
学DELPHI http://www.studydelphi.com
作者:
2016/8/31 12:53:09
18楼:
@mprjfc 我认为这是一个有益的讨论,各位大侠的发言让我们学习了很多东西。
----------------------------------------------
Delphi Crazy Fans! I am a newbie of Delphi.
作者:
2016/8/31 13:28:49
19楼:
语法,语言本身都是浮云, 关键是生态圈: 你需要的功能能不能很快的找到参考代码? 你提出的问题能不能很快的得到准确的答案?
----------------------------------------------
-
作者:
2016/8/31 13:49:58
20楼:
@ceteric 其实FMX MOBILE你要的功能都能找到参考代码,也能找到准确答案,只是你不去找而已,你别指望向JAVA一样答案能直接喂到你嘴里了。
----------------------------------------------
他们总是取笑失败者,以酷似智者;他们也总是为成功者喝采,以取得赏金。
作者:
2016/8/31 18:00:55
21楼:
楼上正解。
----------------------------------------------
(C)(P)Flying Wang
作者:
2016/8/31 19:48:57
22楼:
晕,我搞iPhone,自己对比了OC/swift和Delphi,生态圈差的不是一点点。
----------------------------------------------
-
作者:
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!
作者:
2016/9/1 7:16:01
25楼:
我觉得对于普通的项目来说,两种语言没有区别,都能做出来效果。但Delphi就是开发快,这是它的最核心的优势。自己掂量吧。其实我天天用的语言是C++,但最喜欢的语言却是Delphi。
----------------------------------------------
只有偏执狂才能生存!
作者:
2016/9/1 8:38:29
26楼:
谢谢各位的无私指点!学到很多。特别是@ly_212002的详细解答和建议,谢谢!
----------------------------------------------
Delphi Crazy Fans! I am a newbie of Delphi.
作者:
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
作者:
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平台不一致,搞得程序员彻底晕圈。 其时统一起来很简单,完全不明白为何这样做。
----------------------------------------------
-
作者:
2016/9/2 18:18:47
31楼:
Linux下要ARC-Enable,那么以往windows平台下,使用class配合abstract 方法来使用c++对象的方式将彻底行不通。在“zuo”的方向上又进一步
----------------------------------------------
-
作者:
2016/9/5 9:21:15
29楼:
C++ Builder听说很强悍,但一直不愠不火。
----------------------------------------------
Delphi Crazy Fans! I am a newbie of Delphi.
作者:
2016/9/5 9:28:28
32楼:
c++ 开源库和框架相当多,只可惜现在很多都取消了对c++ builder的支持了,如果c++ builder能够火起来,跨平台应该比delphi更有优势吧。
----------------------------------------------
-
作者:
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
作者:
2016/9/5 23:03:53
34楼:
多谢大神解释。只是现在c++很多开源的库有现成的vs工程,用vs打开就可以编译,而很少有c++ builder工程的,使用起来不方便,这点比较遗憾。
----------------------------------------------
-
作者:
2016/9/6 0:39:02
35楼:
武大神还在默默地关注Delphi
----------------------------------------------
-