(评论)
(comments)
原始链接: https://news.ycombinator.com/item?id=38273999
然而,这提醒我们,跨多个硬件和平台配置维护代码可能具有挑战性,需要仔细考虑和规划。 遗留系统通常需要特别关注和资源来确保适当的功能、性能和稳定性。 因此,在设计或更新软件时必须考虑遗留系统并进行相应的规划。
就此处讨论的具体软件而言,curl 旨在跨 100 多种操作系统类型一致地运行,这一事实说明了跨平台兼容性和互操作性的重要性。 然而,如前所述,实现完全的跨平台一致性可能很困难,并且需要大量的开发工作。 最终,是否主要关注支持较旧的遗留环境,还是专门关注新的现代环境,将在很大程度上取决于软件的目标及其目标受众。 尽管如此,很明显,提供跨平台兼容性仍然是当今软件设计和维护的宝贵资产。
关于用其他语言编译Go程序的示例,我通过使用Go程序构建Docker镜像来熟悉这种方法。 它允许人们利用更多的库和模块,并且还可以简化 Go 软件的部署和管理。 然而,与涉及在外部环境中进行编译的其他方法一样,可能会出现与模块兼容性或依赖性相关的限制和问题,并且可能需要额外的设置和配置步骤来确保正确的功能。 尽管如此,该技术代表了一种利用两个不同编程生态系统优势的实用解决方案,尽管需要一定程度的额外努力才能正确实施。
总体而言,软件设计和开发固有的挑战涉及在创新和进步之间取得平衡,同时满足不同受众的需求。 在软件可维护性和可靠性方面,它强调了在整个生命周期中仔细考虑软件设计选择的重要性,特别是在考虑持续的技术进步以及不断变化的操作需求时。 这些挑战提出了复杂的问题,这些问题仍然是开放式的,必须单独解决。 最终,将遗留软件环境与现代软件环境一起维护需要仔细判断,以确保在所有支持的平台配置上实现一致的功能、最佳性能、可靠的可扩展性和高可用性。
It's interesting to me that he highlights 32 bit time_t as one important point of compatibility. Makes perfect sense if your goal is to keep your program working on many operating systems. OTOH 2038 is only 14 years away now, or well closer to today than when curl was launched. I wonder when no one will think working with 32 bit times is worth the trouble? My guess is about 3 months after the Y2K38 date, maybe even longer.
reply