TechEd 2004, Day 01
I must admit, it was a little odd being a Java guy walking into a room full of .NET User Group Leaders from all around the country. The abundance of caffeine and general rowdiness of the 75 member crowd helped ease tensions somewhat, and while I got my bearings I took careful note of the group, its dynamic and the subject matter they were covering. What I found was equal parts encouraging and intimidating.
The TechEd conference doesn't start until tomorrow, but there were several pre-session groups meeting today. I had the good fortune of being invited to the User Group Leaders Summit, where I met my hosts, traded good-natured jabs with .NET devotees and talked shop with a bunch of hardcore development community volunteer leader-types.
The User Group Summit was headed up by the International .NET Association (INETA). From what I can tell, INETA User Groups are analogous to the Java User Groups. They're an independent organization, and their founder goes to great lengths to maintain a comfortable operating distance from Microsoft's PR machine, while simultaneously being careful not to alienate them. It strikes me that the INETA groups highly value their independence and don't want to come across as a Microsoft vendorfest to their members. They focus on C# development topics and although they thankfully accept Microsoft's sponsorship, they do maintain a good degree of independence. That's a difficult balance to strike.
What really fascinated me about the UG Leaders Summit was that the .NET Group Leaders from around the country knew each other, had their own community structure, and genuinely seemed to enjoy being around each other. These guys were rowdy. They were having a good time. And it wasn't just because we each got a 30 oz bottle of Tequila at the end of the meeting. People were really positive and nice. This was a slight cultural change for me, because all too often I find the Open Source Java community to be extremely high strung and competitive--sometimes to the point of being vicious. I like to think of the dynamic of our community as an extreme form of tough love. I haven't worked a lot with the Java User Group communities from around the country, and I have an inkling that things are a bit different in those circles than they are in the Jakarta / JBoss / TSS / Bile Blog OS Javasphere that used to form my only umbilical link to our community. (For the record, I don't think this "tough love" culture extends into the Java.net community--the folks from Sun's "shining city on the hill" are pretty amiable).
It was just a different vibe--not necessarily better, just different. I can see more of that in the future of the Javasphere. We live in a pressure cooker, but as the language and platform mature and we continue to carve out our niche, gain credibility in the industry and grow as developers, I think we'll see less of the infighting and more of the cooperation typified by last year's OpenEJB / Geronimo alliance and by the general good will surrounding Java.net.
One surprising thing I learned at today's Summit is that in the last 3 years, INETA and Microsoft have built up a 200,000 to 250,000 member developer community, and they're continuing to push forward, doing everything they can to make sure that .NET technologies take off at the local community level. They're hyperactively heading up programs to develop high school and college students, and they recognize the long term importance of bringing fresh blood into the industry. They are investing time, software and significant amounts of money into their evangelism efforts.
Essentially, what INETA and Microsoft are trying to do is outgrok the ASF on community building. And from what I just saw, they're way ahead of the curve. In their words, "we're trying to get it. You can help us REALLY get it." And by "get it" I think they mean to figure out how to have a successful user community in every city and on every major college campus in the world. I'm speculating, but it's hard not to smell ambition this raw.
The secret to their success as an organization, in their words, is that they focus on "the community and individual developers", something which I think the ASF has been rightly and repeatedly criticised on in recent days. As far as these guys are concerned, "the developers ARE the customers." They put a lot of work into developer-building, mentoring, developer guidance, etc.
Are we sunk? Hardly. We've still got a LOT to contribute to the enterprise cookpot. As far as build environments, unit testing tools and the wide spectrum of ASF licensed Open Source enterprise products go, we're still in the game. We've got tools like AOP, Groovy and Maven--industry altering software products that have thus far escaped the .NET community's attention. I see Open Source enterprise projects like the ones sponsored by the ASF and the Codehaus as the most crucial strategic assets we have if we ever want to bring the Java enterprise to the masses.
But it's an uphill battle. Java suffers from a reputation of being too complicated and too expensive, but that reputation is in my opinion exaggerated. For instance, it's possible that the EJB 3.0 spec committees are spending unnecessary time refactoring the EJB APIs. They're doing this in order to make EJBs easier to develop using agile and test-driven techniques. But the root of the problem might actually lie in the architecture of the major EJB containers. Maybe the "heaviness" of EJB containers prevents efficient container-driven testing. I know there are products available right now that address the need for dirt-simple in-container EJB unit testing, and it strikes me that the EJB spec committee could leverage this technology and devote more effort to things like security and authentication. Microsoft's not going to wait around while we get our act together.
In the end, the aggressive competition between different Open Source Java project teams might turn out to be one of our greatest strengths, if we can manage to keep the competition good-natured, and not forget who it is we're really working for. I pity the .NET outsider who tries to break in and compete head-on with the Groovy team, or the AspectJ folks. We'll see what happens.
Tomorrow I'll write more about my UNBELIEVABLE hotel room, and see if I can get any pictures up.