哈哈,最近好象关于 VC 和 Delphi 比较的帖子特别多.
看了sundyl的帖子,有些话好象不吐不快
>>"...Delphi的程序员就不同了,他们应为VCL的巨大便利,变得主要是使用控件..."
sundyl您可能不知道2个简单的事实:
1) 99%的控件(VCL)是 Delphi 程序员自己开发的,不是Borland提供的
我甚至偏激的认为:写控件是个基本功,不会写控件就算不上Delphi程序员 :-)
虽然,这会得罪一批和我一样自认为是 Delphi 程序员的人。
2) VCL和Delphi没有逻辑必然,它是一种先进思想的集合,C++照样能用,CBuilder就是例子。
事实上,sundyl拿使用VC和Delphi的程序员进行比较是不公平的竞争~~~
因为历史的因素VC++程序员平均素质要高一些。
正确的做法应该是:
拿基础素质相同的2个程序员,分别去学VC和Delphi,最后比较他们的编程能力.
不过,我也没做过这样的实验, 不能凭我的想象说结果会怎样 *_*
但拿我来说:我是先学的 Basic, C/C++,后来才学 Delphi/Pascal
用了 Delphi 之后,很多人可能都有我类似的感觉:
感到可以做到很多以前想做而做不到的事,而且我用节省下来的时间
学到了更多的东西,甚至反过来加深了我对C++的理解。
事实上,绝大多数 Delphi 程序员原先曾是 C/C++/Basic 程序员.
拿"多重继承","宏"."{}","++" 之类的语法比较来评判优劣是一种缺乏开放心态的表现
要论语法的先进性,Object Pascal 中的例子实在很多,可以信手粘来.
其实Object Pascal中有多重继承(New一个ActiveForm 对象的自产生代码中就可看到)
但严格限制它的使用。原因我不说大家也知道。
不引入"宏"更是如此。(严格说来 Delphi中的 inline assemlber 函数有宏的特征,
这种扩展不是 Object Pascal 基本语法,而且非高手不会需要直接嵌汇编 ^_^)
可以说Object Pascal 一直在吸取 C/C++ 的精华,但不是全部。 :-)
早在 Turbo Pascal 5.0 的时候,就从 C 里吸收来了 break, continue
在BC之前就率先支持完整的OOP语法,还有IDE ,那时的 C 只有命令行呢。
还有比较 {} 和 begin end 之类的细小比较就更是萝卜白菜了,
希望 sundyl 以一种开放的心态来看 Delphi.
关于"{}" 和 "begin end",至少我觉得Delphi程序是可以用嘴交流的程序语言(为数不多,类似的还有SQL)。
什么意思?试着向你旁边的同事随便口读一段C源代码就知道了(包括符号哦)。
(我曾把一段Delphi程序放到 TTS(全程语音)中用机器读,哇,太酷了~~)
顺便,我还想对有意学 Delphi 的程序员谈谈我学Delphi的时候发现的一个窍门,
就是:
Object Pascal 语法中有一种自相似性,
不到万不得已,Object Pascal 不会引入新的语法形式。
在学 function, unit, object, program 等都能体会出来这种自相似性。
比如我当初先学了 record(相当于 struct), 懂了oop概念后,自己就猜出来 object 的基本语法了。
想到哪写到哪,谢谢您能读完,还有我还没提到数据库,
我觉得把Delphi和数据库一起谈有时是个误导,
让人只看到Delphi门槛很低的一面,妨碍了人们认识她实际的强大。
用了这么多年Delphi,领悟到Delphi的一点哲学:
随着社会的进步,分工的细化,合理的规则是:你有权知道一切,但不该是强迫的.