I recently went through the Marshall Brain website and found again some very interesting thoughts. He start a new blog about technology and discuss how amazingly bad some of them are.
I was glad to see these thoughts written down because I’ve been thinking about most of these for a long time. The ones that comes immediately to my mind are the use of keyboards, battery chargers or even cars. When you think about them, that’s really primitive. It’s just crazy to still have these technologies available when you know we can do a lot better right now.
I want to add something about computers. Without talking again about how inefficient keyboards are to put things into the computer, I’d would say more generally how inefficient it is to express ideas for programming a computer. Think about it, programming a computer is still a pain. When you have an idea about how the computer should behave to do a task (say, an algorithm), in order to put it into the computer, you have to translate your idea into the most inefficient way that may exist. You have to cut your idea into pieces to be expressed into the statics buildings blocks of a programming language using all sort of things like object orientation, language keywords, strange syntactic construcs and so on. And I won’t talk about the steps to pass through to run your program: editing, compiling, debugging, talking to other programs. Even for a tiny tasks, that’s complex and all this process take a long time compared to what was your initial thoughts. Most of the time, it fails and you end up by not doing anything.
Most programming languages available today are primitive and inefficient in terms of productivity especially mainstream ones. It’s too long to write a software, too chaotic and error prone. It seems to me that the fundamental research in programming languages has slowed down the last decades. All we can see on the scene are languages like Java or C#. But these languages are not high tech they’re sad tech. You’re stuck to the logic of the designer of the language, and you have to make a lot of effort to express something right. I generally take the following example, mainstrain programming languages are like Lego. You have a limited number of pieces with a static shape. If you want to make an object with it, you have to think about how to assemble the pieces the right way to do it. But it very difficult to make your own pieces and you have to stick with the ones available. You end up by an approximation of the object you wanted to make and it tooks a lot of time. The Lego pieces I talk about are not the available libraries for a programming language but rather its core syntax and the programming paragdim you use.
Mainstream languages are not the end, there are in the middle of the scale of programming languages. At the high-level postion of the scale are languages like Common Lisp. Even if still primitive in its textual form and the way you have to write your program, it is one of the most efficient language and one of the most adaptable to your thoughts available today. With Common Lisp you can reshape the language to suit your needs, pretty much like if you could make your own shapes with Lego. That’s why I always promote the use of the most high-level programming languages to write computer programs. Unfortunately, that’s were we stand in the research in programming language and I didn’t expect it changes in the next couple of years.
That’s remind me the Matrix movie wher Agent Smith said they lacked the progamming language to wrote the first version of the Matrix. Since the last version is not too bad, I wonder what did they use?



Add New Comment
Thanks. Your comment is awaiting approval by a moderator.
Do you already have an account? Log in and claim this comment.
Add New Comment
Trackbacks