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   #1
The Growing Backlash to Object Oriented Programming

Rob note: We rarely talk about what under the hood of what we do… I think this is a topic that would interest a lot of you. The thing to consider that most modern games would not be possible without OO, BUT in my humble opinion it should not be used for ALL development.


"The problem with object-oriented languages is they've got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle."

Joe Armstrong



Recently I have noted a trend that there seems to be a growing backlash against Object Oriented Programing Languages.


"Object-oriented programming (OOP) is a programming paradigm that represents concepts as "objects" that have data fields (attributes that describe the object) and associated procedures known as methods. Objects, which are usually instances of classes, are used to interact with one another to design applications and computer programs.[1][2] Objective-C and Java are examples of object-oriented programming languages."

http://en.wikipedia.org/wiki/Object...ted_programming

For a lot older developers (like me) we feel like things changed for the worst in the programming world after the mid 90's. Applications that were developed by small teams in a very short amount of times, all of the sudden started taking longer to develop and maintain.

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?

Object Oriented programming took over the programing world almost like a cult.


Paul Graham has suggested that the purpose of OOP is to act as a "herding mechanism" that keeps mediocre programmers in mediocre organizations from "doing too much damage". This is at the expense of slowing down productive programmers who know how to use more powerful and more compact techniques

And more recently (in 2011) Object Oriented Programming was eliminated from the Carnegie Mellon University Computer Science Introductory Curriculum

Professors Robert Harper and Dan Licata, Professors of Computer Science at Carnegie Mellon University, explained in a a blog why they decided to "eliminate entirely" OOP from the introductory curriculum.


“it is both anti-modular and anti-parallel by its very nature, and hence unsuitable for a modern CS curriculum. A proposed new course on object-oriented design methodology will be offered at the sophomore level for those students who wish to study this topic.”


Instead they are teaching "Functional programming "(link)


Rob note:
The point I am making is that there are alternatives . There is no way you could do a AAA game without OO.
__________________
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


Last edited by RobertoOrtiz : 06 June 2013 at 05:02 PM.
 
Old 06 June 2013   #2
That sounds like some sort of weird elitist coder rant.
__________________
[Invivo Animation Reel]
 
Old 06 June 2013   #3
Where the hell does that come from ?
As a programmer who started back in the early 80's coding Basic and Assembler, over to Pascal in technical college and self-thought C the hardcore way ( reading my Kernighan&Ritchie over and over again like the bible or some thrilling story ) and coding on my Amiga, doing the same when Stroustrup came along ( OO already ) and on university, and now with C#, i can only say this is total BS.
Nothing beats the elegance and logic of good OO design. There are situations in game coding where things are better organized in a bit different way than the standard OO inheritance route ( component composition ), but i totally can't agree with the message of this post

Needless to say that coding paradigms are defended by some people as if they were religious issues. I'm not one of them, i'm a pragmatic. Maybe religion-like sticking to or hoping for THE ONE AND ONLY methology tend to produce such absolutistic opinions....


@DanHibiki:
exactly, emphasis being on "weird"
__________________

PowerPreview: High Quality Nitrous Previews for 3ds Max 2012|2013|2014

[ Free Download (ScriptSpot) ]

Home of The Frogs | Online Portfolio

Last edited by spacefrog : 06 June 2013 at 06:26 PM.
 
Old 06 June 2013   #4
A backlash? What? So some well-marketed university realized they've made a hop, skip and a jump from a stallion's back to a mule's a while ago - this doesn't constute a backlash as far as I can tell.

Any university still worth their while teaches plain old C at the introductory level, or at least gives you the option to choose so.
 
Old 06 June 2013   #5
Actuary y it opposite of elitist.


It is the idea of having a choice in terms of the style of code you develop.
As in that OO is not the only way to do code.


Ok scom background
Well I have a Bachelors degree in Comp sci degree, and I have been coding since the early 80's.
I have coded in everything from Cobol, Pascal, VB, C, C#, VB script, Action Script, Flex and Javascript.
And then as in now I feel strongly that OO is too abstract for ceratin basic tasks.


