卡内基.梅隆大学的Robert Harper教授却说(Teaching FP to freshmen)面向对象编程和设计“不适合做为现代计算机科学教学课程”,详细的内容引用如下:
“面向对象编程应该完全的从基础课程中删除掉,因为它既是反模块化,又是反并行的,这是它的非常固有的特征,所以它不适合作为一种现代的计算机科学课程。”
估计你们也意料到了,评论里出现了一些反对意见。这究竟是在说什么呢?难道是学院派和行业派的冲突吗?学院派通常认为“对于学生来说,他们有很多的机会去学习那些陈旧的编程方法,他们可以在日后的工作实践中 按需学习那些知识”,与此同时,招聘经理们却痛恨这种现状,就像一位副总裁告诉我的,要想把一个从不错的大学里的应届毕业生培养成一个完全能工作的软件开发人员,平均所需时间是一年半。这就不奇怪为什么许多公司不喜欢要刚毕业的学生了。
最初做行业编程(以及学术编程)时采用的是结构化编程模式。这种编程模式当时被认为是一个巨大的进步,但需要人们在 思考和设计程序时做一些改变。后来我又经过了很长的、缓慢的、诸多痛苦的过程转变到了面向对象编程模式。我们曾经经过函数式编程的年代吗?也许吧。也许它 跟其它的编程模式共存不冲突。
我们如今有了新的需求。 正像当初的结构化模式和后来的面向对象模式是来满足大型程序和巨型团队的要求,如今的因为要求处理更多的数据的趋势而出现的关键问题就是并行性 (parallelism)。基于这个背景出现的微软的F#语言的目标就是并行性——为了更好的在多处理器的电脑上并行工作。很显然,我们不停的向前发展 是为了更好的利用最新的硬件。但是,这就可以说面向对象成为选修、我们的学生就可以等到毕业后再学习这些知识吗?我还没有被说服。
即使是在面向对象热潮达到顶峰的时候,我就坚称,并不是任何东西都可以成为对象,各种模式的混合使用在过去,在将来,都是正确之道。即使现在函数式编 程正趋于流行、使用量增加的情况下仍然会是这种情况。那些古老的编程模式会完全的消失吗?我不这么认为。以后大家都不用对象了吗?不可能的。我想,那些大 学,特别是声称“提供教育而培训”的大学其实是对学生的一种伤害,他们没有看到当今这个领域的真实情况。不祥之兆不断显现,函数式编程日显重要。但忽略面 向对象编程不会给任何人带来好处。只是我的个人意见,仅供参考,如果想学习更多编程语言教程集合可以登录e良师益友网。
宅男宅女的“冰桶挑战”活动已经开始了http://www.elsyy.com/sale/icebox.html