Dijkstra关于“软件工程”

Dijkstra on “Software Engineering”

Edsger Dijkstra有时可能有点生硬(他称之为"数学家王子卡尔·弗里德里希·高斯,但也有点懦夫")在他的文章"关于计算机科学真正教学的残酷性"(EWD1036)中说:

A number of these phenomena have been bundled under the name"Software
Engineering". As economics is known as"The Miserable Science", software
engineering should be known as"The Doomed Discipline", doomed because
it cannot even approach its goal since its goal is self-contradictory.
Software engineering, of course, presents itself as another worthy
cause, but that is eyewash: if you carefully read its literature and
analyse what its devotees actually do, you will discover that software
engineering has accepted as its charter"How to program if you cannot.".

这是真的吗?


you will discover that software engineering has accepted as its charter"How to program if you cannot."

我想我同意这一点。至少当我思考我们所学的,以及很多文学作品时,我有点意识到它的目的是指导那些不能编程的人。


我不同意。对我来说,软件工程是如何着手解决复杂的问题并完成不仅仅是在这里或那里编写代码的事情。

即使你能编程,你也需要了解大范围的学科等等。把科学纳入工程中是关于利用现有的技术在实际基础上做出决定,并拥有一个团队(大、小或单一),设计和生产一种在这里和现在都能工作的产品。

在进行软件开发时,计算机科学的范围要小得多,日常问题也少一些。

(这当然取决于你的产品。有些产品比其他产品拥有更多的技术和科学,不管它们是软件、硬件、建筑、自行车、汽车还是太空火箭。)


我有点好奇——对这句话有些老的怀疑。

这个问题应该留传给子孙后代。收集与主题直接相关的人的所有意见,供那些查阅其引语解释的人使用。