We Can All Just Get Along
I leaned over to Tim Boudreau, NetBeans evangealist, and said, "Boy, wouldn't the bloggers love to get a picture of this." I couldn't tell if he looked amused or worried.
The picture I was referring to was the two people sitting next to me. They were NetBeans Platform architect Jaroslav Tulach and Eclipse Platform architect Jeff McAffer.
Disclaimer: There's NOTHING going on behind the scenes. Don't be on the lookout for any press releases. These two engineers just happened to meet each other at JavaOne. And, because they solve very similar problems in the course of their work, they had a lot of fun discussing these problems with one of the only other people in the world who understood the issues involved.
And, because both projects are open source, they were completely free to do so.
Afterwards, Jaroslav said to me, "It's nice to have someone to talk to."
For me, it was a lot of fun to listen to. They were both very candid about what they like about the others' approach, and what, given the chance to start over, they might have done differently.
Another fascinating thing was how similarly the two platforms chose to solve certain problems. The NetBeans Lookup mechanism and OSGI Services have a remarkably similar API, and their behavior with respect to corner cases (like what happens if the module providing a service implementation is dynamically unloaded) is pretty much identical.
Let me let you in on a little secret. The engineers on these projects have a healthy respect for what the competition is doing. Nobody I know on the NetBeans team thinks Eclipse sucks, and though Jeff is the only Eclipse developer I've met, from what he's told me, I gather the reverse is true.
So, which IDE will win? Wrong question. In my opinion, they'll be leapfrogging each other in different feature sets for a long time to come. And that kind of friendly, technical competition serves us end-users even better than cooperation.
And kudos to Jeff for approaching me in the back of the room at a NetBeans technical session. You're a classy guy.