The Source for Java Technology Collaboration
User: Password:



Kirill Grouchnikov's Blog

October 2007 Archives


Why i don't care about Java 6 on Leopard

Posted by kirillcool on October 29, 2007 at 09:45 AM | Permalink | Comments (0)

It looks like anywhere you go in the Java blogosphere, people are only talking about Java 6 (or lack of thereof) on Leopard. Some say that the only reason they bought Leopard was for Java 6, some say that their honeymoon with Apple is over, and some say that Java 6 will be available shortly as a separate download. And 99% of the postings and the comments seem to agree - Java 6 should have been included in the golden master of Leopard.

I thought about it over the weekend, and time and time again i reach the same pragmatical conclusion - i don't care about Java 6 on OS X, and for that matter i don’t care about OS X as a Java development platform. While that may sound as a harsh statement, allow me just a few minutes of your time.

I’ve already written that for me, an operating system is just another layer in my development platform. I’m more interested in the tools that i’m using and the applications that i'm developing. The things that i said 30 months ago are still true - i'm perfectly OK with my Windows machines, because i rarely directly interact with the operating system. I might have switched to Linux, but pragmatically speaking, it is not a good business proposition. Between 150$ for the OEM version of Vista and spending 12 hours to download and install OS and configuring the Java environment (on my free time during the weekend away from the family), i choose Vista any given day.

Now, let’s talk some numbers. The market share for Windows is somewhere in 90-95% range, and while sales of Mac machines rise on the quarterly basis, so do sales of Windows boxes. One might say that these numbers are for all the machines, including corporate environments and home machines for non-IT people. I’m looking at the visitor stats of this blog, which is has a very specific technical orientation, and the numbers are a little surpising:

  • Windows has 75.6%
  • Linux has 14.4%
  • Mac has 9.6%

Yes, even for such a narrowly oriented site that mainly talks about Swing, Java2D and other UI topics in Java land, Mac doesn’t even cross into double digits. While you do see most of JavaOne presenters use Mac laptops, it doesn’t really extrapolate to the wider audience of JavaOne attendees, and most certainly it doesn’t extrapolate to the much wider audience of Java developers. The same applies to the blogosphere numbers - i’m sure i have seen about 20-30 rant entries on this subject over the past three days. Let’s be generous and say it’s an even hundred. Is that a lot? It is a lot of noise, but compared to the number of blogs tracked by JavaBlogs (2261)  it’s not that much.

Looking at the bug reports for my open-source projects over the past three years, i see only two Linux-specific bugs and one Mac-specific bug. Yes, about 500 bugs reported via the bug trackers, forums, mailing lists and direct mail, and only one Mac-specific bug. Of course, most of these bugs were cross-platform, but so have been the bug fixes.

Now, your numbers might be different. If you’re developing a commercial product that is targeting multiple OSes, you might not be in a position similar to mine. However, if you spend more money to provide support for Mac than what you make from product sales on Mac, that is a bad business proposition. In this case, you might as well say that your product is for Windows only (like the vast majority of all the applications out there) and don’t mention that it’s in Java (so you don’t get blog-flamed about lack of cross-platform support). Of course, in this case you might as well switch to Win32, MFC, WinForms, WPF or whatever technology is pimped that year, but that is a topic for another blog entry.

This is, of course, my personal subjective opinion. I never had a Mac, and this fact alone might severely skew my judgement. But on the other hand, i never had to have a Mac as a Java developer. And this most certainly doesn’t change now with Leopard. Windows (in its various flavors) was and remains my only Java development platform (both at work and at home), with Linux and Mac delegated to what they really are at this point in time - alternative OSes with minor penetration to be installed for platform-specific bug fixes. Will this change in the future? I’m a pragmatic person, so i don’t say "no".

Cross-posted on Pushing Pixels. If you have comments, click through.



Rainbow 1.1 - SVG browser for remote SVN repositories

Posted by kirillcool on October 08, 2007 at 08:57 AM | Permalink | Comments (0)

Those of you who came to the session (PDF link) that Alex and I have presented at JavaOne 2006 saw the application that we wrote to illustrate different animation, translucency and transition techniques. The project itself was named Rainbow and all the bits were made available immediately after the session. Unlike many other demo applications written specifically for JavaOne, Rainbow was not meant to be one-shot sow-it-all-together-over-the-pizza to be left stagnating in the dark, and over the past month i have added a few big features.

There are two main new features that you can find in the version 1.1 (nearing RC stage), code-named Nightstone:

  • Support for SVGZ format in addition to SVG
  • Ability to browse local and remote SVN repositories with the new breadcrumb bar functionality from Flamingo.

To try the latest dev version in action, click on the WebStart button below:

After the application has been downloaded (it is about 12MB large, including the bundled Batik, Substance, SVNKit and a few others) and granted permissions (as before, you can convert the SVG images to Java2D code classes and PNG images and save them to local disk), you can browse two remote SVN repositories, Oxygen and Kalzium.

Here is a screenshot that shows a few icons from the Oxygen SVN repository:

As you can see, the application is able to show compressed SVG images (in SVGZ format) after these have been downloaded from a remote SVN repository. Here is a screenshot of another Oxygen folder:

As before, when you click on an icon button, you will see another frame pop up with three tabs. The first tab will show you the SVG contents (XML), the second tab will show you the matching Java2D code that you can save as a local class, and the third tab will allow you to apply a few effects on the SVG image and save it as a local PNG file. For example, if you're interested in more details on the new Konqueror icon, here is what you'll see:

Want to see it inverted? Click on the "Invert colors" checkbox et voila:

Still convinced that web applications are the way of the future?

Also published in Pushing Pixels



Java SE 6 Update N. Is that a real name now?

Posted by kirillcool on October 01, 2007 at 12:37 AM | Permalink | Comments (8)

In what appears to be the latest installment in the naming saga of Java releases, Sun officially renamed the "Consumer JRE" to "Java SE 6 Update N". Originally pioneered by Ethan Nicholas, it had a few sexy names, such as Java Browser Edition, Java Kernel and lately Consumer JRE. And now the official name is out, ant it is the most unpalatable name for a Java release that i have ever heard.

The promise made by Sun at JavaOne 2005 about the new release schedule for JDK was simple - no more minor releases. Starting from JDK 5.0, there will be no longer .1, .2 and so on. Only bug fixes, named with small letter u. It worked with JDK 5.0, and it worked up until now with JDK 6.0 (or JavaSE 6.0 is the official terminology), which also sadly eliminated the nicknames for Java major and minor releases. So what is so different now?

With so many new features in the "Update N", it's not really a bug fix release. It's really a big major release, but marking it as such would make its adoption even more problematic. However, marking it as "Update N" doesn't make any sense at all. What does "N" stand for? Will there be any updates once it's released? Most certainly there will, we're already at update 12 for JDK 5.0. Will that be "N+1"? "N++"? "O"?

Why not admit the obvious? It is a big release with major new features, just like 1.4.2 was compared with 1.4 and 1.4.1. If you don't want to call it 7.0 (which it should really be), name it 6.5. Do you know how many syllables are there in the new name? Eight. How many syllables in "Silverlight"? Three. Apollo? Three. Flex and Flash? One. Make it sexy. Make it scream for headlines.





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds