The Growing Backlash to Object Oriented Programming

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

THREAD CLOSED
 
Thread Tools Search this Thread Display Modes
Old 06 June 2013   #16
I can,t agree more. Its the difference between practical and efficient. In many cases all you need is practical. I could go into excruciating detail about my complaints against OOP, but in a nutshell while its results may often be efficient, its often impractical, especially for simple requirements. In fairness the article didn't say they weren‘t going to teach it, they just weren't going to offer it to freshmen students.

Perl is the language I use the most for two reasons. Regex and its ease as a functional programming language. Its just insane to think that everything must be OOP and every variable referenced instead of being passed or returned, but i've worked with colleagues who hold this as their unwavering philosophy. I think there's far more to this new idea than meets the eye, and it has nothing to do with elitism. Its just simply practicality.

Joey
 
Old 06 June 2013   #17
Quote: We used to have a now unheard of 6 month development cycle, and all of the sudden it jumped to years. And the teams started getting larger and larger.

What changed?

Um.. what? Agile sprints are now typically happening in 2 weeks intervals. Just look at stuff like ZBrush and Blender and how fast they are being developed.

Also, perhaps the author forgot that software complexity and requirements might have changed since the 80's?

OOP is just a helpful way of organizing ideas, there are plenty of options for other programming approaches out there. Seems like the author needs to put his money where his mouth is and show us how much better other approaches are. Though I suspect if that was true we'd see a lot more functional and aspect-oriented programming.

Sounds like sour grapes to me, and a moot discussion.

Last edited by BrainFreeze : 06 June 2013 at 07:14 AM.
 
Old 06 June 2013   #18
Seriously, it's a bunch of disgruntled people who saw their efforts and CV go shit (those are ALL the historical names of LISP) and think it's because of Bjarne Stroustrup. Why is this even being discussed?

And it piles up the ridiculous like if OOP was mutually exclusive with functional programming when you can perfectly fine craft functional objects for the relevant parts.

