678 reputation
59
bio website
location California
age 39
visits member for 3 years, 9 months
seen Apr 23 '11 at 14:04

Aug
31
awarded  Good Question
Aug
29
awarded  Good Answer
Dec
31
awarded  Yearling
Dec
31
awarded  Yearling
Apr
12
awarded  Popular Question
Dec
31
awarded  Yearling
Aug
4
awarded  Nice Answer
Apr
5
comment Where does this concept of “favor composition over inheritance” come from?
There you go. My Delphi experience is exactly zero, so I can't speak to that. But the first few "big things" I ever built in Java relied heavily on inheritance and i paid for it later - much harder to adapt later on.
Apr
5
awarded  Commentator
Apr
4
comment Where does this concept of “favor composition over inheritance” come from?
As others have pointed out, it's been around a long time - I'm surprised you're just now hearing of it. It's intuitive to anyone who has been building big systems in languages like Java for any amount of time. It's core to any interview I ever give and when a candidate starts talking about inheritance, I begin to doubt their skill level and amount of experience. Here's a good introduction to why inheritance is a brittle solution (there are many many others): artima.com/lejava/articles/designprinciples4.html
Apr
4
comment Structured programming versus OO programming
Right - that must be why "Favor composition over inheritance" is one of the core ideas of the GoF book among many others. I can't tell you the last time I relied heavily on subclassing and every time I do I feel like there must be a better design. It's a common misconception that subclassing is a core part of the original intent of OOP. It's almost always bad design to build a tree of subclasses. artima.com/lejava/articles/designprinciples4.html
Apr
4
comment Structured programming versus OO programming
In my experience, inheritance is best avoided in OOP. How often do you actually build a superclass as opposed to an Interface? Favor composition as a general rule.
Apr
3
comment Getting Overwhelmed: Tips for noobs
I guess in that case, just pick a place to start. The web is a pretty exciting space - write some services or learn to be do cool things with JQuery. Or pick a language or three and work through Project Euler. No matter what you do, there's nothing like just doing it. Best of luck!
Apr
3
awarded  Nice Answer
Apr
2
answered Getting Overwhelmed: Tips for noobs
Apr
1
answered Arguments in support of organizational transition to Scala development
Jan
25
awarded  Scholar
Jan
25
accepted Introducing Scala to a Technical Manager
Jan
23
awarded  Nice Question
Jan
23
awarded  Student