Linked by snydeq on Mon 25th Oct 2010 21:23 UTC
General Development InfoWorld's Peter Wayner reports on once niche programming languages gaining mind share among enterprise developers for their unique abilities to provide solutions to increasingly common problems. From Python to R to Erlang, each is being increasingly viewed as an essential tool for prototyping on the Web, hacking big data sets, providing quick predictive modeling, powering NoSQL experiments, and unlocking the massive parallelism of today's GPUs.
Thread beginning with comment 447256
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: Dawnfall of OO?
by frytvm on Tue 26th Oct 2010 22:35 UTC in reply to "Dawnfall of OO?"
frytvm
Member since:
2009-11-11

Perhaps the problem isn't so much OOP as its evangelists. There's no problem with everything being an object, so much as being forced to write code in what people consider "proper" OOP style (often in a high-mutation style, where accessors are mandatory even for simple data structures, like linked list items).
There's no reason why OOP can't be used in a functional style (immutable objects) or work nicely with other styles of coding (smalltalk, for example, is a lot more "functional" than python). Languages like F# and Scala show that these approaches don't have to be at odds with fp.
That's not to say that OOP is worthless. http://www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf
is a good essay on the comparison of OOP with more traditional abstraction techniques, although it perhaps requires a bit of functional programming knowledge.

Reply Parent Score: 1

RE[2]: Dawnfall of OO?
by peskanov on Tue 26th Oct 2010 23:44 in reply to "RE: Dawnfall of OO?"
peskanov Member since:
2006-01-15

I never really understood what "everything is an object" means. In fact, I share with Stepanov the opinion that it means nothing at all.
I can understand, however, "everything must be declared inside the scope of a class, and used through instanced objects". And I don't like it. It's unproductive, and push people to produce inefficient, long and brittle code.

If I want (for example) to implement an algorithm which takes a raw data set and produces a quantized result, why should I abstract a class of it? And why should it work only on a few datatypes/classes, which must make explicit reference to it though inheritance?

I would like to see programming languages advancing in that kind of tasks, in order to produce generic code that molds itself to different data instead of the class/inheritance mess.
But please not in the path of the C++ templates; I mean solutions that can be read/used/compiled by humans.

Reply Parent Score: 1

RE[3]: Dawnfall of OO?
by frytvm on Wed 27th Oct 2010 00:07 in reply to "RE[2]: Dawnfall of OO?"
frytvm Member since:
2009-11-11

I view "everything is an object" to mean that everything (or at least most things) is first-class: functions, methods, classes, etc. can all be passed around, and thus used much as "normal" objects. Smalltalk/ruby especially exemplify this, Java not so much (no first-class functions, etc. only reflection hacks)

I agree that not everything needs to be done through instanced objects, etc. However, it's nice to have OOP or something similar (haskell typeclass, etc.) when you do want it.

Inheritance has its ugly parts, especially in Java, but I don't view it as fundamental to OOP (or even classes, really). As Alan Kay said, it's all about the messages; OOP allows an object to be used elegantly without regards to its actual implementation.

Reply Parent Score: 1