撤回讣告
请定义“死亡”……
对我来说,它已经死了……
意义何在?
不受欢迎的好处
它活了!
我有个消息要宣布……
Javascript已死!
好了,现在,老实说。你们当中有多少人刚才突然闪过一个念头:“哦,糟糕,那我该用什么来完成我的项目呢?”
请放心:JavaScript 并没有消亡。您可以继续开发您的 JS 项目,无需担心。但这句话确实产生了影响。试想一下,如果这篇文章的其余部分都建立在这个前提之上,人们会作何反应?
过去一年里,我听到了一些令人震惊的“死亡宣言”。Perl 已死!C++ 已死!Java 已死!LAMP 已死!Python 已死!
编程界存在一个巨大的问题,但这并非平台死亡率的问题。
请定义“死亡”……
我们经常使用这个词,但我认为我们当中很少有人真正理解“死亡”的含义。或许韦氏词典能帮我们解惑。
失去生命;——与活着和活着相对;退化到那种运动和生命器官已不可逆转地停止履行其功能的状态;例如,枯树;死人。
我觉得诺亚的意思很明显。死了就是死了。不再生长,不再活着,不再有生命。什么都没发生。死了,就成了虫子的食物。
或许提供一个关于“死亡”的技术示例会对你有所帮助……
Visual FoxPro 已于 2007 年停止开发。截至 2015 年,它已停止支持。如今,无论你多么想,都无法构建和发布 Visual FoxPro 项目了。Visual FoxPro 已不复存在。
【编辑:我也得撤回那篇讣告!正如 Herb Wolfe 在评论中指出的,如今不仅可以用 FoxPro 进行开发,而且它还有一个活跃的社区。我甚至还找到了一个开源的克隆版本。真是意料之外!】
现在,让我们来看看最终促使我写这篇文章的论断:“Ruby on Rails 已死。” 他认为,除了少数边缘用户之外,现在没有人再用 Ruby on Rails 开发任何有意义的东西了。让我们仔细想想……
- DEV 实际上是用 Ruby on Rails 构建的!
- Rails于2018年12月4日发布了5.2.2版本。
- 目前他们的官方 GitHub 上有 718 个未解决的 pull request。
- Rails技术大会将于 2019 年春季在明尼阿波利斯举行。
- 您现在浏览的网站是用 Rails 框架构建的!(这一点值得再次强调。)
Ruby on Rails 甚至连“已死”的任何一条标准都不符合。我也可以用类似的论点来论证 Perl、C++、Java、Python、LAMP 等等。
即使是像 C、FORTRAN 和 COBOL 这样较老的语言,也不能说是已经消亡的。它们几乎在所有现代操作系统上仍然受支持,并且在各自的领域中仍然扮演着重要且持久的角色。如果你不信,可以走进一间 Linux 开发者的房间,大喊一声“C 语言已死,对吧?”(友情提示:最好戴上头盔。它能保护你免受碎石的伤害……但挡不住嘲笑。)
对我来说,它已经死了……
显然,编程界并没有以任何理智和合理的方式使用“死亡”这个词。
当我们说“X已经过时了”时,通常意味着“X不再流行”,进而意味着“X不再是市面上最热门的新事物”。在我看来,这让我们听起来就像一群喋喋不休的中学生女生。
“你看到辛迪穿的那件衣服了吗?那件裙子都过时了。我绝对不会邀请她来参加我这个周末的派对。”
当然,问题在于这种评估完全基于大众的主观意见。当我们鹦鹉学舌般地重复“Ruby on Rails 已死”时,我们引用的很可能仅仅是一些注意力如同幼年金毛犬般短暂的程序员的观点。
当然,有时候我们断言“X已死”并非基于任何大众观点……而是基于我们自身的看法。我听过太多人单独宣称“C++已死”,仅仅因为他们不喜欢这门语言:手动内存管理、指针、编译……这些都让他们感到厌烦。这也没什么——他们不必喜欢这门语言。
然而,就像 Ruby on Rails 一样,C++ 依然非常活跃——C++17 最近刚刚发布。它也是我最喜欢的语言之一。我会在一些我认为它非常适用的场景中使用它。
所以,这些人实际上是在说:“C++对我来说已经死了……我讨厌它。我希望它消失。”
我个人非常讨厌 JavaScript,真希望它消失。但即便 20 年后,如果 JavaScript 真的不再受大众欢迎,我大概也不会写文章说“JavaScript 已死”,因为它根本不会死!
但说实话,这项技术流行与否又有什么关系呢?如果它满足了项目的需求,如果它能帮助开发者解决问题,并向目标用户交付可行的软件,如果它能为开发者提供他们个人认为高效且有成就感的开发体验,那么谁又会在乎其他人的看法呢?
意义何在?
那么,这到底有什么关系呢?如果我们都清楚“死亡”的含义,那我到底在说什么呢?
很简单:措辞很重要!并非每个人都了解我们中学生对“死亡”的定义,我们也不应该强迫他们接受这种含义。“死亡”有一个精确而有意义的定义,它理应阻止我们使用在数量上不可行技术的应用。
还记得文章开头我说JavaScript已死吗?你可能(虽然不一定)当时会有短暂的情绪反应,即使你知道它仍然是一种可行的技术。沟通和人类心理之间的联系很奇妙,但却非常重要!就像你不会因为得知某位平面设计师已经去世而选择聘用他/她,也不会因为知道某只鹦鹉已经去世而购买它一样,使用一项被告知已经过时的技术,本身就让人感觉不对劲。这会成为一种心理障碍。
换句话说,当我们仅仅因为流行度或个人意见就称一项可行的技术“过时”时,实际上是在操纵他人做出符合我们心意的技术决策,无论我们是否出于本意!即使对方了解我们对“过时”一词的流行误解,他们仍然会感到困惑。
换句话说,将一项可行的技术宣布为“已死”,实际上是在心理上阻碍人们为自己的项目选择最佳技术。即使你的出发点是好的,这样做也等于你假定自己比别人更有资格为他们的计划做出技术决策!
不受欢迎的好处
我之前写过关于编程领域流行趋势的文章,所以你可能还记得我说过……
只有当我们开始基于除技术本身价值之外的任何理由大规模采用一项创新时,这项创新才会变成一种技术潮流!
当一项技术不再受大众青睐时,它会在最适合它的应用场景中扮演更加稳定的角色。它从因流行而被采用,转变为因适用性而被采用。持续的开发以及技术社区将更加专注于技术的优势,而这往往意味着忽略那些技术并不适用的应用场景。
以C语言、FORTRAN语言和COBOL语言为例,它们在当时都非常流行,人们几乎尝试用它们来做任何事情。后来,随着热度的消退,大众转向了更广阔的新领域,这些语言也逐渐回归到它们最适合的用途。
即使在今天,C 语言仍然是大多数系统开发的基础,提供了至今为止最可靠的“裸机”访问方式。FORTRAN 是科学计算的支柱,深受 NASA、CERN 和许多其他机构的信赖,用于编写其最关键的代码。而 COBOL 语言凭借其速度快、可移植性强和卓越的数学精度,至今仍参与大多数金融交易。
这些语言并非只是少数过气的边缘开发者和满脸青春痘的爱好者编写的。它们是真正具有专业应用价值的技术。
未来某一天,C语言或许会被Rust取代,FORTRAN会被R取代,而COBOL最终会被……说实话,现在谁也说不准会是什么。循环往复,没有什么是永恒的。
但说真的,编程语言很少消亡。即使是备受诟病的 Ada 语言也依然存在,其最新稳定版本发布于 2016 年 2 月。开源软件日益盛行,也进一步证明了大多数编程语言一旦确立,就很少会消亡。
三十年后,我敢肯定,那些酷炫的开发者们都会嘲笑 Python、Javascript、Rust、Haskell、Go 和 Java 开发者们,因为他们坚持使用那些“过时”的语言。
但说实话,我们的工具流行不流行真的那么重要吗?只要我家附近的五金店还卖十字螺丝,我就会继续用我的十字螺丝刀。事实上,我敢保证,三十年后我修理一台全新的高端电脑时,还会拧出大约二十几个十字螺丝。
然而,现在已经没有人写文章称赞十字螺丝了(至少我没看到),但这并不影响它们的性能。它们依然好用。
在选择技术时,唯一应该考虑的问题应该是“这项技术是否符合我的项目需求”!
它活了!
关于 Ruby on Rails 项目“死亡”的报道被大大夸大了……几乎所有类似的“X 项目已死”的声明都是如此。
我们彼此负有责任,尤其要对后来的新手负责,不要让彼此的工作更难!你不必喜欢所有的技术,但不要把你对某种语言的看法与它的实用性混为一谈,然后让其他开发者对这种语言是否值得她认真客观地考虑感到困惑。
这种语言并没有消亡。它依然充满活力,一群才华横溢的开发者正在使用它来开发有价值、可行的软件。
所以别再跟我们说它是只退役鹦鹉了。不管它看起来多么光鲜亮丽,我们都不会用它去换一只蛞蝓。
阅读更多...
文章来源:https://dev.to/codemouse92/retraction-of-an-obituary-19n






