Tag Archives: programming environment

Does communication improve technology ?

Does communication improve technology or does technology improve communication ?

Communication
Communication

That’s a question I have been tossing in my mind for some time now. I came to the conclusion now that it is bi-directional, and that better communication will foster better technology which in turn will be the breeding ground for better communication.

If communication is the key to advances in technology, or at least a major component of it, how come we are still struggling with voip and video phones ? While this helps somewhat, the environment is not suited for most use case of ‘personal communication’

Think about it this way, why do business people travel that much ? Do they like to fly, or leave their family for weeks at a time ? No, the reason is that it is extremely difficult to communicate  complex matters remotely.

Back in 1995 / 1996 when I was briefly working at the ZGDV ( Frauenhofer Institute ) in Mannheim I saw virtual cubed environments which tried to achieve virtual immersion. The goal back then seemed so easy, and the outcome so close. What happened ? Where are the Holo-decks of the 21’th century ?

With the increase of computing power and the availability of technology and the Internet ( the Evernet really ) I am still stuck at looking at a 2D screen to interact with the computer, and with other people. Even though I now enjoy a 30 inch screen with an almost optimal resolution of 2560×1600.

We need better technology thus we need better communication. To get better communication I think we need better tools.

One of the main sticking point in recent computer science is the advance of multi core, multi cpu computers. But beyond that we now have heterogeneous computing environments. Ever wondered how much computing power is in your phone ? Why not leverage the CPU in your tablet together with the horsepower of your Laptop ?

The reason is that the available tools lack. Those tools have been designed decades ago and have not evolved at the speed required. If the programming language would adapt as fast as the web technology we would by now now look at Laptops with 2048 cores and more.

There are a multitude of attempts to invent better tools but their adoption rate is negligible. One prime example of a failed ‘better tool’ is Java. I liken it to the move from CVS to SVN. It does maintain most of the existing features and adds some bits and pieces to it but if you step back and take a look at it from a distance Java and C++ are really not that different. So why bother ?

Others attempt to modify existing languages. For me that is a much better way to go. After all, if it is done properly you can retain the billions of lines of code already written and you add functionality. Or you give a simple means of conversion.

I firmly believe we should look into adding communication into the core language itself. Design the runtime environment such that it can handle high latency or unreliable links and nodes. Maybe add some grains of auto adjustments ( Aka self healing or Learning ) to it and really re-think the paradigm of software developing, away from functional or OO to a distributed or universal ( I don’t like to use the buzz-word cloud ) based paradigm.

I am an optimist, and I see that we will eventually get there. I will try to play my part in it and while I may never get up to the ranks of true visionaries like Vint Cerf or Bjarn Stroustrup, I will never be content with the status-quo and always do what every geek should be doing.

Follow the pursuit of innovation.