哪些编程语言的面向对象程度更高(或开发效率更高)?
如果认定了非要“面向对象”的话,开发效率其实是确定了的。 也许前面说了Scala / Smalltalk什么的都是足够的面向对象,但是最后的结果呢?当你用OOAD去解决问题的时候,跟Java的做法还不是一样的。也就是说题主的理解进了一个怪圈:面向对象的程度越高于是开发效率就越高。诸如Ruby / Python这些语言看上去开发效率十分的高,还不是因为他们的语法和语言特性足够灵活而到处都能用DSL简化设计。Java也可以做到嘛,至于像类似Runtime Reflection之类的东西,Java有Spring和AOP呢! 所以我想说的是,做开发就老老实实的做开发。要提升效率而又绑死在一种范式上只会更难受。真非要尝试不可的话,试着去探索一下其他编程范式,看能不能提出来更好的分析问题的思路:像 提到的Erlang,究竟是不是你想要的“面向对象”这个先不说,在Massage Passing和高并发上面,甩一般的面向对象语言几条街是没问题的。
Java 8之前的版本是没有做到把函数作为对象,不过你依然还是可以用匿名类来搞。Java 8也就是多了一个语法糖给你拿来用,还提供了方法引用这种快捷方式而已。