Although many components of Microsoft's .NET initiative are little more than vaporware, Microsoft's new development language, C#, is well defined. Referred to by people at Microsoft as a Java-killer, C# is poised to replace J++ in the upcoming Visual Studio.NET release, the product formerly known as Visual Studio 7.0. (You can find more information about C# and Visual Studio.Net at http://msdn.microsoft.com/vstudio/nextgen.) C# brings many improvements to the C++ language, but many at the expense of features that make C++ an attractive option in the first place.

For database developers who already use Visual Basic (VB) and Active Server Pages (ASP), C# holds little appeal. Although C# is arguably more powerful than VB, C#'s C-based syntax and development methodology will be a barrier for most VB developers. In addition, Microsoft will include many of C#'s important features in the next version of VB: Early VB 7.0 betas revealed a Web-enabled product with object-oriented capabilities. Furthermore, C# programs will require a runtime environment like the one used by VB. This requirement means C# doesn't have the advantage that C++ has over VB—the ability to produce standalone, executable images. Ironically, one argument that Microsoft has used against Sun Microsystems' Java is that the Java Runtime Environment (JRE) was essentially a platform on top of a platform (Windows). This argument strikes a chord with many C++ developers who strive to build their applications as efficiently as possible. C# runtime requirements also position it as a platform (the Common Runtime) on top of a platform (Windows). C# will hold little appeal for current Java developers (and soon-to-be-orphaned J++ developers) who already possess the most compelling features of C#.

New languages should introduce new technological advantages, as has been the case for the most widely used languages today. C brought structure and productivity enhancements over the assembler program. C++ extended C with object-oriented capabilities. VB brought visually oriented design and component-based development to Windows. Delphi filled an important gap by providing a potent combination of visual design and object-oriented capabilities. Java delivers cross-platform capabilities, automatic garbage collection, type safety, and full object-oriented support. Although it brings the same basic advantages as Java to the C language, C# stops short of offering any significant innovations.

Microsoft seems to have produced C# for the wrong reason, as a knee-jerk reaction to last year's Java ruling in which Sun's injunction bars Microsoft from distributing Java technology in its J++ and Visual InterDev products. Rather than complying with Sun's licensing restrictions and removing the Windows-specific hooks from J++, Microsoft flexed its development muscle and created its own Java knockoff. Microsoft's move seems more a nose-thumbing gesture at Sun than an earnest attempt to move language technology forward. The business world doesn't need more development languages, but it always needs better ones. From the database developer's standpoint, C# is an answer to a question that nobody outside of Microsoft asked.

End of Article




You must log on before posting a comment.

If you don't have a username & password, please register now.

Reader Comments

Java did not deliver Garbage Collection, type safety and full object oriented support. Those features existed in many other languages before. If a competitor company told me that I could not enhance my own product, I would certainly find a way to break free from those constraints. Sun's attempt to manage its product through litigation is almost as destintined to failure as Rambus'.

Darrel Miller

You obivously don't understand the .Net initiative. languages are no longer the "end product" for development organizations. The point of the Common Language Runtime, unlike Java, is to provide an open language platform that all languages can integrate with, C# just happens to be one of those languages. Sun and Java community have confused a development platform with a language. Microsoft has seperated those two ideas and provided a development platform (the CLR) seperate from its languages. This has enabled a MUCH HIGHER level of multi-language integration. The revolutoin is that language is no longer important, they're all syntatic sugar. Design and programming techniques are, finally, language independent. Something Java (as a development platform) has never nor will it ever offer. The idea that VB developers will not take to C# is a valid point, but unimportant. C++ development shops, however, I believe will immediately pickup the C# standard and march forward. Having worked in Visual C++ for many years, I've experienced the pains associated with building pure C++ applications, most of which are taken care of by C#. The problem domain that C++ is useful, much like assembly, has been severly reduced with the release of C#. It is interesting to not that Java provided a good number of the language innovations prior to C#, but then Sun sued microsoft so microsoft could not integrate Java into the .Net platform without violating the court order. So, they provided a language that improves upon C++, much the way that Java did. After working with C# for a couple of months now, I've found my staff to be more productive than C++, and have moved my VB developers over to C# effectively. It is nice to, finally, have a single language that my whole development shop works within (instead of the 2-3 we used to work with).

