关于Java和Python之类的混合天堂语言

介绍

这里有两种非常流行的编程范例(是的,重复!):函数式编程和面向对象的编程。 似乎还有另一个正在兴起:面向资源的计算。 我敢肯定还有其他人也出现过。

在最长的时间里,语言倾向于坚持一种或另一种范式,但是最近,一种流行的趋势是将多种范式包含到一种语言中。 具有功能和面向对象元素的Python确实开始流行。 Java刚刚在Lambda中添加,并在1.8更新中传递了功能; 有点早,Scala是作为JVM功能语言开发的,为了使过渡更容易,我保留了一些OO。

虽然有问题

Java世界上最著名的人之一,Robert“ Bob叔叔” Martin在JVM上的一种纯函数语言Clojure上进行了演讲 。 在该演讲的“问答”部分中,有人问鲍勃有关不止一种范例的语言。 他回答说,基本上是说,混合范式语言是个坏主意,因为每种范式都是为了限制程序员能够做某件事以保护它们而设计的。 因此,当您混合使用范式时,它实际上最终会消除这些限制,从而使该语言实际上没有任何范式,因为这些限制实际上并没有重叠。

或不

我是鲍勃的忠实粉丝; 毕竟,他为所有语言的作者写了最有影响力的编程书籍之一,即Clean Code ,但是在这一点上我不得不部分不同意他。 是的,不同的范式确实可以通过使用某些限制来工作,但这就是为什么混合范式如此好主意的原因。 每个范例都使某件事情不可能做,但是有时候,那正是我们为问题提供最佳解决方案所需要的。 或者至少,它们充当一种风格的程序员从一种范例过渡到另一种范例的方式。

我没有大量的函数式编程经验,但是许多人发誓这是解决所有问题的最佳方法。 如果这是事实,那么能够顺利过渡似乎是一个好主意。 如果不是,那么能够同时拥有OO语言和功能语言构造听起来是个好主意! 我并不完全相信功能在所有方面都比OO更好,但是有一天我可能会发现这是不正确的。

仍然有一个小问题

但是,关于混合范例语言的某些问题使我感到烦恼:它们似乎从来没有同时具有两种范例的所有功能。 Java没有模式匹配。 Python没有将事物私有化的能力(尽管有时可以说是最好的)。

我不能确定不可能同时具有这两种范例的全部功能,但是肯定是这样。 但是,我对此没有太多抱怨,因为有些纯OO语言没有完整的OO功能,而纯函数语言则没有完整的功能。 Java没有属性(我希望如此),并且有很多没有模式匹配的功能语言。

奥托罗

无论如何,尽管我承认这不是一个很强的观点,但我的观点是我认为鲍伯叔叔是错的,而且无论如何,至少在一段时间内,混合范例语言是未来的方式。

翻译自: https://www.javacodegeeks.com/2015/01/about-mixed-paradigm-languages-such-as-java-and-python.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值