Minimal Mono Runtime Smaller than Python
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.
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.
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!
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
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.
Re: Unfair Comparison
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
but how to distribute a Mono program?
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?
Tom Gilb & Kai Gilb Jan 26, 2015