它们很可能是代码库在其多年历史中从平台到平台的众多迁移之一的残余物。而且,一般来说,如果您有一个工具可以自动正确地将代码从表单 A 迁移到表单 B,那么您通常不希望事后手动处理它,因为引入错误的风险太大。
如果您回溯到从 NeXTSTEP 到 OpenStep 的过渡,有一种称为 TOPS 的转换技术用于自动化从 API 到 API 的转换。在 WebObjects 时代,创建了第二个变体以从 Objective-C 迁移到 Java。
实际上,它是一种专注于变形 API 和语言的自动重构引擎。
TOPS 非常强大,可以轻松扩展。它已被非常有效地用于执行各种迁移——版本、API、样式等——在 3rd 方社区和 Apple/NeXT 内部。
(就个人而言,我最后一次使用 TOPS 是在 2002 年左右将 750,000 行的 NeXTSTEP 3.3 Objective-C++ 应用程序迁移到 Mac OS X 10.2。需要从 3.3 -> 4.2、4.2 -> PR1、PR1 -> 10.2 迁移。挑战,但很有趣。这里有一点背景:http: //www.cocoabuilder.com/archive/cocoa/221418-porting-from-windows-to-mac.html。)