The Source for Java Technology Collaboration
User: Password:



Ethan Nicholas

Ethan Nicholas's Blog

So long, and thanks for everything

Posted by enicholas on June 28, 2006 at 10:25 AM | Comments (24)

When you work at a major Internet company like Yahoo!, deployment is a Big Deal. You have millions of customers running every version of every OS imaginable, some with marginally working computers, and they all need to be able to run your software. And they need to run it now -- make them wait too long, or download too much, and they'll give up and move on to your competitors.

While I'm definitely a huge Java fan, it's a hard technology to deploy to end-users. If a particular user doesn't have Java installed, or doesn't have the right version of Java installed, there are major challenges surrounding the detection, installation, and upgrading process. Even if users have the right version of Java installed, its behavior in web browsers isn't necessary all that reliable. I posted a couple of high-profile rants about Java deployment issues recently, to try to call some attention to these issues.

I wasn't really expecting much of a response. I figured some fellow complainers would show up, we'd talk amongst ourselves for a little while, and that would be the end of things. I wasn't expecting Sun to even notice my complaints, let alone actually do something about them. I was happy to be proven wrong.

I was asked to put together a resume, and invited to interview with the Java Deployment team. After two rounds of phone interviews and a grueling eight-hour interview process in Burlington, I accepted an offer to join Sun, and will finally have the opportunity to address some of the problems that have been bugging me for so long. This is a really exciting change for me -- to finally be working on Java, instead of just with it, and to be able to influence where things are headed... well, it's a Java geek's dream come true. Or at least it's this Java geek's dream come true.

We're still working out the details, but I should be starting at Sun in about a month. Yahoo! is a great company, and has been very good to me over the years, but this was an opportunity I just couldn't pass up.

To dispel any rumors...

Before any rumors get started, let me be the first to say that just because I blogged about some deployment ideas does not mean that any of those ideas will necessarily get implemented. Sun obviously found them interesting, or I daresay I wouldn't have been hired, but there's a big difference between finding an idea interesting and actually putting in the time and money necessary to implement it. In particular, don't expect a Java Browser Edition -- much as I would love to see it happen, I'm not naive enough to believe that it's at all likely.

I do have a lot of ideas for improvements to the Java Plug-In and Java Web Start; reasonably small, practical features that will nevertheless make a huge difference in how easy it is to deploy Java programs. Hopefully some of them will actually get implemented eventually, but at this point it's far to early to speculate on how things will work out. Rest assured that I will be doing my best to push for easier deployment solutions, and I'm all ears if you have any suggestions of your own.

What about JAXX?

What does this mean for JAXX, the declarative XML user-interface language I'm working on? In the short term, not much. The position I was hired for has nothing to do with JAXX, and I will still be doing all JAXX work in my spare time, rather than as a Sun-sponsored activity.

What about the long term? Your guess is as good as mine. All I know for sure is that I have a lot of ideas for the future of JAXX, and will continue to crank away on it. If the Swing team decides to add a user interface language to Java at some point (which I know they have considered), I expect I would at least be involved in the discussion. Other than that... who knows?

Looking ahead

