Posted Mar 15, 2004 2:32 UTC (Mon) by bojan
Parent article: Will Mono Become the Preferred Platform for Linux Development? (O'ReillyNet)
Sometimes I view choices of programming languages and development environments through a timeline perspective. When a new type of problem occurs in programming, it is usually solved by quick and dirty first, read scripting. Later on, a more mature implementations displace it, done probably in some kind of intermediate language, Java/Python style. Even later, a full set of solutions written in C/C++ displaces almost all previous efforts, due to its unparalleled perfomance, low memory footprint etc.
I sometimes try to imagine a situation where all software on my system (apart from the kernel) would be Java (or Python, or other similar language) based. My bet is that such a system would be at least 3 times (possibly even 10 times) slower than any current Linux distribution. The reasons for the poor performance would be VM issues, increased memory usage, unnecessary bounds checking, unnecessary exception constructs and so on. Your garden variety "make my programming experience a pleasant one" things. Nice for programmers, not so nice for people that use the applications.
In other words, it pays to write things by hand in a "bare metal" programming language. It is painful, it opens up the possibilities of security issues, memory leaks and what not. And yet, it is the only way to get decent performance on today's hardware. And when I say performance, I mean relative performance. Of course, Java programs run much better on on 3 GHz CPUs then on 200 MHz CPUs. However, users only see the relative performance to other applications. Maybe one day, when this relative performance becomes be as small as the difference between 3 micro seconds v. 1 micro second in real world applications, middle level environments will be in the position to completely (or largely) displace the "bare metal" environments.
As for Mono, I don't care for it much. I doubt anything that comes out of Microsoft. They are primarily about making huge amounts of money on software, so making sure things are interoperable, freely available, documented etc. doesn't seem like their first priority. It also could be a patent minefield, as some other people pointed out. I'll give it a miss.
to post comments)