2006-12-07

The Trouble with Programming

These two interviews with Bjarne Stroustrup (creator of C++) are well worth reading. He says a lot of interesting things but one point that I especially enjoyed reading his comments on were about "dumbing down" programming. I've had a lot of discussions with various people at work (and other places as well for that matter) where the major arguments are "programming is too hard" and "programming should not be a thinking activity".

I know that several different tools and vendors have made these types of promises for a long time. I remember reading, in 1991-92 or something, about C++ that it would only take about a day to build a word processor because all you need to do is assemble ready-made components. I nevermade the switch from C to C++ but I doubt that very many programmers use C++ as a glue language.

The thing is that programming is a skill. It needs to be taught and you need to write programs to become good at it. Note! This does not mean that fulfilling or striving towards the stereotype of a hacker automatically makes you a good programmer.

But, you also have to put some thought into what you do. Computer Science and Programming Language Theory are enormous fields and you should make a habit of trying to learn something new every week (it's worth trying :-). Start reading explanations about concepts you think sound interesting on wikipedia. Most of the information is surprisingly well-written and accurate. If you want more, Google is your friend.

If you can't think of anything interesting, here are some suggestions to start you up: Aspect Oriented Programming, Generic Programming, Logic Programming, Rule Engines or anything from Lambda the Ultimate. You could also try a new language like Common Lisp, Haskell, Prolog, Python (check out PyPy), Ruby or Scheme (make sure to read SICP)

Have fun!

3 kommentarer:

woolfel sa...

That's ok though. More dumb programmers means good programmers are more important. That increases the salary of people who take time to dig deep and learn the hard stuff.

Johan Lindberg sa...

Yes that's definitely one way of looking at it, but it also means that it's harder and harder to push for better alternatives/solutions.

It has taken quite an effort to introduce something as "new" as a Business Rule Engine where I work. It's still quite common for me to hear that Drools (or any other rule engine for that matter) won't work because they can't really grasp how it works and what it's used for.

There'll always be people who try harder and I have nothing against that. But I hate that PHB's around the world try to make programming into configuration of ready-made software AND, most of all, that so many people seem to accept it!

woolfel sa...

yeah, that's what PHB do. My solution to that is to not work for people like that :)

a lot of people are puzzled by rule engines and it's not uncommon for developers to think they don't work. sometimes it is just hopeless to convince them even with mountains of data. Having seen that first hand, the only thing to do at that point is fire the developer. though that isn't always an option either.