For a post meant to illustrate what might go on under the hood it's extremely narrow sighted, the premise on the edge of ridiculous. Quoting Graham, LISP's daddy and someone who makes money out of standardising being an argumentative prick (no, I'm not making it up) seems deliberately provocative.
Forest for the tree.

http://www.youtube.com/watch?v=JBjjnqG0BP8
__________________
Come, Join the Cult http://www.cultofrig.com - Rigging from First Principles

Last edited by ThE_JacO : 06 June 2013 at 12:26 PM.
 
Old 06 June 2013   #19
Originally Posted by BrainFreeze: Um.. what? Agile sprints are now typically happening in 2 weeks intervals. Just look at stuff like ZBrush and Blender and how fast they are being developed.

Also, perhaps the author forgot that software complexity and requirements might have changed since the 80's?

OOP is just a helpful way of organizing ideas, there are plenty of options for other programming approaches out there. Seems like the author needs to put his money where his mouth is and show us how much better other approaches are. Though I suspect if that was true we'd see a lot more functional and aspect-oriented programming.

Sounds like sour grapes to me, and a moot discussion.


Okkay...
My point is mostly directed at development toward the lower end of the spectrum.
i am not talking about AAA games or something that would come from Pixologic or Alias as stated on my first post.


I am talking more about smaller app for smaller shops. And I do hold that OO is just A flavor of development. It should not be the ONLY way to develop apps.
__________________
LW FREE MODELS:FOR REAL Home Anatomy Thread
FXWARS
:Daily Sketch Forum:HCR Modeling
This message does not reflect the opinions of the US Government

 
Old 06 June 2013   #20
Originally Posted by RobertoOrtiz: Okkay...
My point is mostly directed at development toward the lower end of the spectrum.
i am not talking about AAA games or something that would come from Pixologic or Alias as stated on my first post.

I am talking more about smaller app for smaller shops.

Such as?
If anything the small teams you talk about are even more so agile than the bigger companies.
The 6 months cycles you mention as quick in the past would be considered deadly sluggish in a modern VFX RnD Dept (where projects seldom have more than a couple people at a time on them most of the time).

Care to offer an example?

Quote: And I do hold that OO is just A flavor of development. It should not be the ONLY way to develop apps.

You have to understand then that you chose your quotes poorly.
They were all downright putting down OOP as bad, as a method to isolate bad developers and so on.

OOP is also hardly a "flavor" of development. Are you sure you actually did any serious amount of it? It's sort of odd saying "it shouldn't be the only way to develop apps".

Are you taking issue with OOP or with some specific pattern? This is getting more confusing by the post, Roberto.

If you're proposing OOP is abused (I assume in the domain of CGI), what do you propose should become more dominant?
You proposing we all drop C++ and Python and move to Haskell and deal with everything functionally or what? Good luck the moment you need anything outside the strictly mathematical domain
__________________
Come, Join the Cult http://www.cultofrig.com - Rigging from First Principles

Last edited by ThE_JacO : 06 June 2013 at 03:44 PM.
 
Old 06 June 2013   #21
OOP isn't a bad thing, but there are concerns that this and future generations of programmers are not getting enough experience of other kinds of programming besides OOP. The worry is along the lines of there not being enough skill to meet certain programming challenges such as small embedded devices. Although certainly not as great in demand as it was years ago, some still use Assembly and plain old C.

But this is being addressed with projects such as the Raspberry PI project, which was set up to provide the hardware to experiment with Assembly and Python code. Of course, the computer is available for a very affordable price to ensure the majority have access to it.

Personal opinion...OOP is of course vital for medium-to-large scale games, and of course graphics applications, but for very small programs and games it can be a hindrance more than a help. I would prefer to program in C rather than C++ or Java for some personal projects, but in most cases OOP is the way to go. Big projects would be a nightmare without it. I think eliminating OOP from any program of education entirely would be a big mistake.
__________________
Silo, 3D Coat, Blender
C, C++, Java

Currently working on...HCR #42
 
Old 07 July 2013   #22
Originally Posted by ThE_JacO: Seriously, it's a bunch of disgruntled people who saw their efforts and CV go shit ... who makes money out of standardising being an argumentative prick (no, I'm not making it up) seems deliberately provocative.


Wow. You are a gargantuan idiot.

Forest for the tree, ineed.
 
Old 07 July 2013   #23
Originally Posted by mr.bean: Wow. You are a gargantuan idiot.

Forest for the tree, ineed.

Thank you for such a well elaborated upon and presented point.

