* The Business of Software

A community discussing the business of software, from the smallest shareware operation to Microsoft. A part of Joel on Software.

This community works best when people use their real names. Please register for a free account.

Links:

» Business of Software FAQ
» The Business of Software Conference (held every fall, usually in Boston)
» Forum guidelines (Please read before posting!)

Moderators:

Andy Brice
Successful Software

Doug Nebeker ("Doug")

Jonathan Matthews
Creator of DeepTrawl, CloudTrawl, and LeapDoc

Nicholas Hebb
BreezeTree Software

Bob Walsh
host, Startup Success Podcast author of The Web Startup Success Guide and Micro-ISV: From Vision To Reality

Patrick McKenzie
Bingo Card Creator

Update on progress of JET vs. standard Java split test

Any B2C Java developers here should probably buy themselves a copy of JET at the earliest possible convenience.  Whoops, spoiled the punch line.

I'm halfway through my split test of the JET native-compiled version and the regular ol' Java version.

For the 36 sales that I have usable data for (were a Windows user, came from a version downloaded during the test period, clicked to the website through the program, etc), JET is leading 23 to 13.

Given that I've been handing out the versions 50-50 at random to downloaders, the population of possible outcomes assuming the version they got makes no difference whatsoever is a binomial distribution.  Some quick math suggests that, under the null hypothesis that the version doesn't matter, JET would have 23 or more sales out of a sample of 36 in only 6.6% of samples or so.  Accordingly, reject the null hypothesis at the 10% confidence level.

I'll let the test run to completion but, after that, I'm currently planning on making the JET compiled one the default for the overwhelming majority of windows downloaders. 

Plans to be changed in event of statistical upheaval, discovery of statistical incompetence on my part, etc.
Patrick McKenzie (Bingo Card Creator) Send private email
Monday, February 09, 2009
 
 
You are talking about the Excelsior JET thing that compiles Java into native code, correct? And you don't need to install a JVM? That sounds awesome...
GregT Send private email
Monday, February 09, 2009
 
 
Interesting results.

Thinking about the .NET Framework penetration question that comes up twice weekly here - I wonder if that would play out with similar results?

I also wonder how your very non-technical audience effects the figures?
Ryan Wheeler Send private email
Monday, February 09, 2009
 
 
I may have missed your thread, but how are you identifying that someone made a buying decision based on the download size?
Saurabh Send private email
Monday, February 09, 2009
 
 
"Compiles into native code": my understanding is closer to "it wraps a minimal JVM in the installation such that one does not need to have a 'real' JVM installed to run it", but I guess that's close enough to native for most purposes.

Influenced by them being non-technical users or not: not sure!  I'd love to see data from Java-using B2C uISVs who sell to people who do not associate AJAX with a deity or cleaning spray.

