Return to Home Page
      Blog     Consulting     Seminars     Calendar     Books     CD-ROMS     Newsletter     About     FAQ      Search
 

4-25-03 C#, Java and Joshua Bloch

One of the impressive things about Microsoft is that they don't stick their heads in the sand forever. As the company has gotten larger and bulkier, they have gotten slower in responding to changes in the computing environment, but they still seem to become aware and change faster than most other companies. An example of this is Linux and open source -- initially, these were not even on the MS radar screen, then there was something about those things never having an impact in the real world, then they became evil and anti-competetive (that is, Microsoft was claiming this about open source), and finally MS publicly admitted "it's a problem for us." And now they have the ability to make a change, to win back all the hearts and minds that they've lost over the past few years (and no, more aggressive licensing is not the answer).

C# and .NET is a step in the right direction, and is the first innovation that I've seen from Microsoft in the programming world (until only recently their C++ was the least-compliant implementation of the language out there, and things like MFC are not worth getting started on). Certainly, .NET and C# draw very heavily upon Java, and they had to convince Anders Hejlsberg (whom much of the innovation came from) to come over from Borland. But they saw both the need and value of it, and made it happen. It is possible for companies to reinvent themselves, as is evident with IBM's Java projects (especially Eclipse).

When I interviewed Joshua Bloch last Monday (for my "Making Software" series of audio interviews, which I plan to have available on MP3 CD later this year), I was heartened to see that he had a C# book on his desk. The Java team is clearly not ignoring the threat of C# as Microsoft ignored Linux and open source for so long. Josh told me something that I found particularly interesting: along with the new features already on the list for "Tiger" (JDK 1.5), including true enumerations, autoboxing, and generics (templates), they are adding attributes, something (along with autoboxing) taken directly from C#, because it's a good idea.

Josh also said that JDK 1.5 would probably be the last big change to Java, and one of the biggest ever (although he was referring to the core language, and acknowledged that JDK 1.2 with libraries like Swing and the new collections certainly had a very large impact on programmers).

I note that Eclipse (www.Eclipse.org) continues to make big leaps, including better JUnit and Ant support, as well as new and improved refactorings, and features like automated delegation method generation (so you don't have to inherit in order to get the interface of another class; this makes for better designs in a number of situations). This puts Eclipse on par with Microsoft's Visual Studio .NET as a programming environment, something that's very important for Java's competetiveness. Big companies are using Eclipse as development platforms, partly because IBM's WebSphere has an expensive add-on that makes it easier to create and deploy J2EE components, but also simply because (I think) it's from IBM ("Nobody every got fired for using IBM Open-Source Software?").

Competition is good for everyone. Now that Java has a real competitor in C#/. NET, and vice versa, we should see some seriously interesting developments.

PS: forget half the stuff I said above about Microsoft acknowledging that things are different now. I still think C# and .NET are very significant, but Steve Ballmer, in the process of marketing Windows Server 3000, says that open source can't innovate here.

    Links I Read
Cafe Au Lait
Artima
Daily Python URL
Martin Fowler
Joel on Software
Paul Graham
Cringely
Search     Home     Web Log     Articles     Calendar     Books     CD-ROMS     Seminars     Services     Newsletter     About     Contact     Site Feedback     Site Design     Server Maintenance     Powered by Zope
©2003 MindView, Inc.