<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Object Oriented Programming has Failed Us</title>
	<atom:link href="http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/</link>
	<description>ASP.NET, HTML, CSS, Visual Studio, CSharp, VB.NET and other programming items of interest.</description>
	<pubDate>Sat, 30 Aug 2008 00:46:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
		<item>
		<title>By: Dave</title>
		<link>http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-711</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Tue, 12 Aug 2008 00:42:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-711</guid>
		<description>It's been percolating in my head too.  And by the number of comments on this post, I'd say a lot of other people are thinking about it too.

The schools are not setup to handle something that changes as rapidly as our field.

If you've been around as long as I have (and it sounds like you have) you'll realize that the shift to OOP happened about 17 years ago (or so).  At that time, even if we had the degree/internship program you suggest, about 80% of the programmers we had at the time would have never been able to get the degree we need now.

The problem with schools is that they can only teach things that are relatively static.  If the medical profession changed as rapidly as the programming profession, they'd be in trouble too.

So, the question becomes not just how to deal with the new kids.  But, how do we keep them up to date and able to deal with the new problems, new tools, new ... well you get the idea.</description>
		<content:encoded><![CDATA[<p>It&#8217;s been percolating in my head too.  And by the number of comments on this post, I&#8217;d say a lot of other people are thinking about it too.</p>
<p>The schools are not setup to handle something that changes as rapidly as our field.</p>
<p>If you&#8217;ve been around as long as I have (and it sounds like you have) you&#8217;ll realize that the shift to OOP happened about 17 years ago (or so).  At that time, even if we had the degree/internship program you suggest, about 80% of the programmers we had at the time would have never been able to get the degree we need now.</p>
<p>The problem with schools is that they can only teach things that are relatively static.  If the medical profession changed as rapidly as the programming profession, they&#8217;d be in trouble too.</p>
<p>So, the question becomes not just how to deal with the new kids.  But, how do we keep them up to date and able to deal with the new problems, new tools, new &#8230; well you get the idea.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joel</title>
		<link>http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-710</link>
		<dc:creator>Joel</dc:creator>
		<pubDate>Tue, 12 Aug 2008 00:23:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-710</guid>
		<description>I agree, but how much of the workload right now is caused by having to clean up or maintain existing poorly-written software? As a programming manager myself, I can tell you I love the idea of doing mentorship (and especially the thought of having had mentoring when I was starting out), but I don't really see how the capable programmers would find time for it. I think this may be the case more in the small-and-medium-business market more so than the enterprise, where there's enough of an infrastructure in place to ensure some level of quality. Poor hiring decisions can be a detrimental problem for smaller shops, though, and there's WAY more small businesses than Fortune 500 companies. Continuing to introduce more programmers who will never understand programming ultimately ends up really creating more work for the competent programmers.

The way things stand right now, the only way to really tell good developers from bad ones is basically to see what kind of code they produce. Some quick web searches on tips for hiring programmers can show you what a problem it is to identify decent programmers, even for managers with programming experience themselves, much less when the hiring is being done by a business manager with little or no programming experience. Having a degree and being able to answer a few questions from memory such as implementing a quicksort algorithm or quoting the definition of polymorphism just isn't a good indicator--I may not be able to quote the 4 advantages of polymorphism word for word, but that's because I'm busy using it. I worked with someone who loved to quote theories, and memorized things other people would say, and would talk all day about design principles. But when it came to implementing them, or choosing the right approach to a particular problem, he's one of the worst programmers I've ever worked with. He's a really nice guy, and he's not dumb by any means, but he's just never going to make it as a system architect. All too often, though, someone like that gets moved up into a position where they're responsible for making those design decisions, or hired into a position like that because they can "talk the talk".

Computer programming seems to be one of the few skilled fields where a degree isn't necessarily even a requirement, much less a related degree (I know I can name programmers whose degrees are in things ranging from communications to art to mechanical engineering), and you're basically hired based on previous work experience. The education system seems to take the approach of, "Well, we can't possibly teach everything, and most wouldn't really get it anyways, so we'll teach some theory, make the actual programming courses electives, and let them pick up the actual skills on the job once they're hired." And from everything I've seen, the only real value in the workplace for a graduate degree is an MBA, which isn't going to help anyone become a better programmer.

Have we reached the point where schools and employers need to recognize that there needs to be more specialization, both in available graduate degree programs and in hiring practices? Going back to the example of doctors, your undergrad is most likely in biology, or something of that nature, then you go to medschool to become a surgeon, or a vet, or a dentist. A 4-year program just can't cover everything. Neither is 4 years sufficient to cover the general education requirements, and go into detail about operating systems theory, and microprocessor architecture, and database theory, and system architecture, and software engineering methodologies; neither does anybody need to go into great detail in all those areas. You're at best going to have a class in each, if you know enough at age 20 to take the right electives. It seems like there need to be more graduate programs specializing in those specific areas, instead of giving you a generic degree and expecting you to pick up what you need on your own in the workplace. This would allow employers to match candidates' interests and education more closely with their needs. The end result should be higher-quality, more maintainable software across the industry with (hopefully!) fewer bugs, and less time spent maintaining inept code written by poor design.

That doesn't solve the immediate need for more programming resources, but long term, I think something along these lines fits best into our free-market economy. The best and the brightest generally are attracted to more prestigious, higher-paying jobs. Right now, you pretty much have to server your time as an entry-level programmer so you can learn how to write code before you can be considered for any higher-level position. Having a greater degree of specialization across the industry may encourage more brilliant young minds to pursue careers in software development without the fear of losing jobs overseas or having to work at the same entry-level job for several years alongside programmers who just don't get it. These more specialized positions would then need to pay accordingly, but it wouldn't be as big of a business risk if you knew you were going to get good results. Under the current system, I think that is a real problem--in essence, the salaries of those who are the best producers aren't as high as they could/should be, if not for subsidizing the risk of the salaries of those who are less competent, since it's just too hard to identify up front when the hiring decision is being made.

So, I've gone on probably way too long on this topic... but it's a topic that's been percolating in my head over the past several years as I've progressed in my career and tried to observe our industry. Maybe it's time for me to get my own blog... I wonder if joelonsoftware.com is taken?</description>
		<content:encoded><![CDATA[<p>I agree, but how much of the workload right now is caused by having to clean up or maintain existing poorly-written software? As a programming manager myself, I can tell you I love the idea of doing mentorship (and especially the thought of having had mentoring when I was starting out), but I don&#8217;t really see how the capable programmers would find time for it. I think this may be the case more in the small-and-medium-business market more so than the enterprise, where there&#8217;s enough of an infrastructure in place to ensure some level of quality. Poor hiring decisions can be a detrimental problem for smaller shops, though, and there&#8217;s WAY more small businesses than Fortune 500 companies. Continuing to introduce more programmers who will never understand programming ultimately ends up really creating more work for the competent programmers.</p>
<p>The way things stand right now, the only way to really tell good developers from bad ones is basically to see what kind of code they produce. Some quick web searches on tips for hiring programmers can show you what a problem it is to identify decent programmers, even for managers with programming experience themselves, much less when the hiring is being done by a business manager with little or no programming experience. Having a degree and being able to answer a few questions from memory such as implementing a quicksort algorithm or quoting the definition of polymorphism just isn&#8217;t a good indicator&#8211;I may not be able to quote the 4 advantages of polymorphism word for word, but that&#8217;s because I&#8217;m busy using it. I worked with someone who loved to quote theories, and memorized things other people would say, and would talk all day about design principles. But when it came to implementing them, or choosing the right approach to a particular problem, he&#8217;s one of the worst programmers I&#8217;ve ever worked with. He&#8217;s a really nice guy, and he&#8217;s not dumb by any means, but he&#8217;s just never going to make it as a system architect. All too often, though, someone like that gets moved up into a position where they&#8217;re responsible for making those design decisions, or hired into a position like that because they can &#8220;talk the talk&#8221;.</p>
<p>Computer programming seems to be one of the few skilled fields where a degree isn&#8217;t necessarily even a requirement, much less a related degree (I know I can name programmers whose degrees are in things ranging from communications to art to mechanical engineering), and you&#8217;re basically hired based on previous work experience. The education system seems to take the approach of, &#8220;Well, we can&#8217;t possibly teach everything, and most wouldn&#8217;t really get it anyways, so we&#8217;ll teach some theory, make the actual programming courses electives, and let them pick up the actual skills on the job once they&#8217;re hired.&#8221; And from everything I&#8217;ve seen, the only real value in the workplace for a graduate degree is an MBA, which isn&#8217;t going to help anyone become a better programmer.</p>
<p>Have we reached the point where schools and employers need to recognize that there needs to be more specialization, both in available graduate degree programs and in hiring practices? Going back to the example of doctors, your undergrad is most likely in biology, or something of that nature, then you go to medschool to become a surgeon, or a vet, or a dentist. A 4-year program just can&#8217;t cover everything. Neither is 4 years sufficient to cover the general education requirements, and go into detail about operating systems theory, and microprocessor architecture, and database theory, and system architecture, and software engineering methodologies; neither does anybody need to go into great detail in all those areas. You&#8217;re at best going to have a class in each, if you know enough at age 20 to take the right electives. It seems like there need to be more graduate programs specializing in those specific areas, instead of giving you a generic degree and expecting you to pick up what you need on your own in the workplace. This would allow employers to match candidates&#8217; interests and education more closely with their needs. The end result should be higher-quality, more maintainable software across the industry with (hopefully!) fewer bugs, and less time spent maintaining inept code written by poor design.</p>
<p>That doesn&#8217;t solve the immediate need for more programming resources, but long term, I think something along these lines fits best into our free-market economy. The best and the brightest generally are attracted to more prestigious, higher-paying jobs. Right now, you pretty much have to server your time as an entry-level programmer so you can learn how to write code before you can be considered for any higher-level position. Having a greater degree of specialization across the industry may encourage more brilliant young minds to pursue careers in software development without the fear of losing jobs overseas or having to work at the same entry-level job for several years alongside programmers who just don&#8217;t get it. These more specialized positions would then need to pay accordingly, but it wouldn&#8217;t be as big of a business risk if you knew you were going to get good results. Under the current system, I think that is a real problem&#8211;in essence, the salaries of those who are the best producers aren&#8217;t as high as they could/should be, if not for subsidizing the risk of the salaries of those who are less competent, since it&#8217;s just too hard to identify up front when the hiring decision is being made.</p>
<p>So, I&#8217;ve gone on probably way too long on this topic&#8230; but it&#8217;s a topic that&#8217;s been percolating in my head over the past several years as I&#8217;ve progressed in my career and tried to observe our industry. Maybe it&#8217;s time for me to get my own blog&#8230; I wonder if joelonsoftware.com is taken?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave</title>
		<link>http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-705</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Mon, 11 Aug 2008 21:09:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-705</guid>
		<description>Joel,

you have a point.  The only problem is, there aren't enough programmers available for all the work we have available.

I still maintain that some sort of internship is what we need today.  This gives the programmers the extra training they need without significantly reducing the work force in the process.

There are no easy answers.  Obviously.  I think we all agree there is a problem.  What I fail to see consensus on so far is the solution.  They all seem to have some short coming.</description>
		<content:encoded><![CDATA[<p>Joel,</p>
<p>you have a point.  The only problem is, there aren&#8217;t enough programmers available for all the work we have available.</p>
<p>I still maintain that some sort of internship is what we need today.  This gives the programmers the extra training they need without significantly reducing the work force in the process.</p>
<p>There are no easy answers.  Obviously.  I think we all agree there is a problem.  What I fail to see consensus on so far is the solution.  They all seem to have some short coming.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joel</title>
		<link>http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-704</link>
		<dc:creator>Joel</dc:creator>
		<pubDate>Mon, 11 Aug 2008 20:51:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-704</guid>
		<description>Maybe it's time that the education field for Computer Science/Engineering gets an overhaul. If you think about it, programmers have the potential to make incomes at the same level as a doctor or lawyer, but with a 4-year degree instead of 8-10 years of intense school. Most programmers who go back for advanced degrees either do so because they want to take part in research, or else go back for an MBA and end up going more of the business/management route. What if in-depth OOP was to become the domain of strictly graduate-level programs resulting in an advanced degree? It would add value to graduate-level CS/E degrees, and also help to make a distinction between the programmers who have the capability to understand OOP and those who don't. Those who have the capability to go on and successfully complete the advanced degrees would be responsible for the architecture and engineering, and those who don't would get tasked with the mundane programming tasks, or move on to some other field.

Medschool is intense, but it serves a purpose: it shows who can cut it, and who can't. You wouldn't want a doctor performing your open heart surgery who just doesn't quite grasp the basic principles of anatomy. Graduating from medschool and earning your MD (or whatever other advanced degree) shows that you have the knowledge and ability to perform your job correctly. In a world that is now so dependent on computers, shouldn't we have some way to identify the capable programmers before they get hired to work on business-critical software? So why are we talking about dumbing down the field of programming to accommodate the general public, when what we really need is some way to distinguish those who "get it" from those who don't? There's a great article here, titled "Separating Programming Sheep from Non-Programming Goats" http://www.codinghorror.com/blog/archives/000635.html where a study was done on incoming freshman in a CS program. It mentions further research, which I don't know what the status of that is, but their initial results seem to indicate that for some people thinking in programming structures comes naturally, and for other people it will just never make sense, regardless of how they are educated. It's not necessarily an issue of education or the wrong technology or programming paradigm; some people's brains are physiologically not a match for programming, no matter how much they want to be programmers (and I'm sure we've all worked with or known someone in that category). And I'm definitely not trying to imply that good programmers are somehow superior and non-programmers are somehow lesser beings, it's just part of what makes us all unique individuals. I love to play basketball, but I wasn't born 6'10" and I'm not staking my career on trying out for the NBA!</description>
		<content:encoded><![CDATA[<p>Maybe it&#8217;s time that the education field for Computer Science/Engineering gets an overhaul. If you think about it, programmers have the potential to make incomes at the same level as a doctor or lawyer, but with a 4-year degree instead of 8-10 years of intense school. Most programmers who go back for advanced degrees either do so because they want to take part in research, or else go back for an MBA and end up going more of the business/management route. What if in-depth OOP was to become the domain of strictly graduate-level programs resulting in an advanced degree? It would add value to graduate-level CS/E degrees, and also help to make a distinction between the programmers who have the capability to understand OOP and those who don&#8217;t. Those who have the capability to go on and successfully complete the advanced degrees would be responsible for the architecture and engineering, and those who don&#8217;t would get tasked with the mundane programming tasks, or move on to some other field.</p>
<p>Medschool is intense, but it serves a purpose: it shows who can cut it, and who can&#8217;t. You wouldn&#8217;t want a doctor performing your open heart surgery who just doesn&#8217;t quite grasp the basic principles of anatomy. Graduating from medschool and earning your MD (or whatever other advanced degree) shows that you have the knowledge and ability to perform your job correctly. In a world that is now so dependent on computers, shouldn&#8217;t we have some way to identify the capable programmers before they get hired to work on business-critical software? So why are we talking about dumbing down the field of programming to accommodate the general public, when what we really need is some way to distinguish those who &#8220;get it&#8221; from those who don&#8217;t? There&#8217;s a great article here, titled &#8220;Separating Programming Sheep from Non-Programming Goats&#8221; <a href="http://www.codinghorror.com/blog/archives/000635.html" >http://www.codinghorror.com/blog/archives/000635.html</a> where a study was done on incoming freshman in a CS program. It mentions further research, which I don&#8217;t know what the status of that is, but their initial results seem to indicate that for some people thinking in programming structures comes naturally, and for other people it will just never make sense, regardless of how they are educated. It&#8217;s not necessarily an issue of education or the wrong technology or programming paradigm; some people&#8217;s brains are physiologically not a match for programming, no matter how much they want to be programmers (and I&#8217;m sure we&#8217;ve all worked with or known someone in that category). And I&#8217;m definitely not trying to imply that good programmers are somehow superior and non-programmers are somehow lesser beings, it&#8217;s just part of what makes us all unique individuals. I love to play basketball, but I wasn&#8217;t born 6&#8242;10&#8243; and I&#8217;m not staking my career on trying out for the NBA!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Technology is Moving Too Fast For College</title>
		<link>http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-572</link>
		<dc:creator>Technology is Moving Too Fast For College</dc:creator>
		<pubDate>Wed, 11 Jun 2008 14:34:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-572</guid>
		<description>[...] about this problem in the narrower field of computers and programming for a while now.&#160; See &#8220;Object Oriented Programming Has Failed Us&#8221; and &#8220;Do Programmers Need a Degree&#8221; for some of my more recent rants on the [...]</description>
		<content:encoded><![CDATA[<p>[...] about this problem in the narrower field of computers and programming for a while now.&nbsp; See &#8220;Object Oriented Programming Has Failed Us&#8221; and &#8220;Do Programmers Need a Degree&#8221; for some of my more recent rants on the [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave</title>
		<link>http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-569</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Sun, 08 Jun 2008 13:12:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-569</guid>
		<description>Regev,

I never understood what the problem was either until I started teaching it.  Then it became painfully clear.

I think most people "get" private vs public, but have trouble understanding protected.

I think they basically understand Properties and Methods, but have trouble understanding why you'd use a Property instead of just a member function.

I think they have trouble understanding why and when you'd use a shared function or a shared variable (static in most OOP languages I'm familiar with)

But, the number one most difficult concept to understand in OOP is polymorphism.  This is unfortunate, because polymorphism is what really makes OOP worth learning at all.</description>
		<content:encoded><![CDATA[<p>Regev,</p>
<p>I never understood what the problem was either until I started teaching it.  Then it became painfully clear.</p>
<p>I think most people &#8220;get&#8221; private vs public, but have trouble understanding protected.</p>
<p>I think they basically understand Properties and Methods, but have trouble understanding why you&#8217;d use a Property instead of just a member function.</p>
<p>I think they have trouble understanding why and when you&#8217;d use a shared function or a shared variable (static in most OOP languages I&#8217;m familiar with)</p>
<p>But, the number one most difficult concept to understand in OOP is polymorphism.  This is unfortunate, because polymorphism is what really makes OOP worth learning at all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Regev Porat</title>
		<link>http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-568</link>
		<dc:creator>Regev Porat</dc:creator>
		<pubDate>Sun, 08 Jun 2008 11:40:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-568</guid>
		<description>I guess I was never clever enough to understand what is so damn difficult about OOP? Inheritance? Abstract classes? Virtual methods? Private vs. public?    Beats me</description>
		<content:encoded><![CDATA[<p>I guess I was never clever enough to understand what is so damn difficult about OOP? Inheritance? Abstract classes? Virtual methods? Private vs. public?    Beats me</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Warden</title>
		<link>http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-566</link>
		<dc:creator>Warden</dc:creator>
		<pubDate>Fri, 06 Jun 2008 18:48:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-566</guid>
		<description>I believe OOP is not failing us. It's purpose is not to make mediocre programmers into superior programmers. It's a methodology FOR superior programmers to let them take their work farther. Also, our educational institutions are largely way behind. Having interviewed many, many college graduates with CS degrees I find myself very disappointed in the level of knowledge they come away with when they purchase a degree.</description>
		<content:encoded><![CDATA[<p>I believe OOP is not failing us. It&#8217;s purpose is not to make mediocre programmers into superior programmers. It&#8217;s a methodology FOR superior programmers to let them take their work farther. Also, our educational institutions are largely way behind. Having interviewed many, many college graduates with CS degrees I find myself very disappointed in the level of knowledge they come away with when they purchase a degree.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: aradlein</title>
		<link>http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-552</link>
		<dc:creator>aradlein</dc:creator>
		<pubDate>Tue, 03 Jun 2008 20:43:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-552</guid>
		<description>hmmmm that is an interesting point of view, I think that perhaps your article has been taken out of context a bit and warped ( possibly myself being a guilty party hah ).  Because I definetely understand what you're saying in the teaching example...I have been a development manager, and own my own company now, and I have gone through interviews where 90% of the developers couldn't answer questions like what polymorphism was.  It in no way spoke of there development potential though, because under it all they still understood the basic concept of what OO design was.  At the same time though I feel it's a potentially disasterous scenario where everything is done procedurally, i've walked into company's and seen what entirely procedural code ( but in this case they were just bad coders ) can look like..and it was a disaster in terms of maintainability.  So I think we are both on the same page, perhaps procedural is the right solution in some cases, but I in no way feel that people should be allowed to run willy nilly and ignorant of OO as a good coding practice.

Perhaps you're right thoug, in that some sort of standardized approach to moving through procedural and OO design practice is necessary, especially to bring developers up to a new level.</description>
		<content:encoded><![CDATA[<p>hmmmm that is an interesting point of view, I think that perhaps your article has been taken out of context a bit and warped ( possibly myself being a guilty party hah ).  Because I definetely understand what you&#8217;re saying in the teaching example&#8230;I have been a development manager, and own my own company now, and I have gone through interviews where 90% of the developers couldn&#8217;t answer questions like what polymorphism was.  It in no way spoke of there development potential though, because under it all they still understood the basic concept of what OO design was.  At the same time though I feel it&#8217;s a potentially disasterous scenario where everything is done procedurally, i&#8217;ve walked into company&#8217;s and seen what entirely procedural code ( but in this case they were just bad coders ) can look like..and it was a disaster in terms of maintainability.  So I think we are both on the same page, perhaps procedural is the right solution in some cases, but I in no way feel that people should be allowed to run willy nilly and ignorant of OO as a good coding practice.</p>
<p>Perhaps you&#8217;re right thoug, in that some sort of standardized approach to moving through procedural and OO design practice is necessary, especially to bring developers up to a new level.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave</title>
		<link>http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-551</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Tue, 03 Jun 2008 20:12:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dmbcllc.com/2008/05/13/object-oriented-programming-has-failed-us/#comment-551</guid>
		<description>Aradlein,

As a programmer, I completely understand, and even slightly agree with you.  As a business owner, program manager, and teacher I maintain that OOP has made things harder, in a lot of cases, than it needs to be.

Once people truely understand OOP, yes, it does in fact make life easier as a programmer.

Interesting story for you from the "teaching" side of things.

A room full of what both of us would consider senior level programmers working for some major companies in Hartford who would all claim they understand OOP were asked to explain polymorphism.  What does it do? why do we need it? what problem does it solve?  As is typical when he ask this question to other programmers, no one was able to explain it fully.

I've had similar experiences.

As a business owner, this is a problem because if you don't fully understand polymorphism, you are just as likely to write duplicate code using OOP as you are with procedural methods.

What I'm asking for ultimately IS a progression.  I really don't think either OOP or Procedural is THE answer.  Maybe declaritive?  I don't know.  What I do know is that expecting peole with little or no real world experience to walk into a job and start writing good, maintainable OO code, in any language, is naive, costly, and possibly dangerous to the survival of the code base.

To go back to your doctor analogy.  There is quite a bit of training that goes into making a doctor.  They don't graduate with a degree, even a doctorate, and start practicing medicine on their own right away.  They have to go through internships, and are gradually allowed to do their own work.  At least that's the way it works here.  I don't think it is unreasonable to apply some similar type of practice to our field.</description>
		<content:encoded><![CDATA[<p>Aradlein,</p>
<p>As a programmer, I completely understand, and even slightly agree with you.  As a business owner, program manager, and teacher I maintain that OOP has made things harder, in a lot of cases, than it needs to be.</p>
<p>Once people truely understand OOP, yes, it does in fact make life easier as a programmer.</p>
<p>Interesting story for you from the &#8220;teaching&#8221; side of things.</p>
<p>A room full of what both of us would consider senior level programmers working for some major companies in Hartford who would all claim they understand OOP were asked to explain polymorphism.  What does it do? why do we need it? what problem does it solve?  As is typical when he ask this question to other programmers, no one was able to explain it fully.</p>
<p>I&#8217;ve had similar experiences.</p>
<p>As a business owner, this is a problem because if you don&#8217;t fully understand polymorphism, you are just as likely to write duplicate code using OOP as you are with procedural methods.</p>
<p>What I&#8217;m asking for ultimately IS a progression.  I really don&#8217;t think either OOP or Procedural is THE answer.  Maybe declaritive?  I don&#8217;t know.  What I do know is that expecting peole with little or no real world experience to walk into a job and start writing good, maintainable OO code, in any language, is naive, costly, and possibly dangerous to the survival of the code base.</p>
<p>To go back to your doctor analogy.  There is quite a bit of training that goes into making a doctor.  They don&#8217;t graduate with a degree, even a doctorate, and start practicing medicine on their own right away.  They have to go through internships, and are gradually allowed to do their own work.  At least that&#8217;s the way it works here.  I don&#8217;t think it is unreasonable to apply some similar type of practice to our field.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
