我们拥有的越来越多的高级编译器,语言和框架要么自动化任务,要么隐藏我们的某些复杂性,它们最终会让我们成为程序员的笨蛋吗?
吉姆C给出了以下计算器的类比:
最近有人用纸和笔提取方根吗?我们使用计算器或简单调用我们最喜欢的编程语言中的函数.我们当中有多少人知道计算器的功能甚至功能?
那么为什么我们都不告诉我们的孩子忘记学习数学,那就是我们的计算器呢?难道这不会让我们的孩子变得笨拙吗?
他们不会让优秀的程序员变得笨拙,他们会让他们更有成效; 但他们让笨蛋人能够编程并认为他们是伟大的程序员.
澄清:我没有一个愚蠢的准确定义.从愚蠢到我的意思是一般的事情,那些不应该真正成为程序员或者应该尝试学习重要事物的人.我见过很多人无法真正编码,只是从这里和那里复制东西.软件质量评估并不容易.他们最终构建了一个糟糕的软件,以某种方式工作(由于存在良好的工具),所以他们不会失去工作,他们认为他们是优秀的程序员,因此,永远不应该尝试学习任何东西.相信我,我在每个优秀的开发人员中都看到过一件事:"他们从不停止学习,他们也不去学习完成工作所需的代码."
这并不意味着IDE很糟糕.我爱他们并认为他们应该尽可能地发展.
我认为他们允许数字程序员,他们不会让数字程序员.
农民是否因为使用自动化机器种植,收获和维护作物而笨拙?
良好的任务自动化只会使程序员更有效,而不是笨拙.
那么为什么我们都不告诉我们的孩子忘记学习数学,那就是我们的计算器呢?难道这不会让我们的孩子变得笨拙吗?
计算器是一种允许您执行某些任务的工具.当然你可以进行复杂的数学和多变量积分,但是如果不学习数学,你怎么知道你需要在给定的时间执行该任务?
编程和SDK也是一样的,你可以使用预定义的代码投入大量的花里胡哨,但是当你需要写一些东西解决问题时,世界上所有的工具和自动化都无法帮到你那里(人工智能不是那么先进;).
在平均,是的.:)
他们不会让我们成为程序员.他们所做的是允许有更多愚蠢的程序员(我想这意味着,平均而言,我们是笨蛋.)拥有更好的工具意味着没有经验和对CS概念的阴暗理解的人仍然可以生成代码最终工作并做一些有用的事情.在汇编时写入是不可能的,但是在写入VB时就是这样.(当然,当一个经验不足的人正在编写大型应用程序,最终在他们糟糕的架构的重压下崩溃时,最终发生WTF式灾难的可能性更大.)
不可否认,"愚蠢"是一个在这里使用的煽动性词语.仅仅因为有人知之甚少并不会使他们变得愚蠢,这只意味着他们缺乏经验.但要明白这一点.
我认为更快的机器会让程序员变得更糟......现在大多数程序员花费很少的时间来编写最佳代码.编译器无法将错误的代码优化为优秀的代码.
快速的机器意味着糟糕的程序员可以摆脱糟糕的代码,因为没有人知道它的坏处.在过去,代码必须经过处理和改进,以便它能够以足够快的速度运行以实际以可接受的方式工作.
托尼
Visual Studio是否会破坏心灵? - Charles Petzold