Not all apps need to be quantified into incredivbly tiny objects and classes. Some times I just want to write
"hello world" on the screen with having to declare an event listener, and having to track down the right library.

here is a test/
Get a designer whith no background in computers, and have them do a simple hello world in Flex or C#.

__________________
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


Last edited by RobertoOrtiz : 06 June 2013 at 07:05 PM.
 
Old 06 June 2013   #6
that's why god invented python
__________________
"When sales determine status, I hold no faith in the majority" -El P

Draenei:Thread
Troll:Thread
 
Old 06 June 2013   #7
Originally Posted by TheIvIaxx: that's why god invented python

I do love Python...
__________________
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   #8
From a purely educational perspective I do believe that functional programming can offer a better introduction to many important concepts in computer science, in a clearer and more concise manner, than OOP. However, it is absurd to think that OOP will just disappear or that it offers no tangible advantages, it maps very well to a large number of problems in the real world.
 
Old 06 June 2013   #9
I do like C++ 11 now that it offers you some great choices:

functional programming (lambdas)
generic programming (templates with the latest addition of variadic templates)
+ OO programming
+ procedural programming


No need to be so strict and use just one paradigm or the other. I say learn to use each for what they are best for.

I'm just waiting for more tools support for C++ 11 to catch up.

Jules
 
Old 06 June 2013   #10
OK, I think I see the problem, allow me to demonstrate :

Functional coding example :

#include <iostream>
 using namespace std;
 
 int main()
 {
   cout<<"Have a banana!";
   return 0;
 }


OOP approach to doing the same thing :

#include <iostream>
 using namespace std;
 
 int main()
 {
   cout<<"Have a banana!";
   return 0;
 }


I believe that once those old school coders having cognitive dissonance at the world beyond basic C can grasp this then we can all move on. Pick the right tool for the right job. Competent coding is competent coding, OOP is just a design model that you can and should make use of where you need it just like any other tool. You don't randomly make use of SQL databases where they're not necessary, so why do the same with OOP? There's nothing saying you have to use it in the languages that support it, they all support function based or even linear coding too, how you approach a task is up to you.

BTW previous poster - anonymous functions are objects. Functional programming model would eschew such objects (or even function pointers) and instead might use a conditional approach.
__________________
The Third Party | Homepage | My Reel
"You need to know what you're doing before you start, and to start because you need what you're doing."
 
Old 06 June 2013   #11
Yeah, I mean I remember when OOP was first being introduced and one of the concepts in it was that you could use more traditional methods to "make your own objects".

That was the genius of it because it encouraged re-use and everything was more organized.

It's true that maybe people who rely on just hand-me-downs and inheriting objects are less efficient than the ones who made the original structures or who know exactly how they work.

But I'd hardly see OOP as a kind of obstacle.
__________________
"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 06 June 2013   #12
I've been programming since the mid 70's when the high school course was called Data Processing. I learned Cobol, FORTRAN IV and assembler; I learned how to debug my code. That said, I believe OOP is just an improvement in the arena of programming just as 30 years from now OOP will be looked at like one does Cobol today. How quaint.
__________________
MALA IPSA NOVA
 
Old 06 June 2013   #13
Riiiiight...
Weird-arse thread to have in GD of the week. Beside being mostly a crock of non-sense.

The backlash about OOP is the equivalent of the world's backlash against smartphones because the Amish haven't adopted them
__________________
Come, Join the Cult http://www.cultofrig.com - Rigging from First Principles
 
Old 06 June 2013   #14
"most modern games would not be possible without OO"

So given the above line, it's hard to put a lot of merit on the rest of the post. It is true that OOP can be over-used and/or used when not needed at all. But these abstractions also allows us to keep track of huge code-bases that without OOP would be gigantic masses of code that only the original creators would be able to understand. Not to mention maintenance and extensibility.
 
Old 06 June 2013   #15
Mothers against OOP!
 
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 10:43 PM.


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