博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我知道,一个传奇结束了!我知道,一个回忆留下了
阅读量:7198 次
发布时间:2019-06-29

本文共 2146 字,大约阅读时间需要 7 分钟。

事情从我最近做的一个小项目开始。

    因为要急着赶一个网络通信程序,我拿起了4年不用的 Delphi(号称 RAD 开发的老大啊),因为已经知道 Delphi 从 8.0 开始,Bug 不断,还因为 8.0 以后的 Delphi 实在已经难以找得到了,我自然选择了 7.0 版本。
    因为是网络通信程序,我选择了 Delphi 引入的原来是第三方的 Indy 控件组,听说功能很强大,还据说 Delphi 以后就把自己的那个 TCP 的 Client 和 Server 原生控件淘汰掉了,用 Indy 的相应控件代替。因为是初用,就到 Delphi 的C:\Program Files\Borland\Delphi7\Demos 下去找例子,居然就没有!
    没办法,到网上去搜。找到了 Demo 下载地址。还好,在例子中找到一个 TCP 的 Client-Server 的 Demo,然后编译、运行。马上就发现一个 Bug,这个演示程序的功能还不错,运行起来像个局域网内的 QQ,电脑间能够聊天。但是做这个 Demo 的老兄不知道当时在网络上实测过这个程序没有,反正我看到,所有的客户端连接到 Server 后,都被认为是一个“名字”,就是 Server 端机器的名字,而 Server 正是通过机器名来区分客户端的,因为名字相同,所以就不能发送消息了。其实严重的还在于,只要有一个客户端没有终止连接,那么 Server 端退出时就会报告线程终止时出错。–这简直成了一个具有世界影响的错误了,在网上搜索这个错误,达到一大片结果,各种奇形怪状的解决办法都有,但是感觉都不是正解。后来一个网友的回答说,升级到 Indy9.0.18 后问题解决了(D7本身带的版本是 9.0.10)。于是我决定把 Indy 升级一下。
    于是第二个麻烦又来了。因为曾经早已经领教过 Delphi 版本之间、VCL 组件之间版本不兼容的折磨,心里有阴影,所以我本来就比较害怕。于是就去 Indy 下了个号称自动安装的版本,而且为了保证 Bug 少一点,想装个 10.0 版本。这个是号称自动安装的版本其实不是 Indy 的公司做的,不知道是不是 Indy 公司的那个老总的亲戚近水得月,还是那个内鬼在洗钱呢?–扯回来–号称自动安装的组件包安装后,拖个 Indy 组件一编译,我靠,报错!说是组件没有那个属性!没有那个属性,组件怎么进入了组件面板了?
    再次上网去搜,说是 Delphi 的各个版本卸载 Indy 的方法都不太一样,由于 Delphi 安装程序的失误,卸载完毕,还在 Lib\Debug 下留下了一推 .dcu 文件,有的遗留文件还不止一处路径,连 Windows 的系统文件夹下都可能有–感觉有病毒的某种特征了。
    于是决定自己冒险实验一下(说是冒险,是担心把 Delphi 搞瘫,又要花费半天功夫收拾系统了。还有,Delphi安装到半路上出问题,很难再次直接安装的)。
    运行 Delphi7 文件夹下的 Borland Delphi 7.msi 文件,选修改(Modify),把 Indy 选掉,继续,结束。再把 Lib\Debug 下以Id 开头的文件删除(先备份一下)。然后,再运行 Delphi7.0 好了!
    Delphi7.0 是好了,但是问题又来了,由于原来我下载的那个示例程序是对 Indy9.0 的,现在 Indy 升级了,原来的那个例子就不能运行了!怎么办呢?降级吧!……好在有了2个小时的经验,顺利的又装了一次 Indy9.0.18。

    为什么说“一个时代结束了,一个传奇结束了!”?在 .NET 和 Java 的夹击、打压下,也许还有 Borland 那些官僚的瞎指挥和资本的胁迫下,10 年前曾经辉煌的 Delphi 如今已经老态龙钟、漏洞百出了。我曾经购买的 Delphi2005 光盘,安装后编译自己带的 Demo 程序都过不去!四处出击,产品众多:C++、J++、C# 一堆 Builder,好像还出了个和 C 相关的东西。

    从 Borland 分拆后的 Codegear,照样在出新东西,Ruby on Rails 火了,就出了个它的 IDE。不知道有没有 Phthon 的相关东西?!
    没有精品,连 Delphi 也给搞得四不像了。
    虽然我承认我有“Delphi情节”,虽然现在的桌面开发 Delphi 照样是最 RAD 的。但是,用户流失、学习资料锐减(6年前书店里计算机语言最多的书可能是Delphi),在支持 Web 开发上的失误,都让 Delphi 走下坡路了。我知道,10 年后,Delphi 也许就像10 年前独步天下的 Borland C++ 一样消失了。但是,计算机史上,曾经有一群技术狂人、有一个公司、有一个精灵……回忆将会永远留在心里,挥之不去……

    后记:前文提到的那个线程出错的问题,被证实确实是一个 BUG,因为 Indy9.0.18 没有这个问题。到底还是高版本的软件好啊?但是为什么 Delphi 版本越高越糟糕呢?

本文转自网眼51CTO博客,原文链接:http://blog.51cto.com/itwatch/286536,如需转载请自行联系原作者

你可能感兴趣的文章
XMind中的“任务信息”视图
查看>>
OSChina 双十一乱弹 ——来自单身狗的哀鸣
查看>>
OSChina 周三乱弹 ——我们职业更好的名字:爱码士
查看>>
左边的项目管理器不见了
查看>>
android 获取唯一标识
查看>>
HTML5 - Server-Sent Events
查看>>
网络研讨会的邀请:网络公开课_守护好数据库的备份信息
查看>>
使程序在Linux下后台运行
查看>>
关于赋值语句的一点看法
查看>>
windows版本的Emacs 无法显示图片的解决方法
查看>>
Discuz! 经典加密解密函数(带详解)
查看>>
JVM内存结构和6大区域
查看>>
centos6 Docker桥接到主机所在的内网
查看>>
C++ 动态内存
查看>>
网络安装CentOS5.5Final
查看>>
View requires API level 14 (current min is 8)
查看>>
Anychat即时通讯系统
查看>>
2011年 小结
查看>>
手机网站的网页进行微信转发时遇到的问题
查看>>
在RHEL6上配置基于ftp的YUM
查看>>