一种框架、浏览器或语言赢得战争并成为事实上的标准是否符合软件开发行业的最佳利益?一方面它消除了跨平台的挑战,但它为单点故障打开了大门。它还会导致创新停滞,还是会让行业专注于更重要的事情(无论是什么)。
4 回答
事实标准很糟糕,因为它们通常由单一方控制。对行业来说最好的是有一个开放标准的基础,每个人都可以在此基础上竞争。
网络就是一个很好的例子。当 IE 赢得浏览器大战时,它停滞了多年,现在才刚刚开始改善,因为它正在流失市场份额。在那之前的网景也好不了多少。CSS 2.1 标准是十年前发布的,但仍然没有得到很好的支持。因此,Web 开发是一种让网站始终呈现一致的黑客和变通方法的黑艺术。
如果我能根据网络标准建立一个网站并确信它会正确显示,我的工作会轻松一百倍。想想我们本可以做的所有很酷的事情,而不是修复 IE 的呈现错误。
我相信只要只有一种选择,创新肯定会停滞不前。如果我们只有一种语言,那么除了该语言旨在解决的问题外,我们将无法解决任何问题。
Java 和 C# 等命令式语言很好地解决了某些问题,但有时也有助于以函数式方式思考,例如使用 Haskell 和 Lisp。
此外,如果您谈论的是 Web 应用程序,跨平台问题不是问题,因为您控制硬件和软件(注意,我说的当然是服务器端代码,浏览器跨平台问题是分开的)。
Paul Graham 写了一篇很棒的文章,讲述了 Web 如何让您作为开发人员使用您认为最能解决问题的工具。
不,竞争是好的。它可能会使 Web 开发人员的工作更轻松,但我认为这对行业不利。我个人更喜欢有选择。
我相信 Joel Spolsky 创建自己的语言(Wasabi)以使他的公司免受平台特定的影响的技术是一个很好的技术。我也相信使用能够完成类似事情的产品是一个好主意,这些产品更针对特定问题,如 JQuery。
我将不得不同意迈克的观点,并说没有竞争就几乎没有创新的动力。