BTW, you've also missed the benefits associated with ASP+ and Webforms, and the fact that C# (and VB .Net) are now compiled languages that back the web forms. Both of which are innovations beyond the existing ASP platform. But that is a discussion for another time.

Tim Marshall

All we can hope for is that c# will evolve into something more powerfull with the next few Visual Studio release to follow this big one. So lets not give up on it completly as of yet, it might just take a few more years thats all.

Dmitry

The article completely missed the point. Please read this article below to have a better idea on .NET. http://www.sdmagazine.com/articles/2000/0011/0011l/0011l.htm

thanhNg.

thanh nguyen

Unbelievable. Only a superficial analysis of .NET can bring you to this conclusion. Michael, I really appreciate SQL Server Magazine (I'm also a subscriber), but this editorial has bad conclusions and bad arguments. From a certain point of view, VB.NET (as a .NET language) brings all the basic advantages of Java to the Windows platform.... So, why another language? If many VB developers are seriously considering to migrate to C# for new projects, there must be another compelling reason, no?

Marco Russo

Seems like you haven't read too much about the .NET Framework... .NET isn't vaporware.. BETA 1 is already out... And don't just look at C# as a successor for Java, it's more like the next version of C++. Look at the MSDN Show with Anders Heljsberg (the designer of C#) and you can see what C# is all about - building component-based applications. You don't need those IDL-files any more, since it's built into the language. And for the runtime issue: Every programming language needs a runtime - C++ too! for many programs a file named msvcrt.dll is distributed - in plain english you can read it as 'Microsoft Visual C Runtime dynamic link library'. But for C#, the runtime engine is the CLR (Common Language Runtime).

Have a nice day :)

Andreas Häber

I have to chuckle at how weak the points in this article are. It's almost as if it was written just to get MS developers ticked off so we'd have something to scream about. Well, the tactic worked. :) BTW, the comments by Tim Marshall above are right on. C# is a boon for C++ programmers who want to create Web applications quickly and easily in an MS environement. Plus, its ability via .NET to quickly and easily share data types and object classes with other .NET compatable languages is simply awesome. Especially when your trying to find qualified talent in the market place. I mean jeez, how on earth am I gonna find time to learn Java? With .NET, I can get C programmers, C++ programmers, VB programmers, even COBOL programmers all working together on a cohesive development environment. Also, let's not forget that C# will be an industry standard, whereas Sun refuses to let anyone but invited high-paying guests have a say in the Java product. Shame, shame on Sun for that one. Wasn't it Microsoft that was always being blamed for claiming to be smarter than everyone else and wanting things their own way? Well, it sure looks like their biggest critic Sun, has become the ultimate hypocrit.

Dan Maltes

If the future proves Michael Otey correct, I'll owe him an apology. If it doesn't, perhaps Mr. Otey will voluntarily acquire a position for which he IS qualified.

David Miller

Who thumbed whose nose at who? MS built a superior Java run-time which Sun shut down by litigation. MS responded by building a TRUE open platform language. The CLI and C# have been placed into open standards committees, unlike Java.

Maurice WIlley

So is SQL Server magazine now endorsing the John Dvorak school of writing columns? (i.e., make outrageous statements just so people will write angry letters in response, so you know somebody is reading your stuff.) It is sad to see such poorly thought out comments in the editorial of a magazine that usually has had higher standards. A few of years ago it was noticed that Java and COM turned out to be a wonderful fit even though nobody planned it that way. Sun put an end to that with there lawsuit, and I am very happy that Microsoft didn't let that stop them. If you see this whole effort as simply Microsoft 'thumbing their nose at Sun' you are really missing the point.

Chris Kapilla

After attending the Microsoft Developers Network presentation on C#, I've decided it would be more accurate to call it J# rather than C#. It bears a remarkable resemblance to Java, while only having the same resemblance to C++ as Java has to C++.

