Friday, 25 April 2008

JamVM : road to nowhere?

Change logs and development notes never give any insight into the wider whys and wherefores of a project. Perhaps that's for the better; stick to the facts, that's what engineers are good at. But as this is my first real post on JamVM (now that I know everything is working) I think it's appropriate.

I started JamVM because I stopped being paid to work on proprietary VMs (after leaving a suitable gap). Because of worries of tainting I started my own VM rather than helping out on another. For the same reason I never directly contributed to GNU Classpath either. Of course, I wanted to make it smaller than any other, and I also wanted to make it open-source.

I work on JamVM because I enjoy it. It's also nice to get the (occasional) positive email from users, and to see people using it on a whole variety of hardware. The download statistics are also still going up (last month downloads from sourceforge was over 1000 for the first time, and this doesn't include all the distros that package it and embedded buildroots).

The problem is I sometimes wonder whether I'm flogging a dead horse and I'd be better off contributing my time to something else. I'm not trying to throw my toys out of the pram either; this is a serious and legitimate question.

Of course, the reason is OpenJDK and to a lesser extent PhoneME. Java is now open-sourced, mostly unencumbered and finally packaged. At best am I wasting my time, and at worst am I fragmenting and confusing things? Opinions, dear readers, gratefully received.

I discussed this with Jeroen Frijters at FOSDEM. In danger of misrepresenting things due to alcohol abuse, the general upshot was "why care?". If you still enjoy doing it, then do it. So I am.

14 comments:

Matt M said...

I think continuing to work on JamVM is a good idea. I was looking at it a few years back as a potential way to ship a Java application with a stripped JDK. It was by far the most space-efficient way to distribute a Java application that I could find.

As long as it's fun you should keep working on it. Bonus points for finding a good niche (small size) and excelling at keeping it filled.

gnu_andrew said...

I'd say keep working on it as long as you are happy to. For me, I think there is still very much a niche for an easily-hackable and small VM that JamVM currently fills. And if we eventually make VMs relatively independent of the class library, this will hopefully encourage more such experimentation.

Chris said...

Please don't discontinue jamvm - I've been testing several VMs on single board embedded systems, trying to find the most space-efficient/reasonable performance VM and yours currently tops my list. I've had more success with jamvm than I have had with phoneme (too long for start time) and sablevm. Especially as it seems to be one of the best ways to get a suitably fast Java 1.5 onto a MIPS or ARM device running a full classpath.

Chris said...

In fact, you should check out projects like openwrt and the development site at gumstix.com - your VM is quite popular on those platforms.

Mark Wielaard said...

As others (and you yourself) already said, of course you should work on it as long as it is fun to do so. For me JamVM has always been that little runtime that could. That little runtime someone like me could understand. That little runtime that teaches you what the VM spec really means. Even in the days of openjdk and phoneme I still recommend people look at jamvm first to really understand what is going on.

thebohemian said...

I just want to say that although it may look as if Jalimo prefers Cacao all the way I am updating and maintaining the JamVM recipes in OE as well.

This allows every user may she from the OpenMoko, Angstrom, Mamona, Jalimo, Unslung or any other embedded distro user base install a current JamVM.

And I see no reason to stop doing the Jamvm maintainance. :)

Thorbjørn Ravn Andersen said...

Hi.

I like jamvm and it is great to have a lean alternative to a fullblown HotSpot JVM.

I am right now trying to bring up jamvm on AIX but is currently stuck on Classpath build issues (sigh sigh).

I think the jamvm + lean headless Classpath would be great for bringing Java to those platforms where you either do not have any Java or you need a version with a quick startup time.

Please continue your work :)

Kevin said...

We certainly appreciate your efforts:

http://bugblogger.com/java-vms-compared-160/

Sébastien said...

JamVM is an inspiring project, and shows that it's always possible to do lighter, smaller, better ;) Keep on !

Anonymous said...

I have to say, JamVM is more wonderful than any other VMs I have experienced.

Thank you very much!!

Braden said...

JamVM is great man. I couldn't of ever imagined getting java running on an embedded platform so easily. Keep it up.

Daniele said...

Great work! Please keep it up

Christopher Friedt said...

I still find JamVM the best for embedded purposes. Contrary to popular believe, size does matter.

Anonymous said...

JAMVM is invaluable as it is truly the smallest full-fledged VM out there, when all things are considered. It would be sad if you would stop working on it.