Arian Kulp's Blog
opinion, insight, and occasional code

Microsoft Development

Wednesday, February 16, 2005 11:07 AM

I've been playing with Visual Studio 2005 (formerly Whidbey) in their Beta 1, and Nov and Dec CTP builds and I must say they are impressing me more and more. I've been a pretty hard-core Java developer for a number of years and I've always loved the framework, but as I look at Java 1.5 and the .NET Framework 2.0 I see a pretty close convergence in many ways. Web development is the best it's ever been with ASP.NET and Struts/JavaServer Faces. Generics, iterators, and attributes make for very expressive code, which I consider a critical feature in a modern language.

<aside>I certainly value performance and minimization when possible, but I think you can definitely go too far that way. Grabbing an iterator-type object, then writing a while() loop around it may perform exactly the same operation (same opcode even) as the foreach counterpart, but it's immediately intuitive what's happening with the latter construction. For the purposes of maintainability and support, code must be self-documenting. Some slick trick to shave off two operations doesn't help when someone new is in the code. Besides, the beauty of using these new features isn't necessarily a direct immediate improvement (beyond the readability), but that you can trust that the compiler will do some better optimization in time. The compiler knows what you are doing and why so optimization can be that much better. If not today, then tomorrow, but if you use your own "optimizations" you cut yourself off from that.</aside> Phew. That was more than I intended to say on that subject.

Anyway. Java and .NET are converging with respect to features, but one place that has always hindered Java is Sun's lack of understanding regarding tools. Microsoft has just always gotten this one nearly perfect. Even in VB 5 days, I loved the IDE. At that point I was coming over from C on the Amiga and the SAS compiler was command line, so maybe it's an unfair comparison, but later seeing the various Java offerings I couldn't believe the gulf. Since Sun has never put a priority on the IDE even vendor that does has a different approach. This leads to people being "JRun developers" or "Eclipse developers" and so on. Each environment is different, which is great in terms of style, but the unfortunate side-effect is there is no common project format, and worse: different IDE's use custom classes to provide easy access to the powerful API's beneath the surface. Once you use all the wizards in IBM's WSAD, you are kinda tied into it. Of course, if you use IBM's WebSphere App Server this isn't an issue, but people do change over time.

Java folks don't like that MS controls the language and all of the tools, and it's definitely a two-edged sword, but it sure provides great integration capabilities. Besides, the .NET framework is free (like Java) including all SDK tools and compilers. It's only the IDE (Visual Studio) that they charge for. You can download/buy other IDE's, including Eclipse, but most people use Visual Studio. Why? Certainly there is a perception that it's the "preferred environment" being from Microsoft, but on the other hand, it really is the best option. With VS 2005 it gets even better as many features are now more transparent. No more "black box" wizards. Crack open the code and see what it's doing. You can do anything a wizard does, and it's not that hard to understand how. That's a great direction as far as I'm concerned.

Two years ago at JavaOne, Sun was showing off their new RAD development tool soon to be released. It was a good start, possibly what matured into Sun Java Studio Creator, but you could tell they were just playing catchup with Microsoft. It hasn't been enough to turn around the Java tools perception, though, and I still hear people say Notepad is the only IDE they need for Java! Of course you can use Notepad for .NET as well, but you'd be missing out. It looks like I'm going to be doing some J# work in the near future so I should get a taste of Microsoft's take on Java. I have to wonder if it will be everything Sun should have done, and I will wish I had it over the years! After I've done the work I'll write up a short impression of it. Could it be a worthwhile environment for making pure Java apps? Most Java developers wouldn't be comfortable with that. My wife (who has to hear me ramble on about this stuff!) made the comment that J# sounded like a "gateway drug" in terms of getting folks used to moving toward MS. It might have been the way I phrased things, but it certainly feels that way. I haven't "switched sides" in the sense that I wouldn't use Java again, but I'm quite pleased with what I'm seeing from Redmond these days.

Comments have been closed on this topic.