一位著名的 PHP 用户曾经说过:无论如何,2 年后会重新启动。
那些时光已经一去不复返了。超过 5 年的 Web 应用程序很常见。原来的开发者走了。
如果您没有大量员工,那么操作系统、编程语言和框架的发布周期会妨碍您进行实际工作。
有没有办法开发不需要不断移植到下一个级别的东西,而不用担心失去社区的支持和支持?对于那些想要留在编程而不是爬上公司阶梯并将问题留给下一代“一代”的人?
一位著名的 PHP 用户曾经说过:无论如何,2 年后会重新启动。
那些时光已经一去不复返了。超过 5 年的 Web 应用程序很常见。原来的开发者走了。
如果您没有大量员工,那么操作系统、编程语言和框架的发布周期会妨碍您进行实际工作。
有没有办法开发不需要不断移植到下一个级别的东西,而不用担心失去社区的支持和支持?对于那些想要留在编程而不是爬上公司阶梯并将问题留给下一代“一代”的人?
我的公司几乎完全用 C# 编写代码,但是我们有 ColdFusion 5 应用程序仍在嗡嗡作响,这是在 2001 年左右编写的。无需移植它们。
如果它没有坏,不要修理它。
除了安全漏洞(通常由操作系统/服务器补丁处理,因此它们不需要更改代码)之外,没有必要仅仅因为语言的新版本出现而更改应用程序。
如果我没记错的话,自从我们停止将 ColdFusion 用于新代码以来,它至少已经发布了 2 个新版本。但这丝毫没有影响我们的 ColdFusion 站点。
用 FORTRAN 77 编写 CGI 程序。应该很稳定。
首先,可能夸大了维护 Web 应用程序的难度。在许多情况下,对语言或平台的更改本质上是扩展性的,而不是破坏性的。几年前的 .NET、python 等代码仍将运行,但正在添加新选项以使这些工具对未来的应用程序更强大。发生巨大变化的情况往往发生在语言的第一次或第二次迭代中,例如 Rails 1 到 Rails 2。
其次,网络编程仍然活跃的发展是值得感谢的。这意味着这是该行业的一部分,将在未来几年保持高效和令人兴奋。
传统的 CGI是稳定的。这并不性感,但如果您的操作系统继续能够运行相同的二进制文件或脚本,它仍然可以工作。
唯一保持稳定的编程框架是那些已被放弃的框架。一个静止不动的框架将不支持 AJAX 或 JSON 甚至 XML。
你不会找到你要的东西。您可以期望的最好的结果是一个成熟的框架,它具有良好的支持,如 ASP.net 或 JSP。而且,正如@Neil N 所说,除非有迫切的业务需求,否则不要继续升级。
我做过的第一个 Web 编程是用 C 语言编写与 dBase 数据库通信的 Apache 模块。我相当肯定代码今天仍然可以运行(如果我为其编写代码的公司仍然存在的话)。
我目前大部分与 Web 相关的编程都是在 Perl 中完成的,它非常稳定,并且在向后兼容性方面有着出色的记录。大多数(如果不是全部)为 Perl 4(1991 年 3 月 21 日发布)编写的代码仍应在最新的稳定 Perl (5.10) 上运行——尽管您可能希望无论如何更新它以利用过去 18 年在这两个方面的改进软件开发技术和语言特性。
考虑剪切层。我之前曾在大型航空航天公司工作,在这些公司中,相同的 Fortran 后端代码和数据库的前端从纸带时代发展到大型机、客户端服务器和 Intranet 网站。
在外部,您通常拥有 CSS 和 XHTML 模板,可以对其进行更改以重新设计应用程序的外观。这些变化非常迅速,在大型组织中,因为高层管理人员似乎决定每隔几周将自行车棚换成不同的颜色。
通常,您有一些逻辑将模板与来自后端的数据结合起来,并将用户操作转发到后端。这不应该很快改变,而是将演示文稿转换为后端的调用。预计每隔几年更新一次,并每隔十年重写一次。从 1990 年代后期开始,我们为此使用了 Java。有些零件的更换速度比其他零件快,但这不是大问题。
后端通常是稳定的(一些空气动力学代码可以追溯到 1970 年代;物理定律不会经常改变),并且会比 Web UI 更持久,因为它具有所有其他 UI 范例。Fortran 是永恒的。
用 C 编写自己的 Web 服务器,然后您就不必担心 Web 编程语言。
(不,这不是一个严肃的答案)
您是否认真研究过 TDD、CI、结对编程和可靠、快速的开发框架(基本上是 Django 或 Rails)可以为您作为开发人员提供什么,以及您编写和设计代码的方式?所有这些部分都为开发过程提供了一些真正巨大的好处,使再次成为程序员几乎是一种乐趣。当然,也有缺点,但优点都是支持工程师的快乐和易于开发,从而提高生产力。在我的书中,这是一场扣篮胜利。我的生产力和幸福的结果是可靠的产品和出色的工程。
YMMV,但是如果您有认真的想法(并且我非常认真地对待它们),我认为值得您研究这些工具可以提供什么。通过从敏捷宗教中汲取好处并留下坏处,加上我上面列出的一些东西,在经历了 5 年的快乐下滑之后,我又回到了去年再次找到编程的乐趣职业。这是关于找到适合你的东西。我只能通过向您展示对我有用的方法来提供帮助和引导。如果您想离线交谈,我非常乐意详细讨论,我认为这是一个非常重要的话题……它使我多次考虑转行。
Java Servlet 和 JSP 已经使用了十年左右,它们的工作方式仍然与 99 年相同。但老实说,你能想象比 90 年代的 Web 应用程序更丑陋的东西,而没有任何返工吗?
Python Web 框架web2py承诺向后兼容:
始终向后兼容。自 2007 年 1.0 版以来,我们没有破坏向后兼容性,我们保证将来不会破坏它。
并支持从 2.4 到 2.7 的 Python 版本
编辑:更新一个重要项目 2 次,每次出现问题。嗯……</p>
编辑 2:现在需要 Python 2.6 到 2.7。不支持 Python 3。