Wednesday, February 15, 2006

Ed on software

Well, I'll never be as famous as Joel, but maybe I can at least get one of those "personal medals" for "blog-sledding" this year. My latest threads can now be found on ZDNet. I've been crossposting for a few days but now I'm ready to make the move. Hope to see you there.

Monday, February 13, 2006

Does anybody understand Ajax besides Google?

We all know the story of Ajax and XMLHttpRequest, about how a little known feature of Internet Explorer was mostly ignored until it was duplicated in some other browsers and Google started using it in their Mail, Maps, and Suggest features. It'll be a year ago this Saturday that Jesse Garrett coined the term. Dozens of books and articles and tutorials later, I have to wonder, is this too complex for mere mortals to understand?

Consider this article about the new GTalk feature in GMail. Once again, Google has figured out how to do something that most people thought was impossible. Or look at this article about how they draw lines on top of maps. If it weren't for 'View Source', would anybody but a few wizards at Google know how to do this? And how do they feel about us learning by looking at their source code anyway?

Where I grew up we had these trees that dropped what we called "sweetgum balls" all over the ground every fall. They were impossible to walk on or even pick up without getting pricked. Developers are scrambling to pull together toolkits and consortiums and projects to get a handle on the prickly technique that is "Ajax". Will it work? Since everyone seems to want it to work very badly, perhaps. But I think most people are just going to be sporting band-aids until we're all wow'ed by a better, hopefully simpler, solution.

Lobby Google to include Java

Google Pack is a bundle of software that Google "likes". Google Pack offers software that is free, easy to use and useful. Google chooses software that will be considered essential to users of all levels. They don't accept anything with adware or spyware. Most importantly, the software automatically updates itself with new versions of all installed programs.

This software bundle achieved a higher importance recently when it was discovered that Google and Dell were close to bundling Google's software on new Dell PCs.

This morning I'm trying to get the latest JSE 5 update installed on my workstation. Something was locking a directory so it wouldn't let the install finish even though I killed all the usual suspects. So I rebooted and now I'm in the process of uninstalling the last 4 updates that I had installed just so there will be a clean slate. Then I need to decide whether to install Mustang (JSE 6) before or after JSE 5. Then I expect it will take a few tries to get Eclipse to use the right JDKs. By then it will be lunch time. Is there a better way?

I think so. How about if Google included Java as part of its Google Pack? All the Google Pack installs and updates have been painless so far. Maybe somebody has finally figured out how to update PC software without losing hair in the process. But how do we make that happen?

It turns out Google made it easy by providing a page to suggest new software be included. So everybody reading this, if you would like Java or any other software that is "essential to users of all levels" to be included in this unique distribution medium, click on this suggestion page, select the option that says "I'd like to suggest software to be inlcuded in Google Pack", and then follow the directions to make your request known.

Friday, February 10, 2006

What is Oracle up to?

Businessweek is reporting that Oracle is in negotiations to buy several open source companies including JBoss, Zend, and Sleepycat.

"Oracle is in talks to buy at least three open-source software companies in deals that could be valued at more than $600 million, BusinessWeek Online has learned. The transactions would extend the 18-month, $18 billion spending spree by Oracle Chief Executive Larry Ellison that has engulfed PeopleSoft and Siebel Systems. They would also put Oracle in control of some of the most sought-after open-source projects. Overnight, Redwood Shores (Calif.)-based Oracle would rival IBM as the prime evangelist of a movement that's revolutionizing how software is developed and distributed."
Is the beginning of the end of open source? No, actually this is a validation of open source. Hmm, that's not exactly correct. How about a pragmatic realization that people don't want to pay anything for software. Well, that's closer, but not exactly right either.

Consider what the Internet did to stock trading. You used to have to rely on a specialist to tell you what to buy, and to do the trades for you. Now, most people do their own research and use an online broker. The same thing happened to hardware during the transition from big iron to commodity systems. And now, instead of waiting for some sales rep to tell them what they need, a potential customer has the option to download and try out software they need. There's no need for "price quotes" and contacts and intrusive callbacks when no money is exchanged up front. It's much more efficient and flexible for the customer.

I expect this to dawn on more and more ISVs like Oracle in the years to come. By getting in early and leveraging money made in traditional licensing, Oracle can buy recognized brands like JBoss and hit the ground running. It's not about buying the "community", or even the developers. It's the brand and the mindshare and the time to market that is more valuable.

We, as professional developers, will still have jobs. Money will still change hands. But it will do so at a different place. It will go towards consulting, support, customization, and general peace of mind. The value of the software is not in the bits, it's in what the software can *do* for the customer. How much it can save them, or how much revenue it can generate for them. Customers will pay when they're getting their money's worth.

Other industries figured this out a long time ago, with everything from razors to printers to no-cost mortgages. Red Hat was one of the early pioneers in software. As Larry Ellison says, "We are embracing it. We are not going to fight this trend. We think if we're clever, we can make it work to our advantage." Are you clever enough?

