Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Caught in .NET


Sep02: The New Adventures of Verity Stob

Verity is the pseudonym of a programmer based in the UK. She can be contacted at [email protected].


"No one likes us and we don't care"

—Motto of Millwall FC fans. *

Some top C++ people are cross. Microsoft (yes, yes, you do remember, that Microsoft) has dared to add some proprietary extensions to Visual C++ to make it work with the Windows .NET system. At a recent UK C++ conference, Bjarne Stroustrup himself publicly nailed, as it were, the 14 new keywords to the door of Microsoft's church. In an open debate, he and other luminaries aggressively questioned unlikely Softees Stan Lippman and Herb Sutter. These illustrious gentlemen put up a steadfast, if embarrassed, defence of their employer, but I can't help but wonder if everybody was missing the point.

For one thing: What else could MS do? Even if the High Council of C++ Syntax were sympathetic to MS's proposals, one can see that the standardisation route wouldn't seem attractive to those impatient little monkeys at Redmond. It was but a fleet decade or so before the C++ elite put a string class in their beautiful-if-baffling library. At the next round of standardisation, perhaps complete by the time time_t wraps negative, they might condescend to include—gasp!—a function to deliver an uppercased string. Change at this pace is not much use if you want to get a fix into the next version of Windows.

And I do wonder if Dr. S & Co. have raised their eyes from the Standard for a moment to notice what Microsoft is actually up to. Far from annexing C++, which is what the C++ folks say they fear, Microsoft has taken away its first class citizenship of the Visual Studio package (for example, where are the wizards to connect C++ code into the new .NET forms? They are available for C#, VB, and, for heaven's sake, even the J thing). Microsoft is now treating Visual C++ about the same way that it used to treat MASM in 1990—as a sort of strong but unpleasant glue, suitable only for emergency use. It seems to me that we don't hear very much about MASM these days. If you want to smother something, first dub it "for systems programming."

Now a leap from C++ to, cough, a rather distant part of this biz we call "prog." Many years ago, I wrote a column in A. N. Other magazine that listed my least favorite Visual Basic features: the compiler directive that changes the first index of arrays from 0 to 1, the 16-bit integer type in a 32-bit language implementation, a frankly bizarre use of a static keyword (betcha can't guess what a static procedure is). When I recently stumbled upon a similar but much more extensive list—try http://www.mvps.org/vb/index2.html?rants/vfred.htm—I first assumed somebody else was playing the same game.

Exactly wrong. This is a protest site, started by one Karl Peterson during an early .NET beta. It objects to Microsoft's vile and underhanded attempt to remove subtle traps from VB.NET, to clean up baffling and ambiguous syntax, and to erase pointless inconsistencies. What do we want? Parameter-passing defaulting to call-by-reference! How long do we want it? Forever!

All right, I'm being unfair. Mr. Peterson and his fellow VBers, of course, have shed-loads of old code that won't work with the VB.NET compiler, and they are quite reasonably skeptical of the porting tool that Microsoft has supplied to update source automatically. But they have overreacted. It is surely better to have one's language of choice brought up to date than abandoned in a pre- .NET ghetto.

If the appearance of .NET has confused the C++ people and driven some VBers to contemplate flight to Delphi, it has produced a rather different effect on the Javans—a kind of incandescent indifference. Here is James Gosling, no less, exhibiting this oxymoronic emotion in The Register: "[C#/.NET] would have been much more interesting if they [Microsoft] had done something creative. But it was so derivative" (http://www.theregister.co.uk/content/4/24582.html).

The biggest bone that the Java people have to pick with C# is not that the columnist Robert Cringely thinks it will run faster than Java, nor that it comes from Microsoft, nor even that it is a Java knock off. The real problem, about which very little is said, is that C# is a fixed-up knock off of the Java language: better scalars, proper properties, sensible facilities for event handling, a thought-out syntax for method overrides. Javans have been confronted by their own mortality. Could it be that the so-called language of the Internet is actually merely the voguish language of the .COMs?

Look. I hate the Beast as much as anybody. Honestly, you can check. But this off-target mithering and moaning is pretty feeble. There must be some worthwhile things to complain about. (I'm not sure what. My best effort is that, for all the boasting of language neutrality, any .NET language implementer appears to discover that he must produce another version of C#, albeit with different keywords. In a sense, this is the underlying cause of the C++ and VB woes; for a much more dramatic example, read Mark Hammond's white paper on an attempt to make a Python.NET; http://starship.python.net/crew/mhammond/dotnet/PythonForDotNetPaper.doc.)

However, in the absence of some well-founded objections, the terrible murmur that I keep hearing, the one with apocalyptic consequences for the thinking programmers of the world, will come to be accepted as Gospel. You know, the one that says that, in .NET, Microsoft has made a pretty good implementation of a rather elegant design...

DDJ

* Ms. Stob thanks various correspondents for pointing out her errors in this introduction, and giving her time to fix them before her legs got broken for her.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.