编辑:这个问题起初似乎是在抨击Java,我想在这一点上有点。但是,我要提出的更大观点是,为什么选择任何一种语言作为最终目标都是所有问题的解决方案。Java恰好是使用过的Java,所以这是我在这里要击败的Java,但是我并不是故意将Java撕成一个新的:)
在大多数学术环境中,我都不喜欢Java。我并不是说语言本身很糟糕-它具有几个非常令人希望的方面,最重要的是能够在大多数平台上运行而无需重新编译。在您的下一个应用^ TM中使用语言没有错。(不是我个人会做的事情,但这更多是因为我对它的经验较少,而不是设计很差)
我认为使用Java作为语言来教授高级CS课程是一种浪费。我的许多共同学生无法编程,但该死的,因为他们不知道如何在非垃圾收集的世界中工作。他们从根本上不了解要为其编程的机器。当某人可以在垃圾回收世界之外工作时,他们可以在一个垃圾回收世界中工作,反之亦然。GC是一种工具,而不是拐杖。但是,它被用来教计算机科学专业的学生的方式是拐杖。
计算机科学不应教授针对一种语言的整套课程。学生们离开了,所有好的设计都是惯用的Java设计,而面向对象的设计是唯一可以做的唯一方法。其他语言,至少其中一种不是垃圾收集语言,应在教学中使用,以使毕业生更好地理解机器。
令人尴尬的是,拥有受人尊敬的机构在CS中拥有PHD的人无法从纸袋中编程出路。
更糟糕的是,当我与那些真正了解事物运作方式的计算机科学教授交谈时,他们会分享这样的感觉,即我们通过使用Java来做所有的事情对我们的学生不利。(请注意,如果我将其替换为任何其他语言,则上述内容将相同,通常是使用一种语言,而不是Java本身)
总的来说,我觉得我再也无法尊重任何程度的知识了-当我看不到周围的人能够摆脱Fizzbuzz问题的影响时,他们可以编程。
为什么/如何成为这种方式?