Sunday, September 21, 2008

On craft of code

I am a software engineer on embedded real-time devices. My main language of choice is mostly C (written in a semi-OO style) and very occasionally, assembly language. So far I have been programming for over 10 years in school, and in companies of various sizes.

I use 'prgmm' to denote programming, however I detest the use of 'prg' as it is ambiguous with normal programs, and TV programs. Use of 'prgmm' is also convenient and easy to type, again this bears the hallmark of a typical programmer who wants to be as lazy as possible.

Since C++ has been used extensively in the industry and it shares quite a lot of commonalities with C, I have every incentive to learn more. It seems evident C++ has slowly evolved to address some of C's design weakness by providing better alternatives, while at the same time maintains compatibility to avoid breaking legacy codes.

In other words, you can choose to use C++ as if it were C. However the outcome is usually frustrated programmer and mediocre codes. Don't laugh yet and think this is limited to newbies or inexperienced developers. I know a big corporation is doing exactly that in one of the communications products. In fact, the inclusion of stdio.h in the cpp source files is really an eye-sore. The irony is those cpp files were generated from UML diagrams (but not inserted by the code generator though). Ah... interesting, right? The morale of that experience tells me tools can never replace good programmers, no matter how fancy the tools are.

Stay tuned for more stuff to come...

No comments: