Discussion:
Object Oriented Programming is an expensive disaster which must end
(too old to reply)
Rich
2014-10-07 10:19:19 UTC
Permalink
http://www.smashcompany.com/technology/object-oriented-programming-is-an-expensive-disaster-which-must-end

The No True Scottsman fallacy leads to arguments like this:

Person A: "No Scottsman ever steals."

Person B: "I know of a Scottsman who stole."

Person A: "No True Scottsman would ever steal."

Person A is thus protected from the harmful effects of new information.
New information is dangerous, as it might cause someone to change their
mind. New information can be rendered safe simply by declaring it to be
invalid. Person A believes all Scottsmen are brave and honorable, and
you can not convince them otherwise, for any counter-example you bring
up is of some degraded Untrue Scottman, which has no bearing on whatever
they think of True Scottsmen. And this is my experience whenever I argue
against Object Oriented Programming (OOP): no matter what evidence I
bring up for consideration, it is dismissed as irrelevant. If I complain
that Java is verbose, I'm told that True OOP Programmers let the IDE
take care of some of the boilerplate, or perhaps I am told that Scala is
better. If I complain that Scala involves too much ceremony, I'm told
that Ruby lacks ceremony. If I complain about the dangers of
monkey-patching in Ruby, I'm told that True OOP Programmers know how to
use the meta-programming to their advantage, and if I can't do it then I
am simply incompetent. I should use a language that is more pure, or a
language that is more practical, I should use a language that has
compile-time static data-type checking, or I should use a language that
gives me the freedom of dynamic typing. If I complain about bugginess,
I'm told that those specific bugs have been fixed in the new version,
why haven't I upgraded, or I'm told there is a common workaround, and
I'm an idiot if I didn't know about it. If I complain that the most
popular framework is bloated, I'm told that no one uses that framework
any more. No True OOP Programmer ever does whatever it is that I'm
complaining about.

...
Marko Rauhamaa
2014-10-07 12:02:50 UTC
Permalink
Post by Rich
http://www.smashcompany.com/technology/object-oriented-programming-is-an-expensive-disaster-which-must-end
Wow, what a rant. I would call it a No True Strawman fallacy.

Yes, WSDL is terrible. Yes, XML is terrible. Yes, Java makes you write
tons of irritating boilerplate. Yes, overengineering and bloated tools
and frameworks abound.

But how does all of that condemn OOP, which is an indispensable way to
organize your thoughts?
Post by Rich
This is exactly what we want: to define our data-type hierarchy
“outside of classes”, which is to say, independent of any functions.
CLOS is the Common Lisp Object System and, as with Clojure (another
Lisp) and Shen (another Lisp) and Haskell, the data-type definitions
are independent of any behavior. This makes them more flexible, and
this facilitates code re-use.
I currently code in Scheme and saw the OOP light when I abandoned its
CLOS clone, GOOPS. In fact, I abandoned the data-type hierarchy
altogether. I want objects, not types. I want behavior, not data.
Post by Rich
[...] Agile Builds Trust with Fast Feedback
I have seen both approaches in action and they work well in practice. On
the other hand, neither protects you from bad or dogmatic
implementation.

But what did this have to do with OOP again?
Post by Rich
OOP is an expensive disaster which must end.
I really have no idea what the article is about. It seems to be some
sort of elitist appeal for Haskell, Erlang, Lisp and the like.

I think Erlang is cool, Haskell is probably as well. I love Lisp
(Scheme, in particular) because it is the answer to Life, Universe and
Everything. But still, my current Scheme project uses OOP to organize
the code.

The problems the article touches upon are real but have more to do with
people's limitations than software development paradigms. Most people
who code for a living aren't very good at seeing the forest for the
trees, aren't very good at abstraction, and don't have a very good
taste.

Instead of concentrating on how badly other people do their work, the
author ("lawrence") should show off his own work so we can learn from
it.


Marko
Tim Streater
2014-10-07 13:00:13 UTC
Permalink
Post by Marko Rauhamaa
Post by Rich
http://www.smashcompany.com/technology/object-oriented-programming-is-an-exp
ensive-disaster-which-must-end
Wow, what a rant. I would call it a No True Strawman fallacy.
Written by someone who doesn't know how to spell "Scotsman".
--
"I am enclosing two tickets to the first night of my new play; bring a
friend.... if you have one." - GB Shaw to Churchill "Cannot possibly
attend first night, will attend second... if there is one." - Winston
Churchill, in response.
Scott Alfter
2014-10-08 19:32:03 UTC
Permalink
Post by Tim Streater
Post by Marko Rauhamaa
Post by Rich
http://www.smashcompany.com/technology/object-oriented-programming-is-an-exp
ensive-disaster-which-must-end
Wow, what a rant. I would call it a No True Strawman fallacy.
Written by someone who doesn't know how to spell "Scotsman".
Exactly. That misspelling was on my last nerve by the second occurrence.
Why should we take what you (the generic "you", that is) write seriously
when you can't even be bothered to make sure your spelling is correct? This
is even more true for someone who codes for a living:

]PRNIT "HELLO"
?SYNTAX ERROR
]

_/_
/ v \ Scott Alfter (remove the obvious to send mail)
(IIGS( http://alfter.us/ Top-posting!
\_^_/ >What's the most annoying thing on Usenet?
Mike Spencer
2014-10-08 07:13:40 UTC
Permalink
Trimming a lot of rant...
Post by Marko Rauhamaa
But how does all of that condemn OOP, which is an indispensable way to
organize your thoughts?
As an entirely avocational programmer, this is the only value I see
to OOP, not indispensible but a valuable cognitive support device,
possibly more or less so depending on an individual's cognitive style.

As a toy example, Towers of Hanoi in C typically requires that you
wrap your head around recursion. In OOP [1] the disks message each
other to get out of the way or to return to on-top-of-me. Tell the
bottom disk to move and recursion happens automagically. Makes more
intuitive sense (Usual caveats: more sense *to me*; YMMV; modulo
whatever etc.)

I liked OO Lisp, thought C++ was a gratuitous can of worms. Have
ignored Java as a consequence.
--
Mike Spencer Nova Scotia, Canada
Loading...