Linked by Thom Holwerda on Sun 20th Apr 2008 15:43 UTC
General Development Geek.com is running an opinion piece on the extensive reliance of programmers today on languages like Java and .NET. The author lambastes the performance penalties that are associated with running code inside virtualised environments, like Java's and .NET's. "It increases the compute burden on the CPU because in order to do something that should only require 1 million instructions (note that on modern CPUs 1 million instructions executes in about one two-thousandths (1/2000) of a second) now takes 200 million instructions. Literally. And while 200 million instructions can execute in about 1/10th of a second, it is still that much slower." The author poses an interesting challenge at the end of his piece - a challenge most OSNews readers will have already taken on. Note: Please note that many OSNews items now have a "read more" where the article in question is discussed in more detail.
Permalink for comment 310620
To read all comments associated with this story, please click here.
The relative speed of bloatware
by phoehne on Sun 20th Apr 2008 22:52 UTC
phoehne
Member since:
2006-08-26

http://www.infoworld.com/article/08/04/14/16TC-winoffice-performanc... quantified the actual performance of Vista, 2000 and XP with Office. The interesting point, that this author almost gets to, is that we're using computers that are much faster, with loads more memory, to do the same work at the same speed. Is the operating system doing more? Yes, it almost certainly is, at some level.

I remember when spell checking was something you did to the file separately from word processing because word processors lacked built in spell checkers (you can only do so much in 64 k). Now the word processor does on the fly spell checking and grammar checking, including scanning your document for things you might be miss-spelling or for common tasks you might try to perform. However, I would argue that since office 2000, most people use the word processor in almost exactly the same way.

On benchmarks Java and .NET are the same order of magnitude as C/C++. (See Computer Language Shootout). In real world applications I've noticed a big difference between what happens when I fire up native versions of software versus Java versions of software (or even .NET). I hear the fans spin up and (GUI code especially) is not as responsive. In addition, you often notice the difference in memory consumption. I'll have to say I've had similar experiences with Python GUI applications.

We now live in a world where a Gig of Ram is the starting point for a new machine. Whereas we had 32 bit 500 Mhz CPU's 9/10 years ago with 64 Megs, we now have 2-4 64 bit cores at 2-3 Ghz. Busses are faster, memory is faster, networking, and even disks much faster. Despite all these tremendous advancements, it's all been eaten up in terms of the day to day work we do and I'm not sure anyone can really say where it's gone.

Let me put it another way. These OS'es and apps are doing more work. At the very lease they're spinning up our CPUs, consuming memory and eating up hard drive space. It may be library bloat. Certainly everyone comes out with a library to do some thing (including competing libraries) and when they write it they make sure any possible contingency is handled. Where 1000 lines of code would have been adequate for 95% of users, 2000 lines were used to make the library useable for 99% of users. Maybe part of it is real world performance differences between a Java database front end versus a native database front end. The result is the same - lots more capacity but little outside of games are that much faster.