* The Business of SoftwareA 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 Moderators:
Andy Brice Doug Nebeker ("Doug")
Jonathan Matthews
Nicholas Hebb
Bob Walsh |
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.
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?
"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.
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).
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
>>
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.
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.
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 .
@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.
@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 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 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! |
|
Powered by FogBugz