How I differentiate between different types of users: people who click on the copious, gigantic download free trial buttons on my site are automatically assigned either the Mac version (if they're using a Mac) or one of the two PC versions, one with JET and one requiring Java be installed.  The two PC versions are given out blindly with 50/50 probability. 

Accessing my website through the free trial communicates to me a few things about what version of BCC you are using, including whether you have the JET or Java version.  I stash that info in a cookie.  Then, when you purchase, I check for the existence of the cookie and, if it exists, tally up a win in the appropriate column.
Patrick McKenzie (Bingo Card Creator) Send private email
Monday, February 09, 2009
 
 
I find this sad but not surprising. And yes, as you mentioned, JET is no different than bundling a "private JRE" with your applications. In fact, I would go a step further and suggest that you simply give users a 200k installer that automatically pulls down components as needed.

For example, you could dynamically detect what JRE version the user has and upgrade him if needed. You could use a JRE if it's already installed, upgrade the existing JRE silently or use a private JRE if you don't want to bother users. These are all good options that will likely give you the same results as JET and even more if the user tries installing the same application a second time around (no need to upgrade the JRE again).
Gili Send private email
Monday, February 09, 2009
 
 
Excelsior JET is a JVM with an ahead-of-time compiler. It produces a real EXE that does not contain the original class files.

http://www.excelsior-usa.com/jetinternals.html
Dmitry Leskov Send private email
Tuesday, February 10, 2009
 
 
>>
For example, you could dynamically detect what JRE version the user has and upgrade him if needed.
>>

BingoCardCreator.exe (the Java-using version) actually does this.  It is an .exe wrapper around the JAR file created using Launch4j, an OSS Java wrapper builder thingee. 

That detects and (hopefully) rectifies the lack of the JRE at launch time rather than install time.  So that's the default behavior of my application, which JET is currently kicking the hindquarters of.

As always, your mileage may vary.
Patrick McKenzie (Bingo Card Creator) Send private email
Tuesday, February 10, 2009
 
 
I had looked at JET when I started selling my first java product 18-20 months ago. At that time it looked very expensive. Now, with the software actually making money for me, and having spent on code signing certs, obfuscators etc, I thought I will check them out again (after reading this post from Patrick).

So, I find a microISV pricing offer on their web site. I send them an email asking for microISV price, and they would not tell me the price, until I fill out an online form and provide them all the details.

Its a personal choice, but I would not want to made my program dependent on a third party application where the pricing is not transparent.
Saurabh Send private email
Tuesday, February 10, 2009
 
 
made my program =>should read=> make my program
Saurabh Send private email
Tuesday, February 10, 2009
 
 
For many applications I think GCJ might be a decent alternative to JET.

Figuring out GCJ itself is complicated (for me anyway...), but there's a cheap bit of software called JavaNativeCompiler that makes it *really* easy: http://jnc.mtsystems.ch/

*Really* easy as in actually much easier than JET...  My testing with JET was that it took ages to generate a humongous Hello World application.  Sure, I believe there are some optimization options that you can use to reduce the file size, but duh, I think a compiler should be able to see that System.out.println("Hello World") doesn't require half the JRE.

JavaNativeCompiler doesn't have the advanced configuration options, but its defaults seem to be pretty good.  A natively-compiled Hello World app was about 1.5MB.

Though if I recall correctly, the downside of JavaNativeCompiler is that there are licensing issues if you use it to compile Swing code natively.  Though I don't think there are any problems with using it to compile an SWT UI .
MB Send private email
Tuesday, February 10, 2009
 
 
@Saurabh,
I agree that it would be nice to see uISV pricing in the open.  My usual assumption is that if it's not shown, I probably can't afford it.  My current project will probably target many of the same developers as Excelsior JET (although the product is not similar).  I plan to have transparent pricing, because as a developer that's what I would like to see when shopping.

With that said,  I was able to find the standard pricing for Excelsior JET, and it's probably safe to assume the uISV pricing is lower.
Jason Nichols Send private email
Tuesday, February 10, 2009
 
 
@Saurabh,

All our list prices are published:

http://www.excelsior-usa.com/store/jet.html

For instance, Excelsior JET, Professional Edition for Windows with one year of Basic Support (includes upgrades) lists for $2,000. If you qualify for the Microbusiness Licensing Program, you can get the same for...

Wait, what is wrong about tailoring prices, e.g. depending on whether you are a startup or an established business, or depending on whether you are a BoS frequenter? :)

FYI, install4j Windows Edition Single License with 1 year of support and upgrades is priced at $598, and it is just a Java-aware setup generator.
Dmitry Leskov Send private email
Tuesday, February 10, 2009
 
 
>>>Dmitry Wrote : " Wait, what is wrong about tailoring prices, e.g. depending on whether you are a startup or an established business, or depending on whether you are a BoS frequenter? :)"

There is nothing wrong in it. That's your business model / pricing, and its good for you. I just expressed my opinion on why I made my decision. I don't want to add a dependency on a third party product, where I don't know how the upgrade price would be affected based on the volume.
Saurabh Send private email
Tuesday, February 10, 2009
 
 
Saurabh wrote: "I don't want to add a dependency on a third party product, where I don't know how the upgrade price would be affected based on the volume."

There is actually no discount on support renewals under this Program. Only the upfront cost is lowered:

For instance, the list price for the Pro Edition for Windows with one year of Basic Support (includes upgrades) is $2,000. Renewal of support for another year lists at $500. Under the Microbusiness Licensing Program, you get a special offer on your initial purchase, so you pay _substantially_ less than $2K upfront. Support renewals cost you $500/year then.

We shall add this to the Program Terms and Conditions. Thank you for pointing this out!
Dmitry Leskov Send private email
Wednesday, February 11, 2009
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz