“或者换句话说,所有的问题都可以用一个锤子的钉子来解决吗?”对。时期。您可能遇到的任何编程语言都和其他语言一样完整。对于编程语言,实际上有一个“完整性”的正式定义。
“人们是否需要学习新的范式?”总是。
实际上有一个技巧可以跟踪“范式转换”的起伏。在我职业生涯的最后30年里,我看到编程已经从一个相对简单的命令式/过程式模型发展到许多更丰富的模型,其中包括更好地平衡流程和数据。
我注意到以下几点…
驱动力的一部分是人工智能社区。这些“新模式”中的许多都是从人工智能知识表示方案开始的。他们在那里获得了吸引力,然后逐渐进入更主流的应用程序。
实体关系模型最初用于知识表示,而不是业务事务。同样,对象模型也用于知识表示。然后模拟人员找到了它。现在我们其他人都有了。
这是我的结论。
软件是知识表示。
您对范例、模型、方法或样式的选择基于对以下问题的回答:
“我如何才能最好地表示这个问题?”
如果问题有对象和关系,OO。如果问题有算法和转换,映射,过滤和减少,功能。如果问题是动态的、变化的、灵活的、动态的。如果问题是静态的,并且会迅速扩大,静态的。