VANCOUVER, British Columbia—In a meeting of programming heavyweights dubbed a shootout of competing platforms, participants exhibited criticism and sarcasm, but also a grudging respect for their opposing peers.
At a session entitled “The Great J2EE vs. Microsoft .Net Shootout” at the OOPSLA conference here this week, software development superstars debated the relative strengths and weaknesses of Microsofts .Net and Suns Java 2 Platform, Enterprise Edition. The panelists included Anders Hejlsberg, Microsoft Corp. distinguished engineer and lead designer for the C# language; John Crupi, chief Java architect for Sun Services at Sun Microsystems Inc.; Don Box, leading Microsoft architect on its Indigo project; Rob High, IBMs chief architect for the WebSphere Application Server Family; and Alan Knight, lead developer for the Web Toolkit at Cincom Systems Inc. and a Smalltalk expert.
Asked whether Microsofts developers had Java envy or vice versa, the panelists had a variety of responses but mostly expressed mutual respect.
“There are certainly people in the big house that have Java envy,” Box said. “I know that for every Java idea there are probably three different implementations of it in .Net floating around Microsoft.”
Crupi said: “I think its admirable that they are like Java. Microsoft is in an interesting position in that they have seen the successes of Java and Java technology and were able to learn that and apply it. And the ways that theyre applying it, some are very interesting and some are still lacking in addressing all the needs of the enterprise developer.”
Heljsberg acknowledged the contributions of Java. Indeed, many maintain that his C# creation is as Java-like as languages go.
“Wed be crazy not to recognize the success the competition is having,” Hejlsberg said. “I think its obvious to anybody that theres competition between .Net and Java. And I think wed be stupid to ignore what theyve done there. Ive seen further by standing on the shoulders of giants. There is so much in this industry that theres really no reason to reinvent. So I think we are all learning from each other.”
IBMs High said he did not “subscribe to the idea that there is one thing that fits all needs. So I would hope we dont end up with a single model with the expectation that that is a utopia. I dont think the best move is for J2EE to emulate everything .Net did or vice versa.”
Knight, who was on the panel to represent an independent view, said: “I would certainly be willing to agree that both Java and Microsoft have both gone off in the wrong direction and to some extent are following each other in circles. But there are positives and negatives. The positive is they are learning from each other and gaining best practices. The negative is they are chasing each others tails to get feature checklists matched up, regardless of value to developers.”
In response to a question asking what feature each side saw as most appealing in their competitors platform for enterprise development, Box took a long pause as though he had no response, but then said, “I love the fact that the VM [virtual machine] is fairly small…”
Language partisans debate
Crupi, a respected J2EE architect, said, “I love what they have done with annotations and Web services.”
Meanwhile, Hejlsberg, widely known for his language expertise, having created Turbo Pascal, Delphi and C#, said, “I respect that theres a kernel of simplicity in the Java system thats probably long since been drowned out by lots of libraries” like so many other systems.
The independent minded Knight quipped: “Its interesting they would comment on the simplicity because thats the part I thought was missing.”
High then took one of the better shots of the day when he said, “I would love to have the benefit, the luxury of only having one platform to support. So if there was anything Id say I like about .Net is it has managed to remain myopic. There is a lot to be said for homogeneity.”
The panel made for some lively debate and humor provided by Martin Fowler, chief scientist at ThoughtWorks Inc., who chaired the panel. For instance, both Box and Hejlsberg wore black shirts. Fowler said, “I see the Microsoft guys are dressed in black. Are they taking this evil empire thing a little too seriously?”
Other topics covered during the panel included dynamic languages, the impedance mismatch between object-oriented languages and relational databases, software versioning and Web services standards and security.
Hejlsberg said he is looking at dynamic languages or scripting languages for “some of the things we lost in the move from COM [Component Object Model] to .Net.” However, he said, “Dynamic languages are more productive. Sure, you get the program written quicker, but you also get the runtime errors quicker. The code is sometimes buggy. Although, Im not trying to diss dynamic programming languages.”
Crupi said that although there is no plan to add dynamic languages to the Java platform, there is a Java Specification Request for Groovy, JSR-241, “and I anticipate there will be more of these dynamic languages in the future.”
Knight said there seems to be a certain amount of confusion about what constitutes dynamic languages. He said one thing these languages do is provide “the ability to execute half-formed thoughts.” In response, Box quipped, “Microsoft has been accused of shipping half-formed thoughts” for a long time.
But a more serious Box said: “Im much more interested in functional languages than dynamic languages. The brevity of having the compiler do more of the work is a good thing.”
Regarding the object-relational mapping issue, Hejlsberg said, “This is one of my pet peeves – the enormous impedance mismatch between databases and enterprise programming languages. Im amazed at how much progress we can make by integrating the two worlds and O/R [object-relational] mappings are the first stop along that path… Im spending a large portion of my time trying to figure out how to solve these problems.”
Microsoft is at work on an object-relational mapping technology effort known as ObjectSpaces that was slated to be delivered with the upcoming Longhorn operating system.
Meanwhile, Box took a swipe at the Java camp. “I marvel at how many O/R layers there are on the Java side,” he said. “The thing that scares me about a lot of their O/R approaches is its basically going back to the early 90s model… I hope the Java community keeps putting more troops into the Vietnam that is O/R.”
In addition, Box said, “This O/R thing has been a distraction. The real problem people are struggling with is dealing with concurrency.”
Regarding versioning, Hejlsberg acknowledged the difficulty of versioning, and then said, “One of the big differences here between Java and .Net is the complete separation we have between logical and physical naming. This is one area where Java can learn a whole lot from .Net.” Though he added: “We dont claim to have all the answers.”
The discussion on Web services security sparked a bit of a challenge. High, in essence called Microsoft out to come forward and support the submission of Web services security specifications to “open standards bodies.”
Box said in terms of the core wire-level format “there isnt a lot of contention in the industry” around security. But High said at the level of the various Web services security specifications IBM and Microsoft have teamed on, its not good enough for just IBM and Microsoft to get together, but for us to take it to an open forum…”
Box did not rise to the bait. After Crupi joked about Sun now being a “very good partner with Microsoft,” IBMs High cracked that “its amazing what $2 billion will buy,” in reference to the Microsoft-Sun Java settlement earlier this year. Box laughed and said, “Wow, can we buy you guys off for $2 billion?”
(Editors Note: This story was updated to reflect an off-microphone quip made by IBMs High, in reference to the Microsoft-Sun Java settlement.)