• subscribe
November 27, 2000 12:00 AM

Microsoft’s Sour Note

SQL Server Pro
InstantDoc ID #15765

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.



ARTICLE TOOLS

Comments
  • Simon Segal
    11 years ago
    Nov 27, 2001

    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.

  • jonathan
    11 years ago
    Nov 27, 2001

    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.

  • Jay Patel
    11 years ago
    Mar 19, 2001

    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?

  • Don Taylor
    12 years ago
    Dec 15, 2000

    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.

  • Chris Kapilla
    12 years ago
    Dec 15, 2000

    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.

You must log on before posting a comment.

Are you a new visitor? Register Here
  • SP1?
    I know there is a SP1 for SQL 2008 R2 available....and there is a "feature pack" as well... ...
  • SQL database mirroring
    I have SQL Server 2008 R2 Enterprise 64bit on Windows 2008 R2 Enterprise 64bit.  Each SQL Server has...
  • Dell Compellent Disk Drive
    Does anybody has experience with Dell Compellent Disk Drive? Basically, this system manages all disk...
  • Sql server performance tuning
    I need to find a tool that help me to optimize sql server,queries,improve the performance and solve ...