Thursday, February 09, 2006

JBuilder and Delphi are alive and well

Competitors of JBuilder, Delphi, and other Borland IDE products would have you believe that these are suddenly dead products and you should abandon them immediately. Nothing could be further from the truth.

Just recently the IDE team came out with Delphi 2006, a major upgrade to its turbo-charged Windows development environment. Many popular programs such as the MySQL database administrator were created with Delphi. Also a new Eclipse-based version of JBuilder is expected to be demoed at EclipseCon 2006.

David Intersimone ("David I") Vice President, Developer Relations and Chief Evangelist at Borland wrote in an open letter to the development community,

"The goal is to create a standalone business focused on advancing individual developer productivity using the people inside Borland who are focused on the success of these award winning products."

So all that's happened is that Borland is spinning off its IDE business into a separate company so that the "Borland" company can concentrate on big ticket application lifecycle products. David himself is one the folks at Borland who will follow the tools to their new home. He writes:

"I’m really excited to be moving to the new company. We’ve got the right team members, we’ve got the tool and component partner eco-system, we have the authors, trainers, consultants, and we have the most important part – a loyal community. … I want to assure all of you that we are here in Scotts Valley, and around the world, working on future versions of Delphi, JBuilder and our other products. We are still listening to your needs, issues, and suggestions. We are tracking with the new platform initiatives for Windows, .NET, Java, open standards, and emerging technologies that you want to leverage."

That doesn't sound like a dead product to me. To the contrary, David writes:

"This is not the shutting down of a product line, but the empowering of it. This move is in the best interests of our customers, company, and community."

Wednesday, February 08, 2006

New version of IDEA to support Eclipse compiler

The Java compiler developed for Eclipse is widely regarded as being one of the fastest and most capable in the industry, perhaps surpassing Sun's own javac. Due partly to its quality, and partly to its liberal open source license (which unlike GPL, lets it used by both open and closed source projects) it has found its way into a wide variety of applications. For example one major software vendor uses a modified version of the command line compiler to scan its code for I18N policy violations, and Apache has put it into their popular Tomcat web server to compile Java Server Pages.

Now JetBrains IDEA, which is putatively a competitor to Eclipse in the Java IDE realm, has announced plans to support this compiler in their commercial product. On the wiki page for new features in IDEA 6.0 (code named Demetra), one of the new Core Features is listed as "Support for the Eclipse Java compiler". With this feature, IDEA users would be able to enjoy super-fast compilations and superior diagnostics. Perhaps IDEA could even tie into the incremental compilation that gives the Eclipse compiler an advantage over ant-based alternatives. And since the Eclipse license requires any enhancements to be donated back as open source, it's possible that the wizards at JetBrains can make further improvements to the compiler that will benefit both the IDEA and Eclipse communities.

Tuesday, February 07, 2006

Callisto to push the limits of Update Manager

David Williams is spearheading an effort backed by the Eclipse Foundation's Architecture Council to improve coordination of Eclipse's update sites. In particular, the focus is on the projects that will make up the Callisto simultaneous release planned for in June. In his ambitious proposal, David writes:

"We should be explicit, there [are] no plans to provide a big-huge-zip that contains all the Callisto projects … its expected to be provided entirely via update manager. "

There are 3 primary use cases being considered:

  1. End-users will install a minimum "platform" program and from that be able to use Update Manager to install all of the Callisto release.
  2. Committers and developers will install an "SDK" version of Callisto, to be used while developing their own plugins.
  3. Adopters can provide their own update sites, and "point to" appropriate sites to pick up prerequisite features.

Some other notable details:

  • JARs from various projects will be pulled in using mirrors with automatic GeoIP detection to find the best mirror.
  • Mirror sites will be given at least 24 hours of exclusive access to the Callisto files before releasing them to the public.
  • A Foundation-hosted separate mirror site with additional bandwidth will be used to accomodate the expected flood of downloads immediately after the release.

This is just a proposal but if it can be pulled off it will greatly improve the user experience of downloading Eclipse (not just the Platform but also parts like Web Tools and C Development Tools). Initial testing will start this month (February) with the goal that "by the end of the M5 period (3/3), there will be a usable version of Callisto available via update manager". This will be demoed at EclipseCon 2006.

Read the full proposal here.

Monday, February 06, 2006

Hey Eclipse, come join the Sun party

I was looking at JSR 198 again and noticed they had released a "Proposed Final Draft" last month. Some Eclipse member companies are on the expert group but as far as I've been able to tell, the proposal itself would be very difficult if not impossible to implement in Eclipse. It looks more targetted towards NetBeans and JDeveloper. One reason: the Eclipse Foundation itself isn't on the Expert Group. The Apache Foundation is, so why not Eclipse? Eclipse isn't on the Executive Committee either. In fact, Eclipse is not a member of the JCP at all.

