Runtime sizes are not very important for established technologies. Once a technology is so widely distributed that a typical user would be surprised to not find it on a machine, the download costs are mostly ignored.
With newer technology, that is not the case. Even mainstream platforms like Java are not ubiquitous and with a minimum footprint of 95 MB, users often balk at downloading it just to use a small utility.
Miguel quotes the full installation of Mono at a hefty 78 MB. When other related libraries like Gnome# and Gtk# are included, it jumps to 250 MB. But these are full installations, what about the bare-bones minimum?
Mirco Bauer, who maintains the Mono package on Debian Linux, has split the Mono runtime in such a way that the minimal installation is a mere 7 MB. This is of course just the runtime itself and the necessary libraries for non-GUI, "Hello World" style applications.
He compares this to the minimum size of Python, which weighs in at 13.4MB on the hard drive. As for Java, Mirco Bauer says:
So and Java? Here it becomes a bit unfair as SUN's license is not allowing to ship parts of a Java runtime. So the Java package in a distribution is one package. 34.5MB to download and 95.2MB on the harddisk. Yes, that's alot, but thats the smallest install you can get when you want to run anything on it.
On a final note, Miguel is estimating the final size for Moonlight, the Linux implementation of Microsoft's Silverlight, will be approximately 8 to 9 MB on disk.
Community comments
Interesting comparison.
by Porter Woodward,
Re: Interesting comparison.
by Jonathan Allen,
What a great comparison!
by Jason Carreira,
Unfair Comparison
by Ben Loud,
Re: Unfair Comparison
by Jonathan Allen,
Consumer JRE
by James Tikalsky,
Re: Unfair Comparison
by Ben Loud,
Java runtime 18 MB on Linux and 14 MB on Windows
by Florian Fankhauser,
but how to distribute a Mono program?
by 进 陆,
Interesting comparison.
by Porter Woodward,
Your message is awaiting moderation. Thank you for participating in the discussion.
A stripped down, non-GUI capable version of Mono is 7 MB, and without GTK+ (the common GUI lib) Python is 13.4MB.
Yet no attempt is made at a stripped down Java install - instead just taking it at face value that it is 95.2MB. I'm not certain, but a quick look at the JRE 1.6 directory (80MB in size on disk under Windows) shows that there's a fair bit one could strip away... I'm not convinced that you _need_ keytool.exe, and a host of the other tools, such as jucheck.exe (the task bar tool that autoupdates the java install).
It's pretty easy to come up with wins when you set the criteria and don't make a real effort to compare apples to apples.
Re: Interesting comparison.
by Jonathan Allen,
Your message is awaiting moderation. Thank you for participating in the discussion.
An apples to apples comparison would be nice, but as Mirco said, "Here it becomes a bit unfair as SUN's license is not allowing to ship parts of a Java runtime.".
A striped down version of the Java runtime that one can't distribute isn't worth much except as a curiosity. Of course, that all changes if Sun decides alter the license or we start seeing open source implementations that allow for minimal installations.
What a great comparison!
by Jason Carreira,
Your message is awaiting moderation. Thank you for participating in the discussion.
God knows in my server-side applications I'm always thinking "If the runtime were just smaller, I could deal with less functionality, less stability, and less performance".
Unfair Comparison
by Ben Loud,
Your message is awaiting moderation. Thank you for participating in the discussion.
As other comments have said, its unfair to compare a version of Mono without GUI support to the feature full JDK. Even so, the numbers aren't accurate. A quick check of java.sun.com shows that Java SE 6 Update 2 Runtime Environment Linux RPM is in fact less than 18MB, not 34.5 as the article claims (note: the Windows download is 4MB smaller still, at under 14MB).
Besides, keep an eye on the Comsumer JRE due later this year, which will make the initial download size a fraction of this, certainly much less than 7MB.
Re: Unfair Comparison
by Jonathan Allen,
Your message is awaiting moderation. Thank you for participating in the discussion.
I have to admit that I am a bit confused by your comment. Besides the fact that the article doesn't actually compare the JDK with Mono, it specifically mentions that such a comparison would not be fair.
That said, the Comsumer JRE does sound like an interesting development. I have to admit that, being on the .NET desk, I don't have a chance to follow Java nearly as closely as I would like.
Consumer JRE
by James Tikalsky,
Your message is awaiting moderation. Thank you for participating in the discussion.
Chet Haase has written about the details of the Consumer JRE: Consumer JRE: Leaner, Meaner Java
Re: Unfair Comparison
by Ben Loud,
Your message is awaiting moderation. Thank you for participating in the discussion.
JDK was a typo, should read JRE. Anyway, reading Miguel's blog, his quote of Java download size was referring to the Debian packages, and looking them up, sure enough they are huge because they package it in their own way. On other platforms, with the RPM or the self extracting binary, the download size is far more reasonable at around 18MB, which is what I was referring to (and 14MB on Windows). It's able to compress this well because of Java's Pack200 classfile compression which works wonders (and it will make the download size of your Java apps tiny too)
But yes its tricky to compare as Miguel says, the Mono install includes the dev tools (for some reason...). But I wasnt making a comparison, I just wanted to clear up confusion over the download size. After unpacking, the quoted size is about right.
Java runtime 18 MB on Linux and 14 MB on Windows
by Florian Fankhauser,
Your message is awaiting moderation. Thank you for participating in the discussion.
I checked the sun java download page and found out that your data is inaccurate. The Java Runtime download is on Linux smaller than 18MB, on windows it's even below 14MB.
Regards,
Florian
but how to distribute a Mono program?
by 进 陆,
Your message is awaiting moderation. Thank you for participating in the discussion.
firstly, sorry to dig up this old artilce.
For python, we can use pyinstaller( www.pyinstaller.org/ ) to release an application to user under Windows/Linux/Mac OS X/Solaris/AIX, for whom no python is need to be installed. But how abot mono? Can we bundle an application with MONO runtime into excutable file, so that the user can run it directly even without Mono/.NET on his PC?