Thursday, January 18, 2007

I have always been frustrated at how authors of programming language books always seem to write their texts as though nothing had ever been written previously on computer science. I think particularly of indices: They are often filled with playful comments while neglecting the bare requisites for digging up a reference to a logical query; I have no problem with playfulness, but it is annoying when the necessities are ignored.

We have plenty of generic terms such as "parameter passing mechanisms {value, value-result, reference [address]}, formal and actual parameters, dummy parameters, iteration, recursion, pre-test loops, post-test loops and branching," but when texts are written, they are filled with the least generic and hardly identifiable terms, yet the content is largely the same -- but it is usually written as though nobody could have conceived as such notions before reading that particular text. I realize some of the language can be daunting to beginners, but hey! They have to learn it too, eventually, or they'll never be able to ask for help or hold a meaningful
conversation about programming.

Parallel to this thought, when I first started learning C++ I noticed that all the beginners' books (and indeed many of the intermediate-level materials) would assert that it may be even better for you to learn C++ without having first learned C. I don't necessarily disagree with that view, but I found it annoying that after presenting this view, the C++ authors generally proceed to cover elements of the C language.

Part of the annoyance of this treatment is that one of the chief advantages of using C++ -- to take advantage of its object-oriented features -- is ignored by this approach, if not altogether compromised.

I thought it might be helpful to write many of the common beginner programs, like Hello, World! from an object-oriented perspective, and accompany them with an article on what the advantages are for learning C++ in this way rather than directing a stream to the console, which is probably actually an insult to the learning capabilities of the average reader who is hoping to learn C++ (especially one who actually stands a chance of learning anything useful or even gratifying).

Of course, I'll have to beat my own predisposition towards playing endlessly with every program I write, especially when I tend to overcomplicate them with every design iteration!

Let me give it a shot . . .


Ernest Clayton Cordell, Jr.

E-mail: ernie.cordell@highstream.net

Yahoo/Geocities Site: http://www.geocities.com/ecordell

Web page redirect at: http://come.to/ernie

Post a Comment