I feel it would be hypocritical of me to suggest that Sun join the Eclipse Foundation without also suggesting that Eclipse independently join the JCP. JCP has its share of problems (such as Sun's special position and veto, and the lack of transparency in JSR development to non-EG members), but that's not a good reason not to join. Eclipse could follow the Apache model there.

In my opinion, JSR 198 shouldn't be approved until there is a reference implementation for all the major Java IDEs, including NetBeans, Eclipse, and Jetbrains IDEA. That's the only way to tell if it will work and be "helpful" both to the framework providers and their consumers, the plug-in providers.

Sunday, February 05, 2006

Hey Sun, come join the Eclipse party

Roumen Strobl recently referred to part of a post from Gregg Sporar which listed several reasons why Sun doesn't want to join the Eclipse Foundation. Although I'm a member of the Foundation I don't speak for them, but I just wanted to respond to the points in these postings.

1. Not liking SWT is fine but not a good reason to stay separate from the Foundation (in fact, I'd say just the opposite). SWT is only one part of Eclipse technology anyway, look at projects like Corona. Also, I think most users don't care what widget set is used under the covers, but for those that do, they can make the SWT API run on top of Swing if they want (there's at least one project that does that).

Regarding WORA, the JRE uses a lot of native code just like SWT. Does that mean the JRE is not WORA? The thing is that the JRE package includes all the native code so a Java Swing app hopefully doesn't have to include any of its own. If the JRE package somehow included SWT then it wouldn't be an issue.

2. For application developers, there's more than just Swing and SWT. We have to deal with HTML, Ajax, Flash, Avalon, and so forth. A better answer might be a widget-library neutral representation of user interfaces along the lines of XUL. Backed by logic in Java of course.

3. People don't have to use the 'base toolkit' (I assume you mean the Eclipse SDK), there are many other collections available. For example on the WTP download page you can get an all-in-one download that includes Java + Web development (HTML/XML/JSP editor, etc.). Also there are distributions like Yoxos and value added commercial offerings like MyEclipse. Lots of options there. But I concede that the NetBeans packaging is superior to Eclipse from an end-user perspective. Those end users are Java users, so wouldn't it be in Sun's self interest to help Eclipse improve this from a position within the Foundation?

4. Those third-party applications look nice. Why does it have to be a one-or-the-other decision though? If they wanted, Sun could join the Foundation to get a seat at the table and help drive Eclipse direction to the benefit of all Java users. They don't have to agree with everything or use everything or contribute to everything.

5. Again, who is saying 'abandon'? We could merge the best features of both on top of a common OSGi based platform.

6. Many of the members of the Eclipse foundation compete against each other but by joining forces and creating standard frameworks we can avoid duplicating work and better compete against non-Java solutions. Making Java solutions stronger is certainly something Sun is in favor of, so why not join in?

In conclusion, I see lots of up side and no down side in Sun joining the Eclipse Foundation. There would be a little bit of pride-swallowing, but many other joiners have had to do that. The long-term benefits to the Java community would far outweigh any temporary discomfort.

Saturday, February 04, 2006

Eclipse updates still lag behind

I was putting the finishing touches on an update to my Rich Client tutorials today and wanted to make sure I was running the latest maintenance release of the Eclipse SDK, version 3.1.2. So I selected Help > Software Updates > Find and Install, then selected the option to Search for updates of the currently installed features and clicked Finish. After several prompts for mirrors it said all there was for me was a new version of EMF (2.1.1) and two other modeling features.

According to the eclipse.org home page, Eclipse SDK version 3.1.2 has been available for download since January 26. But here it is, 9 days later, and the update site doesn't have it. I had to download the 100+MB zip file and do a full clean install instead, and migrate all my plug-ins using the links directory.

Unfortunately, keeping Eclipse up to date is still one of the weaker points in the Eclipse story. I think the reason is that most Eclipse developers do not use Update Manager. There has been some progress in 3.2 but not nearly enough. It's hard to do right - the client software has to be smart, the release engineering on the server side has to be top notch, and all the components, projects, and people have to work in step with each other. But self-updating software is not just a frill anymore, it's a necessity.

Good examples of self-updating abound, such as Firefox, Netbeans, Acrobat, Google Pack, and so forth. There's no reason that Eclipse can't do just as good a job, or better, than any of these. Improving Update should definitely go on my "Grand Challenges" list for Eclipse. If you're in a position to help out, please do.

Wednesday, February 01, 2006

Goobuntu (Google+Ubuntu) is real, sort of

It seems that Greenspan watchers, left with nothing better to do, have turned their attention to Google. ChannelRegister reported that Google was working on a desktop Linux distribution called "Goobuntu", short for Google + Ubuntu. A Google insider says Goobuntu is real, but it's just for Google's internal use. Basically it's a pre-made image that their developers can install without having to stage it themselves. Besides, the insider writes, "Google getting into the Red Hat business would be kind of dumb, and it would distract from our moon teleporter and cold fusion projects".

Now if you really want to start a rumor how about this one: the next version of Google Pack will include Java 5 and Eclipse. Yep, I just made that up, but it would be nice, wouldn't it?