The decision to leave Yahoo! was both difficult and painful, but I think I made the right choice. I'm very excited to be joining Sun, and I hope that I will be able to really make a difference. Wish me luck!


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • I'm glad Sun hired you! You're gonna love it there :)

    Posted by: gfx on June 28, 2006 at 10:52 AM

  • 8 hour interview?! WOW! But still congrats!!

    Posted by: suryad on June 28, 2006 at 11:47 AM

  • HUmm, surprise, in a time when Sun will do some thousands of layoffs. Anyway I wish great success at your new job.

    Posted by: claudio on June 28, 2006 at 11:49 AM

  • Congrats Ethan, and welcome to Sun. :)

    Posted by: jdinkins on June 28, 2006 at 01:20 PM

  • Wish you good luck and hope the Java Browser Edition becomes true. It is badly needed.

    Posted by: bardubitzki on June 28, 2006 at 01:48 PM

  • congratulations! best of luck.

    Posted by: eitan on June 28, 2006 at 01:49 PM

  • Don't forget us! The problem you've been bloging about are still there. I hope that you push the solutions forward.

    Posted by: imjames on June 28, 2006 at 03:46 PM

  • Nich, hope your dreams come true. wishing you all the best, (BTW - would like to see that)

    Posted by: ayyagari on June 29, 2006 at 01:31 AM

  • This is Uber Cool! Welcome to Sun. Looking forward great new deployment features from the Java team. And lemme assure you, you'll love it here at Sun. This *is* exciting news.

    Posted by: bharathch on June 29, 2006 at 05:56 AM

  • Congratulations! Best of luck with your new job :) btw, we don't need a JBE, we just need a plugin that quietly sits and makes the startup of applets instant. (hehe, just thought i'd drop that in here.)

    Posted by: ilazarte on June 29, 2006 at 06:30 AM

  • This is excellent news. Welcome aboard!

    Posted by: gsporar on June 29, 2006 at 07:55 AM

  • Congratulations! good luck :-)

    Posted by: kketernal on June 29, 2006 at 09:26 AM

  • Ethan, congrats on the new job.

    I know you specifically mentioned to not now expect something similar to "Java Browser Edition" that you specified in a prior post. Nonetheless, that is one of my favorite posts on java.net, and that is EXACTLY what Sun needs to do with Java to dominate client side use. I hope you stick to your guns and try to promote a modular, simple, install-features-as-you-need-them approach to Java in the browser (heck, even on the desktop). If Java today was what you specified in your article, I have no doubt that it would be the priemer tool used for RIA. It is soooo much better than the others, but the huge downloads and delayed startups are unacceptable to the majority of uesrs. Java is everywhere, but unfortunately it's nowhere to be found within web pages.

    I'm very excited about Mustang. The JVM is faster overall, swing is faster, etc. But I see the JRE getting bigger and bigger. No problem for a corporate desktop app, or even an applet. But for a public facing applet, Mustang is worse than ever. NO ONE IS GOING TO DOWNLOAD A 25+MB RUNTIME to view my stupid menu effect I've embedded in my web page. This is SOOOOOOoooo frustrating. Applet popularity could be absolutely huge if Sun would just refactor the obvious.

    You and I can see how Sun could crush all other RIA toolkits. I sincerly hope that they heed and ACT on the ideas you outlined in your article.

    -Bryan

    Posted by: prime21 on June 29, 2006 at 10:58 AM

  • Congratulations and best of luck for your @ Sun endeavours.

    Posted by: pariti on June 29, 2006 at 11:00 AM

  • Bryan: Don't worry, I'm not giving up yet. I just said don't expect it -- that certainly doesn't mean I'm not going to work my butt of to try to make it happen regardless.
    I think the JRE download size is a deal-breaker for most people, and the real shame is that it would be relatively easy to modularize -- ClassLoaders already have the ability to download classes on demand. All one would have to do would be to modularize the runtime library appropriately, allow applets to specify "I need these four modules" so that they can all be pre-installed, and if an applet happens to try to access a class which isn't currently installed, the module in which it resides gets downloaded. And this would be 100% compatible with all current Java software, so I don't see any major drawbacks.
    Knowing me, I'll probably end up going ahead and building it in my spare time and then trying to convince everybody else that it's a good idea. Keep your fingers crossed.

    ilazarte: I happen to know that Sun has experimented with that idea. I'll ask around and see if I can figure out why it was never released.

    Posted by: enicholas on June 29, 2006 at 11:24 AM

  • Congrats. I agree. I'd read something recently that Sun had gave a go-ahead to put Sun's JRE as part of the standard distrubtion for some flavor or another of Linux.

    I say - it's about time. I got the nasty surprise of there's a GNU Java SDK / JRE on Fedora 5. I kept getting wacky errors - until I realized I wasn't using Sun's JRE / SDK. Post installation of the Sun JRE & SDK I was fine. Reminded me of the Microsoft Java VM days.

    Getting off track. Welcome & agreed about deployment.

    Posted by: phlogistic on June 29, 2006 at 05:42 PM

  • As I understand the only reason SUN does not have A JBE or subset of Java is that they dont want people to install a small amount of the runtime and people/developers to write their own third party libraries, thus fragmenting Java and in reality losing the write-once run anywhere ability. I certainly want some parts of the runtime broken up and an extension mechanism like Office (especially for extras like Java3D etc) but it is the WORA ability question that must be answered for SUN to do this.
    I don't know what the solution is but this is the question that has to be answered to convince SUN to do it, it really is that simple as I understand.

    Posted by: dutchiedave on June 29, 2006 at 06:50 PM

  • dutchiedave: I never would have suggested this if it meant sacrificing WORA. It won't -- and as I said, I'll probably end up putting together a demo in my spare time.

    Posted by: enicholas on June 29, 2006 at 07:25 PM

  • "Congrats. I agree. I'd read something recently that Sun had gave a go-ahead to put Sun's JRE as part of the standard distrubtion for some flavor or another of Linux.

    I say - it's about time. I got the nasty surprise of there's a GNU Java SDK / JRE on Fedora 5. I kept getting wacky errors - until I realized I wasn't using Sun's JRE / SDK. Post installation of the Sun JRE & SDK I was fine. Reminded me of the Microsoft Java VM days. "

    Don't blame Sun for the problems with Linux, blame the GPL zealots who won't distribute anything that's not controlled by them.
    There's already a major upset inside the Debian community with those who worked with Sun being called traitors to the cause of open source by others who feel strongly that even talking with companies is tainting their sanctity.

    Posted by: jwenting on June 29, 2006 at 11:47 PM

  • My
    Dad will be really pleased !

    - Danny

    Posted by: dannyc on June 30, 2006 at 12:24 PM

  • I think having a subset of Java or a JBE by definition allows for the loss of WORA because not every Java installation will have the same base code. This definately seems to be SUN's stance and it does make sense. Don't get me wrong I think there desperately needs to be a solution. I am particalarly desperate for this to be solved.
    One solution I can think of is that when a new JRE is requested by a webpage only that part that the applet needed is downloaded immediately but the rest of the JRE is trickle downloaded at some time in the future. This would guarantee the whole JRE is always available and in essense there would be no break up of the JRE, and that the user gets a fast loading applet with a new JRE.

    Posted by: dutchiedave on June 30, 2006 at 04:11 PM

  • dutchiedave: The solution I propose for modularization is twofold. First off, programs can specify what 'pieces' of the Java library they require and be guaranteed that all of those pieces are available before they are launched (by downloading and installing them if necessary). Secondly, if a program happens to touch a class which is not currently installed, the module in which that class resides is automatically downloaded and installed, and execution proceeds normally. As far as the executing program is concerned, there are no functional differences between the current behavior and the proposed behavior -- it still loads classes normally (although the classloading might take a lot longer, if a module needs to be downloaded and installed). All of the JRE classes are still available, whether a program has specifically requested their installation or not.

    I'm glossing over a lot of details here, of course -- I have given this a lot of thought and have solved a lot of issues -- but the point is that I would never compromise WORA. It's the single most important feature of the Java platform, and I am confident that the solutions I have in mind will maintain WORA while providing enormous benefits. And if should turn out that I'm wrong -- that there's some significant unforeseen problem with this approach that can't be solved -- I'll be the first to back off and announce that this was in fact a bad idea.

    Posted by: enicholas on June 30, 2006 at 07:28 PM

  • I personally have absolutely no objection to your proposal and it absolutely would solve the downloading problem. But there are definately other people that do not want the JRE broken up. They do have an argument. For instance would you use the XML libraries that come with the JRE if they probably were not on most clients computers. Some developers would be tempted to use third-party XML libraries for some particluar reason (performance etc) that only run on a particular platform. By guaranteeing the JRE XML libraries are already installed on the client the decision for the developer is really already made. Breaking up the JRE will have consequences. I personally believe the benefits outway the consequences but I'm not the one who needs convincing. If the only thing stopping the execution of applets before the entire JRE is downloaded is the issue of breaking up the JRE, then I think guaranteeing the whole JRE will be downloading after the execution of the applet is still a very satisfactory solution.

    Posted by: dutchiedave on June 30, 2006 at 07:54 PM

  • Congrats Ethan! I'm very pleased to see someone finally stepping up on one of Java's most annoying (because very visible) issue, IMHO.

    I've just posted a blog note summarizing my thoughts, like the usage of upcoming Java Modules (JSR 277) as a way to break up the JRE in pieces to build the JBE you proposed.

    --Jerome Louvel,
    Restlet: REST framework for Java

    Posted by: jlouvel on July 06, 2006 at 05:56 AM



Only logged in users may post comments. Login Here.


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