Delphi的没落有三个原因:
1,Object pascal并没有像C/C++那样成为业内标准。

如果你使用C或C++写程序,可以在任何地方进行编译,例如Windows、Linux、手机,甚至是单片机上都可以使用C写程序。

没有成为标准的后果就是跨平台,以及影响第三方编译器的出现。Delphi曾经有一个Linux版本叫做Klinx但是已经好多年不再更新了。

所以这么多年来Delphi只有Borland一家公司苦苦支撑。

2,人才流失,与内部决策失误。
Delphi之父Anders Hejlsberg离开Borland去了微软,导致Delphi的编译器有三年的时间无人敢动,因为Anders Hejlsberg完全使用汇编实现的编译器,无人能够看懂。

Anders Hejlsberg去了微软之后推出了.NET框架,主打语言是C#,无论从类库命名还是代码风格都与Delphi很像,C#语法接近C,又不兼容C。接近C的好处是C系的程序员(C/C++/Java/PHP/)很容易上手,不兼容C的好处是没有历史负担,语法语义可以做的很优美。

此外决策层,频繁出现失误,有很长一段时间Delphi盲目的去跟随.NET,甚至IDE都改用.NET编写,还推出了VCL for .NET,结果却是丢掉了Win32原生开发,而重新编写的IDE又存在大量BUG,白白耗费大量时间与财力,而技术方面,无论是VCL还是编译器、甚至IDE从Delphi7以后就停步不前。

3,市场转变

开发市场现在更注重B/S结构的应用,桌面应用正在大幅减少,Delphi显然不是一个理想的WEB开发语言。

在桌面市场,解释执行的字节码正在成为主流,像Java、C#、Python、Ruby都是解释类语言。解释执行不容易发生内存泄露与内存错误,因为内存不再需要程序员去手动释放,程序编写更简单,语法也更加灵活,虽然效率可能会略低,但当前的趋势就是用CPU的时间去换取更昂贵的程序员时间,因为大部分程序对效率的要求并不高。其中C#的类库命名很接近Delphi,Delphi程序员转入最为C#比较容易。

使用Delphi编写一些项目,你可能需要几位比较高级的程序员才能胜任,而使用Java或C#只需要更少和更加普通的程序员。项目完成后Java或C#由于解释执行的原因会更加健壮,因为大部分问题都可以在编译期发现和解决。而Delphi编写的应用则需要较长的Debug时间,项目进度变慢。

当前的大部分项目,健壮性、开发周期、维护难度远远要比最终执行效率重要100倍。所以企业更多的是在招聘Java与C# 程序员,所以培训机构也在培养Java与C#程序员。现在根本无法见到一个像样的Delphi的培训机构,企业在招聘Delphi程序员的时候往往只是为了维护老旧的项目。

这个时候如果有新手问“我应该学习那种语言?”,“那种语言更容易就业?”。此类问题的答案是显而易见的。这对Delphi来说是一个恶性循环。

对于VB的没落的原因我没有仔细考虑过,因为我只用了30天的VB就把他扔掉了,他太简陋,语法不严谨“Else if”和“ElseIf”具有不同的语义,很容易写错。

作者:庄园
链接:https://www.zhihu.com/question/19622196/answer/12493867
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

--------------------------------------------------------------------------------------------
认同你上述答案,但应该还有非常重要的一条:Borland 靠 Delphi 生活,而.net或java的拥有公司则没有这个压力。因此,我们国内的盗版环境对Borland是致命的伤害!若Borland不严打盗版,则收入有限而难以加大研发投入,以及加大文档支持与宣传力度;而严打盗版及制订高价,那么软件公司是能不用就不用,再加上你说的那几条,当然是雪上加霜了。
--------------------------------------------------------------------------------------------
还做了没有任何市场的Kylix
--------------------------------------------------------------------------------------------
王军,移动互联网/大数据
vb和delphi盛行的时候,正是windows下PC软件开发的黄金时代;后来互联网时代,变为java php .net等流行了;现在是移动互联网时代,流行的是java和object C
 
知乎用户,观天读史看天下
韬神 赞同
我认为Delphi的没落,主要有两个原因:
1、Delphi的发展没有跟上时代的要求。Delphi的成果缘于能够高效支持C/S开发,大量组件尤其是数据库组件降低了开发C/S结构中的数据库开发难度,提高效率。但是由于固守传统,错失B/S开发的机遇。李维在《Borland传奇》中讲过,Delphi在早期版本中(印象里是5.0)曾经有支持B/S开发的动议,但是被Borland公司高层否定了,未能有效利用C/S时代的优势,错失了历史机遇。等后来(7.0)加上支持B/S开发组件时候,技术上已经大大落后于时代了,成了非主流技术。除了B/S开发之外,即便是Windows底层开发Delphi也无法支持,更不必说嵌入式系统开发了。
2、Borland公司发展失误无法提供有力支持。Borland公司除了开发工具之外没有其他盈利产品,而开发工具产品在与Microsoft竞争中又逐渐处于劣势,拿不出足够资源来支持Delphi的发展。最后只能将开发工具卖给 Embarcader。
05-11 11:26