Hari's Corner

Humour, comics, tech, law, software, reviews, essays, articles and HOWTOs intermingled with random philosophy now and then

On programming

Filed under: Software and Technology by Hari
Posted on Mon, May 21, 2007 at 08:35 IST (last updated: Wed, Jul 16, 2008 @ 20:40 IST)

If you are a programmer in C++ and you think you're fairly advanced, you should take a course of this book which my brother bought recently: Modern C++ Design: Generic Programming and Design Patterns Applied (full review here). I read a few chapters and came away with my head swirling in the clouds. This book is essentially about generic programming using C++ templates and illustrates and implements concepts that would truly challenge even the most advanced programmers because it talks about some of the most difficult theoritical concepts you would ever have come across - namely meta meta-programming (even understanding this term might require considerable effort). If you thought basic template programming in C++ was hard enough to grasp, then this pushes even templates to the limit. In short it is revolutionary in thought simply because it requires one to completely rethink the whole idea of traditional OOP.

Nevertheless, it really made me understand how much programming has advanced of late - particularly conceptual programming. In today's context, the term "programming" itself might become irrelevant simply because it's too broad a term to encapsulate all the different methods and paradigms of software design and engineering. In fact, I would classify software design itself on the following broad levels.

We've come a long way from the traditional idea of programming - that much is sure.

Apart from this, I would also classify complexity in programming into two distinct categories.

Often new programming paradigms are introduced so that practical complexity can be reduced as much as possible. But in introducing new paradigms, theoritical complexity is increased a hundred-fold which requires a complete re-learning of skills and techniques. It's like changing the whole grammar of a well-known language like English. But the time invested in learning a new paradigm might actually be worth it as it can help solve future problems of the same kind much more productively. That's why there are two kinds of programmers in this world - those who love exploring new theories to solve problems and those who just want to get the job done as quickly as possible. I can see merit in both sides.

Truly, when you go in-depth into these issues, you realize how little you actually know. If nothing else, exploring these ideas made me realize how little I know and understand in the vast field of software application development.

3 comment(s)

  1. Have you read "No Silver Bullet" by Brooks? What you are saying kind of reminds my of that article.

    Comment by tuxdev (visitor) on Tue, May 22, 2007 @ 02:46 IST #
  2. No, I haven't, tuxdev. This article originated in my own head. I'll probably take a look at it sometime, since this is the first time I've heard of it. Thanks :)

    Comment by hari (blog owner) on Tue, May 22, 2007 @ 07:06 IST #
  3. [...] at Hari’s Corner wrote his thoughts about programming and how it has evolved. Frankly, most of what he wrote about [...]

    Comment by Blog Drive-Bys for 2007-05-22 - Untwisted Vortex - Living in a Different Land (visitor) on Tue, May 22, 2007 @ 15:39 IST #

Comments closed

The blog owner has closed further commenting on this entry.