Ten Things I Hate About Object-Oriented Programming

Ten Things I Hate About Object-Oriented Programming

Apparently I’m not the only one. In the immortal words of Edsger Dijkstra: “Object-oriented programming is an exceptionally bad idea which could only have originated in California.

Dizzying but invisible depth

Dizzying but invisible depth

Here is an inspirational Google+ post from the Google employee Jean-Baptiste Queru, on the subject of technological complexity.  It goes all the way from “What happens when you go to www.google.com?“, through the layers, through communication gap between technical and non-technical people, to the point of why people talked more about Steve Job’s death rather than Dennis Ritchie’s passing, even though the impact of the last one on the technology in general is much bigger.  He even touches on the problem with the patent system a bit.

Today’s computers are so complex that they can only be designed and manufactured with slightly less complex computers. In turn the computers used for the design and manufacture are so complex that they themselves can only be designed and manufactured with slightly less complex computers. You’d have to go through many such loops to get back to a level that could possibly be re-built from scratch.

Once you start to understand how our modern devices work and how they’re created, it’s impossible to not be dizzy about the depth of everything that’s involved, and to not be in awe about the fact that they work at all, when Murphy’s law says that they simply shouldn’t possibly work.

For non-technologists, this is all a black box. That is a great success of technology: all those layers of complexity are entirely hidden and people can use them without even knowing that they exist at all. That is the reason why many people can find computers so frustrating to use: there are so many things that can possibly go wrong that some of them inevitably will, but the complexity goes so deep that it’s impossible for most users to be able to do anything about any error.

That is also why it’s so hard for technologists and non-technologists to communicate together: technologists know too much about too many layers and non-technologists know too little about too few layers to be able to establish effective direct communication. The gap is so large that it’s not even possible any more to have a single person be an intermediate between those two groups

A must read.

On the future of jobs

GigaOm covers the release of the new book by Seth Godin, which, this time instead of marketing talks more about the future of work.  And jobs.

Why do we believe that jobs where we are paid really good money to do work that can be systemized, written in a manual and/or exported are going to come back ever? The internet has squeezed inefficiencies out of many systems, and the ability to move work around, coordinate activity and digitize data all combine to eliminate a wide swath of the jobs the industrial age created….

The industrial age, the one that started with the industrial revolution, is fading away. It is no longer the growth engine of the economy and it seems absurd to imagine that great pay for replaceable work is on the horizon.

Seth Godin is a visionary.  And whether you agree with him or not, his thoughts are worth knowing about and considering.  I only started thinking in the same direction, spending more of my focus on education.  But I see where he goes and why.  The change is coming. And it’s coming fast.

Sysadmins vs. programmers

In a Slashdot thread on the topic of the Programmer’s Day, I came across this insightful comment, with which, having been both a sysadmin and a programmer, I have to somewhat agree. No disrespect to any programmers intended, but sysadmins have it tougher.  I wouldn’t go as far as to claim that Programmer’s Day is not deserved – we all work hard, but I agree that Sysadmin’s Day is deserved more.

Having been both a sysadmin and programmer, I have to honestly say that while sysadmin day is deserved, programming day isn’t. There’s just simply much more to sysadmins that are underappreciated when compared to programmers:

  • Sysadmins setup routine systems that are built by programmers (who usually get the credit).
  • Sysadmins only get (negative) attention when something goes awry.
  • There’s usually no mention of sysadmins anywhere.
  • Unless you are very technical, you probably don’t even know that sysadmins exist!

In contrast, programmers have it nice in the sense that when they do a good job, they are seen as the heroes who created the system. People go to programmers for feature requests in addition to bug reports. Their names are usually listed in an about dialog or readme file somewhere. Also, unless you are completely technically illiterate, you know that someone has to create the software.

The final bit: the infrastructure will crash and burn without sysadmins, but without programmers, it’ll just cease to advance.

Having a Programmer Day in addition to Sysadmin Day is like having an Executive Day in addition to Labor Day: unnecessary, unjustified. In both cases, the former already has the glory on a daily basis that the latter is hugely lacking.