Cobol 和 Java 的顶级架构之间有什么区别?
程序员在这两种语言中采用的风格和文化是什么?
如何从 Cobol 到 Java 的最佳移植?
我是上面提到的 NACA 项目的项目负责人(400 万行 Cobol 的从 cobol 到 java 的自动转码)。
如果您有任何具体问题,请随时通过我上面提到的文章底部的评论与我联系。
我们在世界各地有很多项目重用我们的工具并取得了巨大成功。我们仍然会定期改进它们(查看http://code.google.com/p/naca)以满足基于 NACA 技术的项目的需求。
两者都是基于调用堆栈的语言,都支持面向对象和过程式的编程风格。但是,如果您只是在一个带有静态子例程的巨型 main() 方法中重写过程代码,那么您将发现移植到 Java 的好处很少。您同样会发现很少有利用该语言面向对象特性的 Cobol 代码。
由于 Cobol 主要用于涉及金钱的应用程序,因此 Cobol 商店和程序员倾向于更多地关注事物的业务方面,而不是事物的编写优雅和美丽的代码方面。我见过的 Cobol 到 Java 的移植往往有一个类,所有变量都在顶部声明为静态,并且 main() 方法调用一堆静态方法,与执行段落或调用子程序的方式非常相似。
我看到的 Java 到 Cobol 的移植往往正好相反——它们使用了大多数 Cobol 程序员根本不使用的 OO 扩展。
如果您在 IBM Enterprise Cobol 商店,则确实不需要移植。这两种语言可以很好地互操作,您可以用 Java 替换新部分并且仍然可以很好地交互。
但是真正从 Cobol 移植到 Java 的最好方法是学习好语言和范式。详细记录 Cobol 系统的现有功能;然后设计并编写一个新的 OO 风格的 Java 系统,该系统也将具有该功能。
有一本有趣的书,价值 1 美元(平装本),可能有助于这样的努力,John C. Byrne 的“Java for Cobol Programmers” http://amzn.to/bKqc5j