This is very important to me. As a C++ Windows developer since Windows 3.0, I've had to make the decision to go with C# or Java. That really means .NET or J2EE. Contrary to the opinion of the other comments here, I find nothing compelling in .NET over J2EE. In fact the two platforms are very similar and offer most of the same functionality with one crucial difference: .NET only runs on Microsoft platforms and with Microsoft products. Period. J2EE is offered by many vendors (BEA, IBM, Sun are the biggies and there's Jakarta and JBOSS that offer open-source J2EE solutions) and runs on any platform you would care about.

Don't think the open-source community has the language and runtime engine concepts confused. They're very aware that most languages can be compiled to the JVM, allowing Perl and Python compilers to write to the JVM. Of course Microsoft promises this kind of support for their CLR, but I don't think you're going to see it. Microsoft has announced that over 80 language compilers will exist to write to the CLR. We'll see. Meanwhile the JVM has half a dozen or so languages now, today.

Over the years I've often heard the story that says the only reason Microsoft produced Windows 3.0 was so they could get a universal printer driver to use for Word. As you may recall, WordPerfect was the leading word processor at its time mainly because printer vendors would create and distribute WordPerfect drivers with their printers and not Word drivers. Without drivers you can't print, so most consumers therefore used WordPerfect. With Windows 3.0 the playing field, from a printer driver standpoint, was leveled and eventually Word out-sold WordPerfect.

I think that story may have more truth to it than I've given it credit for over the years, because now I'm thinking the only reason Microsoft has created the .NET framework is to provide for a rental model of Microsoft Office and whatever other products their busily conjuring up.

I can readily see what .NET brings Microsoft, I'm just having difficulty seeing what it brings to me, especially compared to J2EE. You see, I have choices.

Sorry, but after a 10 year ride, I'm getting off the Microsoft bandwagon.

Don Taylor

Some things to ponder...

"So is SQL Server magazine now endorsing the John Dvorak school of writing columns?" ... "It is sad to see such poorly thought out comments in the editorial of a magazine that usually has had higher standards." - Chris Kapilla

- Does 'higher standards' mean only endorsing MS products? This is a magazine article, not a MS mouthpiece. Alternative viewpoints are allowed and appreciated.

"Who thumbed whose nose at who? MS built a superior Java run-time which Sun shut down by litigation." - Maurice WIlley

- So MS built a superior JVM. Now why doesn't anyone ask why it wasn't built so that code written to it can run on other JVMs? There _are_ other platforms which run Java. Does anyone wonder if it would have been difficult for MS to sit down with Sun and other licensees to create new JVM features which work on all platforms? I think not.

"This has enabled a MUCH HIGHER level of multi-language integration. The revolutoin is that language is no longer important, they're all syntatic sugar." - Tim Marshall

- CLR is an excellent ideal. Does the CLR 'revolution' extend to non-Windows platforms? We wont know for some time. I'll jump up and down when CLR is supported on all major platforms.

"Java did not deliver Garbage Collection, type safety and full object oriented support. Those features existed in many other languages before." -Darrel Miller

- Perhaps you're right. So why not bash MS for not bringing these features to developers first?

Jay Patel

My response may not have the benefit of much consideration, but I do think there are some important things to be gained by C# and the whole Common Language Runtime (CLR) concept. Java lacks operator overloading (big deal, right?) and the ability to simply interoperate with other Microsoft languages. C# seems to be a better Java with a different goal (i.e., not that silly cross-platform stuff). The CLR pushes the envelope in that many languages FINALLY can talk to each other in a meaningful way. COM attempted to accomplish that, but even after years of working with COM, I find I'm scratching my head all the time over its many problems.

Jonathan

Unfortunately Mr Otey has done it again. Thats right, gone off an represented something in a fashion that is anything but well informed. May I suggest that you require your editors to get into the nitty gritty of the subjects on which they are charged at writing about with 'AUTHORITY'. It is all too clear that Michael does not at all understand the purpose for C# (vb included) existence and knows almost nothing about what the language is capable of.

Simon Segal

 
 

ADS BY GOOGLE