After some time doing only graphics and other high level stuff I went back to embedded programming. The first environment I got has only one type of variable: signed integer 16 bits. No floating point support. After a some months the "cool" feeling turned into "anger" than into "hate" and then to "suffering". The program did work with all the fixed point tricks but the sensation that a hidden bug will grab my leg at any moment remains.
Computer languages are currently the most powerful way to interact with computers, however, they are extremely complex. There are some variation among them, but even those languages considered to be high level, are still too complex to the uninitiated. They are really developed with very few people in mind: those who learned how to think like computers. Imagine if everybody could instruct the computer to do whatever it wants, not only what was pre-programmed for them ? We would need a radical change of what it means to program.
Recently I found a interesting discussion by Bret Victor about how our current programming model is flawed:
He goes on several points that shows unbelievable problems with programming, that we simply got accustomed with. It is important to note that programming encompass not only the language, but also the development environment. In Bret's words:
A programming system has two parts. The programming "environment" is the part that's installed on the computer. The programming "language" is the part that's installed in the programmer's head.
Perhaps in the future we will be able to create user interfaces for programming that will be so natural that people will not even notice that they are programming at all. Advances on natural languages an artificial intelligence will certainly take its part. The OS will evolve into a programming environment so powerful that will amplify everyone capacity to think and to dream.
For those interested, I highly recommend reading: Learnable Programming