请注意:本页内容发布于 2141 天前,内容可能已经过时,请注意甄别。
沉重的历史包袱。
原文链接:https://blogs.msdn.microsoft.com/oldnewthing/20040301-00/?p=40453
Many people are calling for the abandonment of 16-bit DOS and 16-bit Windows compatibility subsystems. And trust me, when it comes time to pull the plug, I’ll be fighting to be the one to throw the lever. (How’s that for a mixed metaphor.)
有许多许多人要求抛弃掉16位DOS和16位Windows的兼容性子系统。相信我,等到条件允许的那一天,我会是奋力争取去拔插销拉电闸的那一个人。(也不知这样比喻合不合适。)
But that time is not yet here.
不过现在还不是时候。
You see, folks over in the Setup and Deployment group have gone and visited companies around the world, learned how they use Windows in their businesses, and one thing keeps showing up, as it relates to these compatibility subsystems:
要知道,安装与部署组的同事们在全世界范围内走访了各式各样的企业、公司,了解他们是如何在日常工作中使用Windows的,有一种现象在重复性地出现,而这种现象与这些兼容性子系统密切相关:
Companies still rely on them. Heavily.
企业用户们仍然在依赖它,严重地依赖。
Every company has its own collection of Line of Business (LOB) applications. These are programs that the company uses for its day-to-day business, programs the company simply cannot live without. For example, at Microsoft two of our critical LOB applications are our defect tracking system and our source control system.
每家公司都有其自己的一套业务营运(Line of Business,LOB)应用。这些应用程序是企业用于其日常业务所必需的,没有它们企业就会瘫痪。例如,在微软内部,其中两个关键的LOB应用是我们的损害追踪系统和源码控制系统。
And like Microsoft’s defect tracking system and source control system, many of the LOB applications at major corporations are not commercial-available software; they are internally-developed software, tailored to the way that company works, and treated as trade secrets. At a financial services company, the trend analysis and prediction software is what makes the company different from all its competitors.
同样,如同微软的损害追踪系统和源码控制系统一样,许多大公司的LOB应用也都不是市面上能找到的商业软件,而是由其内部开发的,完全为其需求量身定做的,并且被视为商业机密。对于金融服务企业来说,其趋势分析和预测软件正是使其从它的竞争者们中脱颖而出的要素。
The LOB application is the deal-breaker. If a Windows upgrade breaks a LOB application, it’s game over. No upgrade. No company is going to lose a program that is critical to their business.
这些LOB应用就是那道迈不过去的坎。如果Windows的一次升级让这些LOB应用不能用了,那就完蛋了。打死也不升级,没有哪家公司会放弃对其业务起关键作用的程序。
And it happens that a lot of these LOB applications are 16-bit programs. Some are DOS. Some are 16-bit Windows programs written in some ancient version of Visual Basic.
然而碰巧又有那么多的LOB应用是16位的应用程序,有些是运行在DOS上的,有些是16位的Windows应用程序,还是用某个上古版本的Visual Basic写的。
“Well, tell them to port the programs to Win32.”
『那就告诉他们把这些程序移植到Win32上呀。』
Easier said than done.
说起来容易做起来难。
Why would a company go to all the effort of porting a program when the current version still works fine. If it ain’t broke, don’t fix it.
如果目前的版本运行的好好的,有哪家公司会花大力气去进行移植呢。没出问题,就别动它。
The port would have to be debugged and field-tested in parallel with the existing system. The existing system is probably ten years old. All its quirks are well-understood. It survived that time in 1998 when there was a supply chain breakdown and when production finally got back online, they had to run at triple capacity for a month to catch up. The new system hasn’t been stress-tested. Who knows whether it will handle these emergencies as well as the last system.
移植后的软件要在与现有的系统并行运行的情况下,经过调试和大规模测试。现有的系统可能已经运行了十年了,它所有的小脾气对企业的人来说已经了熟于心。现有的系统在1998年经历了供应链断裂的事故,然后当生产终于恢复时,它承担了以往三倍的压力来赶上后来的新状况。新(移植的)系统可没经历过这种压力测试,谁知道它能不能像它的前辈那样承受住那种紧急情况。
Converting it from a DOS program to a Windows program would incur massive retraining costs for its employees (“I have always used F4 to submit a purchase order. Now I have this toolbar with a bunch of strange pictures, and I have to learn what they all mean.” Imagine if somebody took away your current editor and gave you a new one with different keybindings. “But the new one is better.”)
将DOS应用程序转换为Windows版还会产生巨额的重新培训雇员的开销。(『我那么多年都是按F4提交购货单的,现在你给我一个有一大堆花花绿绿图标的工具栏,我还得记住它们都是干啥用的。』也可以想象一下有个人把你用得好好的编辑器拿走,然后给你一个新的,但快捷键完全不一样,还告诉你说:『这个新的可是更好啊』。)
Often the companies don’t have the source code to the programs any more, so they couldn’t port it if they wanted to. It may use a third-party VB control from a company that has since gone out of business. It may use a custom piece of hardware that they have only 16-bit drivers for. And even if they did have the source code, the author of the program may no longer work at the company. In the case of a missing driver, there may be nobody at the company qualified to write a 32-bit Windows driver. (I know one company that used foot-pedals to control their software.)
另一种常见的情况是,这些企业自己也把这些应用的源代码搞丢了,即使想移植也移植不了。这个应用可能是用了某个第三方VB控件,而开发这个控件的公司已经肄业很久了。应用还可能需要调用某个定制开发的硬件,而这个硬件只有16位的驱动。就算企业手里还有源代码,当初写这个程序的人也可能已经不在这家公司供职了。至于没有驱动这件事,可能这家公司并没有人有资质能撰写32位的驱动。(我知道有一家公司,是用脚踏板来控制它们的软件的。)
Perhaps with a big enough carrot, these companies could be convinced to undertake the effort (and risk!) of porting (or in the case of lost source code and/or expertise, rewriting from scratch) their LOB applications.
或许如果有足够利益驱使的话,这些公司能被打动,承担相关的努力(同时还有风险!)来移植(或者在已经丢失源代码或专业技能的情况下,从头重写)他们的LOB应用。
But it’ll have to be a really big carrot.
但这个利益得足够大才行。
Real example: Just this past weekend I was visiting a friend who lived in a very nice, professionally-managed apartment complex. We had occasion to go to the office, and I caught a glimpse of their computer screen. The operating system was Windows XP. And the program they were running to do their apartment management? It was running in a DOS box.
这里有一个真实案例:就在上周,我去拜访了一位朋友,他住在一幢非常整洁、有专业化管理的复合式公寓里。我们有机会拜访了公寓管理办公室,在那里我瞟了一眼他们的办公机显示屏。(宿主机)操作系统是Windows XP,至于他们用来处理公寓管理的应用程序呢?跑在一个DOS虚拟机(DOS box)里。
这文章就有混淆是非的意思了,甚至连读完后都猜不出这是什么时代写出来的文章。
XP下的dos早就已经是残疾了,连举例都说了人家东西是跑在虚拟机里,这与他自己写的东西都前后矛盾。