首先,我认为每个程序员都应该学习新的语言。对于那些生活在安全的 as400 世界中的 RPG 程序员来说尤其如此,没有内存泄漏、没有 alloc/malloc、没有指针、没有链接器和其他所有其他程序员认为理所当然的东西。也许这是个人的咆哮,但我确实认为 iSeries 程序员正在远离真实的编程世界。
话虽如此,我已经完成了一些项目来“网络化”遗留系统。我一直在使用非常不同的工具,包括最初的 IBM 解决方案(是的,我老了……)。我们总是能够提供解决方案,但从长远来看,大多数时候它都失败了。最重要的原因是供应商没有及时掌握新趋势和技术(例如 ajax)并将它们整合到他们的产品中。我一直很欣赏这些漂亮的产品(从他们的网站上我认为 Strategi 也很漂亮)但我得出的结论是它在短期内有帮助,但从长远来看它不是选择。
第一个论点是任何“webify”工具的性质。它们的好处是 iSeries 编程器可以快速启动和运行。很快,新产品就交付了。然而,一段时间后,用户有新的需求,其中一些不能用该工具生产。大多数情况下,这些工具不允许您在机器的金属上进行编程。另一方面,它们不允许您结合其他可以解决问题的技术(例如 jQuery)。因此,大多数时候你被迫拥有一个普通的应用程序。
第二个论点与你和你的同事有关。你对住在岛上感到满意吗?如果您阅读程序员杂志、论坛和有趣的产品(例如 Sourceforge),您想要这些东西吗?我认为任何程序员都应该学习并熟悉通用技术。想想 SQL、OO、动态语言、java、Eclipse、Apache、类库/模块等等。如果您在您的环境中使用这些工具/语言/原则,那么您将能够从其他人的经验中学习,吸引年轻的程序员,参与社区,并受到新技术的启发。
如今,我确实为一家越来越多地从遗留系统转变为“正常”东西的公司工作。想想 SQL、JDBC、java、Websphere,但也仍然使用 RDML 和 RPG。我们的工具箱正在迅速增加,这使我们有机会为工作选择最佳工具。是的,这仍然包括 RDML 和 RPG。例如,使用 JDBC 调用具有 iSeries 上所需业务逻辑的存储过程的 java 程序怎么样。该存储过程是用 RPG/RDML 编写的。
这个不断变化的世界有时会让“老派”程序员感到害怕。另一方面,你可以很容易地看出谁拥有天赋和技能,谁多年来一直在做同样的把戏。另一组很热情,因为他们现在可以与其他程序员在项目上密切合作,并分享对技术的相同理解。因此,我们现在确实可以更快、更轻松地识别和采用有助于我们日常工作的新技术。
因此,战略是否可行,仍取决于您。我试图描述这种选择对下一个项目的影响更大。它与您和您的同事作为程序员世界的一部分有关。
就个人而言,我仍然希望在工作场所开始使用 Python。