DevPinoy.org
A Filipino Developers Community
   
Languages make design patterns necessary

In light of observations made here and there, it is becoming clear to me that language limitations play a big part in making design patterns necessary. Or unnecessary. In other words, language deficiencies make it necessary to introduce complexity into code.

In fact it was the master who told me that in some programming languages, design patterns are not necessary. They are simply idioms. Last week I attended a brown bag session here in the office about Aspect Oriented Programming (AOP). Throughout that time I kept thinking to myself that some features of AOP would be unnecessary if only we were programming using a dynamic language. I haven't had time to start learning Smalltalk yet, or Ruby...and those MSDN CDs are in a corner slowly gathering dust Stick out tongue. Ah, so many things to do with so little (spare) time!

So...are we witnessing a changing of the guard here? Will C++, Java and C# eventually go the way of COBOL and its ilk?


Posted 08-07-2007 4:18 PM by cruizer
Filed under: ,

Comments

velocity wrote re: Languages make design patterns necessary
on 08-07-2007 4:29 AM

hmmm... I never knew COBOL has gone away ;-) In fact, I still hear people looking for good and talented COBOL & RPG programmers. Cobol.net anyone? www.netcobol.com/.../netcobol.html

Now that it has OO Cobol syntax, would design patterns for Cobol not be far behind?

undetected wrote re: Languages make design patterns necessary
on 08-07-2007 10:53 AM

It's amazing, but the language you use can affect really big picture stuff.  Spolsky's essay on www.joelonsoftware.com/.../01.html provides an example of how a language feature not available in Java may very well have been the basis for the architecture that gives Google massive scalability.  Frankly, this realization scared me.  I've been pretty much focused on Java the past 6 or 7 years and have only now started seriously looking at another language.  I never realized the limitations sticking to one language placed on my ability to come up with creative or alternative architectural solutions.

As for your other statement, Java isn't quite Cobol yet, but I've been anticipating that change for a few years now.  Looking at dynamic languages, it gets easier to understand why some believe that should be the next step.

cruizer wrote re: Languages make design patterns necessary
on 08-07-2007 6:58 PM

while COBOL has not gone away, it's no longer "mainstream"

cruizer wrote re: Languages make design patterns necessary
on 08-07-2007 6:59 PM

master boogs, ikaw pa natakot!? eh kahit anong programming language kayang kaya mong banatan...ikaw pa na naging Turbo Pascal master from zero in a couple of months sa school...he he

lamia wrote re: Languages make design patterns necessary
on 08-07-2007 10:49 PM

So the OOP for COBOL is just something new? I thought it existed long ago before the dinosaurs went extinct. :)

Some Design Patterns are built-in in the language API. For Java, the obvious one is the observer pattern. Some design patterns are just not necessary to be implemented by the  user because it has either been implemented or well implemented into the language. However, this should not limit our creativity to re-use those patterns in certain scenarios.

undetected wrote re: Languages make design patterns necessary
on 08-08-2007 9:42 AM

Iba kasi kapag bago pa, you're open to new ideas, new approaches.  Ngayon, all I see are nails ("When all you have is a hammer...").  What sucks is, I didn't even realize it!

cruizer wrote re: Languages make design patterns necessary
on 08-09-2007 6:40 AM

right on, undetected. which is why I prefer .NET to Java...there's not only one language in town, and it's opening up to the dynamic ones like Python and Ruby. in fairness to Java, it's opening up as well with Jython and JRuby...

DotNET @ Kape Ni LaTtEX » Blog Archive » A little Ruby envy wrote DotNET @ Kape Ni LaTtEX » Blog Archive » A little Ruby envy
on 08-13-2007 10:48 PM

Pingback from  DotNET @ Kape Ni LaTtEX  » Blog Archive   » A little Ruby envy

Copyright DevPinoy 2005-2008