扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共19页)
当我们使用一个工具很长时间以后,我们通常会习惯它,会使用它的方式来思考问题,而不是使用它来帮助物化我们的思维。大多数情况下这不是一件好事。
当我们在大学的时候,我们就被告知要学会面向对象编程(OOP),即使函数式程序设计听起来非常酷,你却从不敢放心的在真实生活中使用。我们被告知动态语言对脚步编程非常适合,不过它太慢一直于不能应用在真实生活中的项目。慢慢的我们开始相信了这些事情。
所有这一切在继续发生,直到几年前我参加了了来自Alexandar Stepanov的培训,我才认识到思维定势是不对的。他被认为称为通用编程之父,也是C++标准模版库(STL)的关键人物之一。比较有意思的是,他在培训中嘲笑了面向对象编程的整个前提-所有一切都是对象。他的观点是计算机技术是由数据应用算法组成的。因此算法应该放在首要位置,它才是编程的关键部分。他建议按照算法来思考问题,而不是按照对象。假若你曾经使用过C++的标准模版库,你可能已经注意到这一点。STL的整体并不是面向对象的。它讨论的是容器应用算法。STL代码看上去更像sort(v.begin(),v.end());而不是像在面向对象系统中所预期的那样:v.sort()。
感兴趣的读者,我强烈建议您看一下这篇文章中他的观点。
面向对象系统常常频繁的使用雇员、雇主、汽车和动物的例子来教给大家。我认为这些例子更适合于企业应用中。假若你在编写一个内核程序或正在写一个测试组件,对象可能没有什么实际意义。
随着我开始认真的使用函数式程序设计和动态语言来编写代码,我使用的它们越多,就越发感觉到它们使用起来是那么自然。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者