On Tuesday, 12 November 2013 at 12:19:56 UTC, Paulo Pinto wrote:
On Tuesday, 12 November 2013 at 11:27:51 UTC, Jonathan M Davis wrote:
On Tuesday, November 12, 2013 12:09:23 =?UTF-8?B?Ikx1w61z?=.Marques
<[email protected]>@puremagic.com wrote:
I think you will be pleased with the argument, given D's
philosophy:

    https://yinwang0.wordpress.com/2013/11/09/oop-fp/

Yeah. Both OO and functional programming are useful, but trying to use any one paradigm exclusively always ends up contorting things. To make this clean, you really need to be able to mix and match paradigms as appropriate.

On a related note, a classic blog post that I quite like on how Java takes OO
too far is

http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html

If Java takes OO too far, what to say about Smalltalk and derivatives?

Well, Smalltalk and friends are truly Object oriented, as opposed to C++/Java/D etc which are Class oriented. So it is a little different.

But something I've been wondering for years - is there a solid rebuttal anywhere to Stepanov's criticism of OOP? He takes the extreme position that (class oriented) OOP is useless. Surely that can't be right, but...

It's trivial to find good procedural code. It's trivial to find good generic code. It's trivial to find good functional code. But finding top-quality OOP code is extremely difficult. Eg, the code in the GoF Design Patterns book is widely criticised.

I just can't escape the feeling that class-based runtime polyphorphism is almost never an ideal solution, and that most of the benefits and success of OOP languages comes from things other than OOP itself. And I think it's because OOP is philosophically nonsense -- in the real world, similarities between things are everywhere, but almost none of them are is-A relationships.



The balanced approach that C++ and D take is definitely the better one IMHO (and D tends to do it better IMHO, since it better supports functional programming than C++ does, meaning that you end up with fewer FP solutions in
C++ even when they'd be appropriate).

- Jonathan M Davis


The future belongs to multi-paradigm languages, I would say.

What I miss still in languages like D, is the Hindley–Milner type inference,
algebraic data types and pattern matching.

--
Paulo

Reply via email to