几年后(原帖是从 2014 年开始,答案是从 2014 年到 2015 年):
得票最多的帖子基本上是在争论两个方面:
一个。 Progress (Openedge) 已经存在了很长时间,而且不会很快出现
b.除非你的老板有无限的预算、无尽的用户耐心和对挫折和痛苦的渴望,否则你不应该浪费任何时间考虑重写:http://www.joelonsoftware.com/articles/fog0000000069.html
关于一个:
是的,Progress OpenEdge Stack 还在。但根据我的经验,找到经验丰富且技术娴熟的 Openedge 变得更加困难。
但这里也是一个重要因素,我认为自从讨论开始以来,这一点已经变得更加重要:
在开箱即用的功能和质量方面,用于应用程序开发的可用开源堆栈已经变得更好,并且已经决定性地朝着 RAD 的方向发展。
我正在考虑 Spring Boot 的例子,但不仅如此,请参阅 https://stackshare.io/spring-boot/alternatives。在 Java 领域,Spring Boot 无疑是独一无二的。此外,对于丰富的 Webui 的开发,出现了许多非常有效的选项,这些选项当然可以满足 RAD 要求,只是一些“任意”示例https://vaadin.com 用于 Java,还有https://www.polymer-project.org 用于 Javascript,有趣的是它们与 https://vaadin.com/flow 融合.
许多可用的堆栈仍在大力发展,但作为强大的驱动力,所有堆栈都让开发人员的生活变得更轻松。同样在架构方面,您会发现许多堆栈在基本构建块和原则方面的融合:接口与实现的分离、用于远程通信的 REST API、对象关系映射技术、NoSql / Json 方法等。
所以是的,开源堆栈在开发方面变得非常高效。还必须提到的是,这些堆栈的范围并不仅限于开发:部署、操作方面,当然还有测试是一个强大的功能,最终也使开发人员的生活更轻松。
通常可以说,经过精心挑选的开源堆栈的混合搭配具有非常强大的价值主张,而且在 RAD 要求的背景下,专有堆栈从长远来看将难以匹配 - 至少在我看来,我的观点是。
关于b:
有趣的是,我最近刚和一位客户在一起,他希望这样做:重写他们的应用程序。具有讽刺意味的是:他们正在从 Progress 迁移到 Progress OpenEdge,并带有几个额外的 Open Edge 兼容工具。原因有二:他们的代码变得非常难以维护,并且会重构以解决来自 Web 前端的需求。同样有趣的是,他们没有找到足够的合格开发人员。
基本上:当代码可以重构并且可以随着新的需求而发展时,代码是可靠且有生命的。不幸的是,有很多例子——至少从我的经验来看——是相反的。
此外,软件生命周期的终止可能会迫使公司“重写”其软件的至少几层。这不一定是坏事和不可能的。我参与了一个项目,该项目在不到两年的时间内将 300 多个 Oracle Forms 表单迁移到了基于 Java 的 UI。这种从 2 层到 3 层架构的迁移实际上使公司能够发展他们的架构来满足 Web Ui 的需求。所以实际上最终这种“重写”和强大的价值回报也是从商业角度来看的。
所以说一句(非常;-))长话短说:
不管怎样,概括很容易出错。