据我所知(我不会承认),目前流行的编程范例是面向对象(Java,C#,Ruby)和功能(F#).作为一个大多数熟悉第一范式的人,我有几个问题:
显然,没有"最好的"语言,但我想知道是否值得投入时间和精力来学习新的范例.提前致谢!
S.L*_*ott 12
"换句话说,一把锤子的所有问题都可以减少到指甲吗?" 是.期.您可能遇到的任何编程语言都将与其他编程语言一样完整.实际上,编程语言的"完整性"的正式定义.
"人们是否需要学习新的范式?" 总是.
实际上有一个技巧可以跟随"范式转变"的起伏.在我职业生涯的最后30年里,我已经看到编程已从相对简单的命令/程序模型发展到许多更丰富的模型,这些模型包括流程和数据之间更好的平衡.
我注意到以下......
部分驱动力是人工智能社区.许多这些"新模型"始于AI知识表示方案.他们在那里获得牵引力,然后他们进入更主流的应用程序.
实体关系模型最初用于知识表示,而不是业务事务.类似地,对象模型用于知识表示.然后模拟人员发现了它.现在我们其他人都拥有它.
这是我的结论.
软件是知识表示.
您对范式或模型或方法或风格的选择基于以下问题的答案:
"我怎样才能最好地代表这个问题?"
如果问题有对象和关系,OO.如果问题有算法和转换,映射,过滤和减少,功能.如果问题是动态的,变化和灵活,动态.如果问题是静态的并且会迅速扩大,静态.
值得学习替代范式(OO,功能,程序,动态等),因为它可以帮助您以不同的方式思考问题.
例如,考虑以线性方式(我使用它的第一种方式)与使用递归来解决树遍历的区别.或Google将Map和Reduce结合起来帮助他们为互联网编制索引.
应用于旧问题的新思维方式可以帮助打破一些最棘手的问题.
一把锤子的所有问题都可以减少到指甲吗?
呃,是的.你可以用一把锤子解决问题.它只是锯掉了一半的门需要更长的时间.
人们是否需要学习新的范例?对于我过去的两份工作,我的工作场所需要Java和C#.是否有专门使用非OO语言的工作场所?
开发人员必须每15到20年左右这样做.
肯定有整个行业的小型公司使用基于程序的VBA编写基于Access的系统.(我想我已经为大多数人工作了).经典的ASP开发人员不得不学习ASP.NET.Perl开发人员正在学习Python.批量驱动开发让位于事件驱动开发.
归档时间: |
|
查看次数: |
1974 次 |
最近记录: |