Uplink Established
This time I will support you with some deep technical notes. Things are getting more and more concrete and while working on my 3D-Engine in my spare time, some tools have come to life that can be handy for other developers too. So I decided to start a new experiment and am entering the wide and interesting field as an entrepreneur. On the sideline, for sure.
But so much for the news and now comes the story ...
When writing a performance critical application, people often get confused between the need to focus on performance and the will to keep a nice and clean software design. Especially the last one will suffer from requirements in speed and latency. There is a simple explanation I intend to give you as a riddle: Did you ever wonder why OOP found it’s way to real life so lately?
Now one could be easily thinking that using Assembler - as being the lowest level language at all and therefore giving you the full control of what happens inside your computer - would solve the problem. Well not really! Sure there have been quite huge applications written in Assembler - and still there are, especially in the Computer-Demo-Scene - but you really do not want to try as long as you are having a life ...
So how can one use the cleanness of OOP and still get the speed out of the computer as is needed? Is that possible at all?
It is! And there is some research going on to find a solution w/o letting the developer even know that such things are going on beneath his/her code. To be more specific, a lot of performance improvements are already included in modern Virtual Machines (as these are common for most OOP languages nowadays). As for Java and its JVM, there has been achieved an extraordinary level of performance - from the point of view as being “interpreted” code in the late 90s.
But still VMs are not having the ability to fully compete with functional languages, where there is a simple explanation: VMs are simply not being given the full information about the application they are executing. What does it do? How? When? And after all, is there something I can not see right now?
Performance Analyzation tools are hitting those questions and giving the developers the power to improve their code. Some other tools even manipulate the application so that the VM can better understand what it does and how it can be executed the fastest way.
And as mixing both worlds, my tools are supporting the developer as well as the VM, so that one can still focus on a clean and maintainable software design w/o letting go of the real power of the target system. Seeing the requirements, using the right tools, problems solved.
This and some other tools and small applications will hit the market in the next few months. So stay tuned and keep your code clean ...
Monday, February 2nd