Shortcut for chapter specific information

Friday, May 6, 2011

Does programming language proficiency matter?

I have a sudden revelation today and I realized how much one should be familiarize with a language.  Intelligence matters but understanding of a paradigm meant a lot too.

For example, what if a C programmer was asked to write in C++ and Java? This happens a lot these days.  In fact a lot of brilliant C programmers now switched to C++ and Java for a living.   Well, one easily noticeable issue would be a module can become overcomplicated with if.  In the C world, programmer pride themselve for understanding multiple possibilities of how a function can behave.   But for applications which use object-oriented programming, multiple ifs can cause an object to exhibit many unexpected behaviors - That is not good for reuse.

In a way, writing good OOP code require thorough understanding of I/O of each object.   If there are 10 possible output options and each option can have two choices, there would be 2^10 number of behaviors.  How would other classes be able to talk with these 2^10 possible behaviors then? 

What about a C++ programmer or Java programmer were asked to write in C?  Then a visible effects would be long names, unnecessary syntactic sugar, inefficient code.  Since a lot of C applications have speed requirement, these bad habits will add up.

A smart person can certainly learn 100 programming languages if they want.  But getting proficient in each language, that is another story.   To tackle problem in real life, it's important to understand the skill and the philosophy behind a language.

No comments:

Post a Comment