Mar*_*jak 16 python programming-languages future-proof
如果创建一个现在需要运行的应用程序(主要是数据处理),也许(或许不是)10年或25年后,这些应用程序有哪些设计技巧?
一般规则适用:依赖开源软件和经过验证的平台以及故障安全数据格式.
出于可读性原因,该语言必须是高级语言(可能唯一的选择是在15年内由对原始代码知之甚少的人重写应用程序).
我会选择UNIX(Linux)+ Python + YAML/JSON(/ CSV/plaintext),这个选择或替代工具集的任何提示?Scheme/lisp已经存在了很长时间,并且很难搞砸语言基础知识,因为一切都是自成一体的.
编辑:请不要忘记有关实际设计和代码的提示,例如2038年的问题!
实际上,#1的要求是"使用符合国际标准组织正式规范的流行语言".这比你提到的任何其他事情都重要得多.("开源"?请... 80年代和90年代有成千上万的公共领域程序,今天几乎不可能运行.)
例如,如果您严格按照C99或C++ 98或C++ 03甚至C++ 0x规范进行编码,那么编译器将为您的平台存在10年,20年和50年的概率大约为99.9999%.现在,它可以处理您的代码零变化.对于流行语言来说,这是关于正式规范的最有用的东西.
严格地编码到这样的规范可能并不容易,因为许多非平凡的程序(例如,具有GUI的任何程序)不能100%便携地编写.
但这仍然是我开始的地方.实现尽可能多的,你可以在100%符合标准的代码,然后找出在依赖于平台的模块,其余部分(如GUI).最小化后者的大小,您将最小化后继者必须执行的工作.
免费的第三方工具 - 无论是像Boost这样的东西还是像Python这样的东西 - 都是一些问题的绝佳答案,但不是这个问题.
Java 可能是一种很好的语言来编写它。java 具有出色的向后兼容性,一个大型标准库,也具有良好的向后兼容性,并且足够流行,很可能在 25 年内出现。即使 java 失宠,也有足够多的 jvm 语言(如 scala 和 clojure),它们可能会变得足够流行,以确保 jvm 和 java 作为副产品的生存。
Python 可能不是一个好的选择,因为它们偶尔会破坏兼容性(python 3 与 python 2 不兼容)。