【问题标题】:Dijkstra on "Software Engineering" [closed]Dijkstra 谈“软件工程”[关闭]
【发布时间】:2010-10-31 23:30:54
【问题描述】:

Edsger Dijkstra,有时可能有点粗鲁(他称“卡尔·弗里德里希·高斯,数学家王子,但也有点懦弱”)在他的文章“论真正教授计算科学的残酷性”(@987654321 @):

其中许多现象已被捆绑在名称“软件 工程学”。经济学被称为“悲惨的科学”,软件 工程学应该被称为“注定的学科”,注定是因为 它甚至无法接近它的目标,因为它的目标是自相矛盾的。 当然,软件工程将自己呈现为另一个有价值的 原因,但那是洗眼:如果你仔细阅读它的文献和 分析它的奉献者实际上做了什么,你会发现这个软件 工程学已接受“如果不能编程,如何编程”作为其章程。

这是真的吗?

【问题讨论】:

  • 哇,在 17 分钟内投了反对票和四票接近。软件开发人员确实仍然讨厌 Dijkstra。
  • 这真的是真的主观的,请把它做成一个wiki
  • 不,我们只是讨厌没有问题。
  • 这是一个严肃的问题。公平地说,Stack Overflow 不适合没有简单答案的问题吗?
  • @CurtSampson:是的,这是真的。不过,没人在乎。教软件行业需要的人如何成为称职的程序员根本不划算。平心而论,我们的主要限制之一是我们工具的原始性:我们需要强制执行前置条件和后置条件,但我们不使用依赖类型。我们需要保证资源被适当地清理,但我们不使用线性类型。哎呀,如果我们真的做类型,我们设计的类层次结构主要是基于在极端情况下无法成立的“直觉”事实。好的结果不能靠坏的手段取得。

标签: dijkstra


【解决方案1】:

您会发现软件工程已接受“如果不能编程,如何编程”作为其章程。

我想我同意这一点。至少当我回顾我们所学的内容和大量文献时,我有点意识到它的目的是指导不会编程的人。

【讨论】:

  • 除了,一旦他们在一个团队中工作的软件太大,一个人无法编写或维护,那些认为自己可以编程的人通常会发现,根据这个定义,不能——如果他们谦虚地接受这一点。
  • @MichaelBorgwardt 完全同意,软件工程在人文学科领域大放异彩。它有助于回答和研究“人们如何一起工作来开发软件?”这个问题。而且我宁愿让一个了解软件工程科学的程序员/开发人员做出这些决定,而不是让一个只是程序员/开发人员甚至根本不是程序员的经理。
【解决方案2】:

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

即使您会编程,您也需要了解大型学科等方面的知识。将科学融入工程就是利用当前可用的技术在实际基础上做出决策,并拥有一个团队(大型,小型或单数)设计并生产出适用于此时此地的产品。

恕我直言,计算机科学的范围要窄得多,而且在进行软件开发时也不是日常问题。

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

【讨论】:

    【解决方案3】:

    我有点好奇——some older discusions on this quote

    这个问题应该保留在这里以供后代使用。收集与该主题直接相关的人的所有意见,供那些查找他的引语解释的人使用。

    【讨论】:

      猜你喜欢
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      相关资源
      最近更新 更多