I respect Graham and am thankful for his contributions to comp-sci and LISP (which is one of the first languages I ever took a class in, and for the record I'm not opposed to functional at all and have dealt with both LISP and Haskell in Topography math classes), and I've followed him for years, but you can find plenty track record of his programming and management classes seminars and discussion both about my statement.

For fun, have a read at this:
http://www.paulgraham.com/disagree.html
Your post is at the very lowest Graham himself rates "disagreement management" (AKA internet arguments). The irony, so thick

If you want to discuss OOP in a CGI forum, and present a ridiculous title such as "the backlash against it" (there's no such thing, surely not a change in trend to identify one), and then choose to bring up quotes from a functional programming fundamentalist (didn't he also resent Stroustrup's repeated mentions of Haskell over LISP somewhere? Ca't find that NG anymore), and a completely out of context CM quote (about comp-sci fundamentals needing to start from, well, fundamentals rather than an infrastructure and versatility oriented model), then I'll call it out.

Do you have something to add other than petty insults?
__________________
Come, Join the Cult http://www.cultofrig.com - Rigging from First Principles
 
Old 07 July 2013   #24
Originally Posted by ThE_JacO: If you're proposing OOP is abused (I assume in the domain of CGI), what do you propose should become more dominant?


Ermmm.. data structures enclosed in curly braces?

Or... Logo ?
__________________
"Your most creative work is pre-production, once the film is in production, demands on time force you to produce rather than create."
My ArtStation
 
Old 07 July 2013   #25
All programming paradigms should be taught to freshmen. In my first year, I was taught Haskell, Java, Pascal and Prolog and even though my daily job is C++ with some Python, having functional programming in the back of my head helps a lot at solving problems in other languages.

Not teaching all paradigms (procedural, functional, OO) to CS students is giving them a bad education. When you're a CS major, you should absolutely learn all the basics and not just the ones that your professor prefers.

They're all just tools, and the more you have in your tool chest, the better.
 
Old 07 July 2013   #26
Originally Posted by mr.bean: Wow. You are a gargantuan idiot.

Forest for the tree, ineed.


This isn't some kiddie Counterstrike forum. Post respectfully or go somewhere else, please.
 
Old 07 July 2013   #27
Yes and No

I agree and disagree at the same time.

Here's why I agree. Functional programming for example has some tremendous advantages that the predominant OOP languages lack. For example, the ability to create functions on like variables on the fly makes for incredibly terse code. Also non-mutability/no side-effects = easily distributed across processors. OOP is not the solution to every problem. I've seen people create classes when a free-standing function or namespace was more appropriate. Alexander Stepanov,
the primary designer and implementer of the C++ standard template library (a man who should be taken seriously) is critical of OOP.

However, I agree because OOP model many real-world problems very well. Also, many OOP langages are actually multipagadigm laguages. C++ for example does not force any style on the programmer (not all variables are references neither are all methods implicitly virtual like Java). C++ template metaprogramming actually permits full functional programming at compile-time. And the number of paradims and styles that the new C++11 supports is growing, auto, lambdas, variadic templates any one?

Let all programming styles be taught. Let a thousand flowers bloom.


Last edited by graphicsRat : 07 July 2013 at 09:52 PM.
 
Old 07 July 2013   #28
It's a matter of thinking.. if one has a more linear approach to solving problems, then procedural programming is probably preferred (or considered old). whereas a modern, holistic (and re-usable) one may prefer the object-oriented methodology.

that's my 2cents.
__________________
-- LinkedIn Profile --
-- Blog --
-- Portfolio --
 
Old 07 July 2013   #29
The optimal scneario is usually not that.
There's frequently enough an optimal choice, and a good programmer is one that has a wide comfort zone and can span across several.

Model, and language if the language is narrowly scoped and the problem a repeated singular occurrence, is usually best chosen isomorphic to the problem.
Going by gut feeling and becoming a one-trick-pony instead of being able to "think" on different channels isn't terribly healthy.

If you're tweaking a billion looped piece of math to align it to SIMD requirements it's very unlikely the optimal path will be highly mutable, heavily and loosely templated objects, chances are functional will be infinitely superior, and if that's the only kind of problem you always end up having to solve, then you might as well pick a language that's isomorphic to it such as Haskell, which is popular in the maths realm for a reason.

If you're writing a widget oriented cross platform framework like the UI part of Qt, you would be patently insane to dismiss OOP.

That's why statements like "OOP is a mechanism to differentiate bad programmers from the good" makes my blood boil, or making it optional in a generic compsci program is extremely short sighted.
The criticism levelled to library availability and tracking even more asinine (yeah, I should TOTALLY re-invent the wheel every time I want a button instead of using Qt, or write my own assembly code and hand craft every possible abstraction narrowly instead of using CUDA).

"When all you have is a hammer all problems will look like a nail".
The great thing C++ and its eco-system did is cater to the whole spectrum, and despite dozens of accomplished and long-term attempts to replace it, nothing has quite yet managed.
__________________
Come, Join the Cult http://www.cultofrig.com - Rigging from First Principles
 
Old 07 July 2013   #30
Originally Posted by ThE_JacO: ...or write my own assembly code..


which is a funny thought, cause when you boil it all down that's what most of it becomes. which is, rather linear.
__________________
-- LinkedIn Profile --
-- Blog --
-- Portfolio --
 
Thread Closed share thread



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
CGSociety
Society of Digital Artists
www.cgsociety.org

Powered by vBulletin
Copyright ©2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump
Miscellaneous

All times are GMT. The time now is 05:05 PM.


Powered by vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.