Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

C++/CLI - Microsoft Persists With Suggestive Marketing

115 views
Skip to first unread message

Le Chaud Lapin

unread,
Jan 28, 2006, 9:21:42 AM1/28/06
to
The following quotation is copied verbatim from:

http://msdn.microsoft.com/msdnmag/issues/06/00/PureC/default.aspx

"C++/CLI is a self-contained, component-based dynamic programming
language that, like C# or Java, is derived from C++. Unlike those
languages, however, we have worked hard to integrate C++/CLI into
ISO-C++, using the historical model of evolving the C/C++ programming
language to support modern programming paradigms. You can say that
C++/CLI is to C++ as C++ is to C. More generally, you can view the
evolution leading to C++/CLI in the following historical context:

BCPL (Basic Computer Programming Language)
B (Ken Thompson, original UNIX work)
C (Dennis Ritchie, adding type and control structure to B)
C with Classes (~1979)
C84 (~1984)
Cfront, release E (~1984-to universities)
Cfront, release 1.0 (1985-to the world )-20th birthday
Multiple/Virtual Inheritance (MI) programming (~1988)
Generic Programming (~1991) (templates)
ANSI C++/ ISO-C++ (~1996)
Dynamic Component programming (~2005) (C++/CLI)"

"You can say that C++/CLI is to C++ as C++ is to C."

Hmmm...is this true?

I find it offensive that Microsoft continues with this suggestive
marketing. I find it even more disturbing that so many programmers
succumb to it. C++ did not "evolve" to CLI. What acutally happened is
that Microsoft believed in some non-sense that it is possible to create
objects that can be wielded from any language while pretty much keeping
the language unchanged. Of course, this did not work (COM), and when
it (barely) did, it was too ugly to bear (even with special keywords
and compilers). So they created C#, and also CLI. Now they are trying
mutate C++ since it is obviously "defective" as it is not quite how
they need it to be to fit with their "types
-are-universal-between-languages" model. I wait for the day when all
programmers will see the error in this mode of thinking - *TYPE* is
fundamental to a language. As a matter of fact, if a programmer
becomes aware of any new language, one of the first questions that
comes to mind is, "What are it's fundamental data types?"

But getting back to the list above, up until the last line, we see
things that were created by academics whose primary objective was to
create something whose most important trait was its own virtue. With
CLI, certainly Microsoft will acknowledge that the primary objective is
to add something to the language that "enables" interaction between
multiple languages. The historical timeline would be entirely accurate
if they would simply eliminate the last line. Few programmers have been
asking for anyone to kill the type system in C++, add new keywords, an
entirely new compiler, and a virtual machine to run the compiled code .


*Microsoft* asked for that, and we need to keep this in mind and beware
of suggestive marketing.

-Le Chaud Lapin-


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

Alan Griffiths

unread,
Jan 28, 2006, 1:37:48 PM1/28/06
to
Le Chaud Lapin wrote:
> Few programmers have been
> asking for anyone to kill the type system in C++, add new keywords, an
> entirely new compiler, and a virtual machine to run the compiled code .

True, but then no-one is doing this to C++. The "few programmers" that
want this are welcome to their new, hybid language.

The issue for C++ the confusion being caused by not clearly presenting
C++/CLI as a distinct new language.

(More about this here:
http://www.octopull.demon.co.uk/editorial/OverloadEditorial200601.pdf)
--
Alan Griffiths

John Ratcliffe

unread,
Jan 29, 2006, 11:31:00 AM1/29/06
to
Le Chaud Lapin wrote:

> The following quotation is copied verbatim from:
>
> http://msdn.microsoft.com/msdnmag/issues/06/00/PureC/default.aspx
>
> "C++/CLI is a self-contained, component-based dynamic programming
> language that, like C# or Java, is derived from C++. Unlike those
> languages, however, we have worked hard to integrate C++/CLI into
> ISO-C++, using the historical model of evolving the C/C++ programming
> language to support modern programming paradigms. You can say that
> C++/CLI is to C++ as C++ is to C. More generally, you can view the
> evolution leading to C++/CLI in the following historical context:
>
> BCPL (Basic Computer Programming Language)
> B (Ken Thompson, original UNIX work)
> C (Dennis Ritchie, adding type and control structure to B)
> C with Classes (~1979)
> C84 (~1984)
> Cfront, release E (~1984-to universities)
> Cfront, release 1.0 (1985-to the world )-20th birthday
> Multiple/Virtual Inheritance (MI) programming (~1988)
> Generic Programming (~1991) (templates)
> ANSI C++/ ISO-C++ (~1996)
> Dynamic Component programming (~2005) (C++/CLI)"
>
> "You can say that C++/CLI is to C++ as C++ is to C."
>
> Hmmm...is this true?

It suits Microsoft to present it this way because it is part of their
promotion for .NET. BCPL, C and C++ are platform agnostic.

Microsoft have a range of marketing techniques that have proved successful
down the decades. A common technique is to present ideas and technologies
as though they have just thought of them, even though these may have been
around for years. This is a variation of that approach. It demonstrates a
proven pedigree, thereby reducing fears about risk and new technologies,
alongside a visionary future. It is not a coincidence that the future is a
Microsoft one.

Technology is what they sell. Does the world *really* need a new operating
system every few years? Or a new programming language? They have to do
these things because they are a business, and a very successful one. They
have to work hard at maintaining existing customers and finding new ones if
they wish to continue as a successful business.

> But getting back to the list above, up until the last line, we see
> things that were created by academics whose primary objective was to
> create something whose most important trait was its own virtue. With
> CLI, certainly Microsoft will acknowledge that the primary objective is
> to add something to the language that "enables" interaction between
> multiple languages. The historical timeline would be entirely accurate
> if they would simply eliminate the last line.

It has been possible to write systems in mixed languages for decades,
leveraging the best features of each language. A platform like .NET was not
required. Granted it has some benefits, but it does not solve all
programming problems.

> Few programmers have been
> asking for anyone to kill the type system in C++, add new keywords, an
> entirely new compiler, and a virtual machine to run the compiled code .

The power and flexibility of C++ has made it a popular and widely used
language. Microsoft are riding on the back of that.

John Ratcliffe

John Ratcliffe

unread,
Jan 29, 2006, 1:17:23 PM1/29/06
to
Le Chaud Lapin wrote:

> Microsoft believed in some non-sense that it is possible to create
> objects that can be wielded from any language while pretty much keeping
> the language unchanged. Of course, this did not work (COM),

COM was the Microsoft take on addressing issues that were also covered by
CORBA. Language neutrality, location transparency.... The silly thing was
that Microsoft started pushing it forward with certain goals - e.g. there
were many articles putting it forward as a solution to "DLL hell*" - and
then broke their own marketing with the direction they took VB. VB pretty
much hid the workings of COM.

* a problem they caused in the first place!

> and when
> it (barely) did, it was too ugly to bear (even with special keywords
> and compilers). So they created C#, and also CLI.

>From where I sit C# seems to be the direct result of the tiff with Sun about
Java. The CLR/CLI thing is pure hype. Sure you can get some benefit from
rationalising the compiler back ends - you only have to translate one
Intermediate Language into machine executable code. It does support a
common type system across languages that help with multi-language
development. But this does not solve all development problems, it is just
another way of doing things that comes with its own limitations.

Ironically by providing the common back end they have reduced the need for
mixed language programming. Why bother developing C++/CLI, VB .NET and C#
when they all seem to be converging in syntax and .NET support?

Historically languages were commonly developed to support a particular
research need, a specific programming goal, or were seen as an improvement
to an existing language. There is more than a touch of the solution looking
for a problem here.

> *TYPE* is
> fundamental to a language. As a matter of fact, if a programmer
> becomes aware of any new language, one of the first questions that
> comes to mind is, "What are it's fundamental data types?"

Type, or absence of type, like LISP and Prolog. A language is just a tool in
the software development toolbox. Sometimes you want strong typing,
sometimes you don't.

Microsoft have invested billions in .NET and the technologies that go with
it. They have to push it to recover their investment. It doesn't mean they
are right or that their solution is the best. There is no Holy Grail in
software development.

John Ratcliffe

Edson Manoel

unread,
Jan 30, 2006, 7:42:52 AM1/30/06
to
ISO should forbid Microsoft to call it C++... it is a completely
different language... and I think its main objective is to confuse
begginers even more... first there was those "managed" "extensions"
thing, and now this?

Object^ and Type^ ?? [Out] String^% ?? ref class sealed abstract ???

How do they dare to call it a natural evolution of C++??
My fear is that they begin to pu$h^H^H^H^H hype this thing on
universities as Sun did hype Java...

Le Chaud Lapin

unread,
Jan 30, 2006, 4:44:00 PM1/30/06
to
Edson Manoel wrote:
> ISO should forbid Microsoft to call it C++... it is a completely
> different language... and I think its main objective is to confuse
> begginers even more... first there was those "managed" "extensions"
> thing, and now this?
>
> Object^ and Type^ ?? [Out] String^% ?? ref class sealed abstract ???
>
> How do they dare to call it a natural evolution of C++??
> My fear is that they begin to pu$h^H^H^H^H hype this thing on
> universities as Sun did hype Java...

Please tell me that that stuff I see up above is not something that I
would find in my C++ code. I have purposely avoided looking at CLI so
that I can maintain my frame of reference.

The more I learn about this, the more I am convinced that Microsoft is
not trying to evolve C++ but to subvert it.

-Le Chaud Lapin-

Aaron Graham

unread,
Jan 30, 2006, 8:07:29 PM1/30/06
to
> The more I learn about this, the more I am convinced that Microsoft is
> not trying to evolve C++ but to subvert it.

Almost all new languages over the last 10 years have sprinkled the word
"dynamic" all over their feature set bullet point lists. "Dynamic
<insert feature here>" usually refers to some aspect of the language
that they've moved from the compile-time domain into the runtime
domain. To the uninitiated, this is a good thing. But usually it just
means that the compiler would have been too difficult to write, and
that the language design would have taken more effort and insight than
the designers were capable of producing.

In Microsoft's case, using a single CLR for all languages is less
expensive for many reasons. The first reason is mentioned above:
compiler and language design is simply easier. The other reasons are
more obvious. But a common CLR has another side effect: all languages
must be fundamentally similar in semantics, despite syntax differences.
C++ must be modified to move code "management" (template
instantiation, type checking, range checks, memory mgmt, etc.) from the
compiler and associated libraries to the run time system. This gives
Microsoft more control, since it's now possible to change the
implementation/behavior of the CLR on a whim and have all applications
immediately fall in line (or break). Microsoft has done this before
with DLLs but now they'll have more control over code they didn't
write. It could be a good thing, though Microsoft has _never_ shown
itself to be a good steward of my confidence.

When you add "dynamic <feature>" to C++, you're not adding anything at
all. You're taking something away! In fact, you're negating one of
the best aspects (to call it a feature is not enough) of C++: it gives
the compiler the information it needs to do things that compilers do
really well.

What depresses me more than anything about C++/CLI is that people like
Stan Lippman and Herb Sutter, people who have contributed greatly to
the C++ community in the past, are part of it. Their efforts have been
diverted to a black hole, a "language" that nobody (especially
Microsoft) will still be talking about in 10 years. Well meaning but
ignorant programmers will also be caught off-guard, fracturing the
development community even more, and continuing to make it difficult to
write good code in any language (for want of good implementations and
libraries).

Aaron

Chris Hills

unread,
Jan 30, 2006, 8:07:06 PM1/30/06
to
In article <1138653439.2...@g43g2000cwa.googlegroups.com>, Le
Chaud Lapin <unorigina...@yahoo.com> writes

>Edson Manoel wrote:
>> ISO should forbid Microsoft to call it C++... it is a completely
>> different language... and I think its main objective is to confuse
>> begginers even more... first there was those "managed" "extensions"
>> thing, and now this?
>>
>> Object^ and Type^ ?? [Out] String^% ?? ref class sealed abstract ???
>>
>> How do they dare to call it a natural evolution of C++??
>> My fear is that they begin to pu$h^H^H^H^H hype this thing on
>> universities as Sun did hype Java...
>
>Please tell me that that stuff I see up above is not something that I
>would find in my C++ code. I have purposely avoided looking at CLI so
>that I can maintain my frame of reference.
>
>The more I learn about this, the more I am convinced that Microsoft is
>not trying to evolve C++ but to subvert it.


Just look at the Safe C and Safe C++ Library TR's and what MS is saying
about them then the ECMA C# and CLI and there is a pattern evolving.

It is a pity we let the Safe C library TR go through in the first place.
Though in reality as most C users are still using C90 + A1 what MS wants
to do with the current C standard is irrelevant to most of us.

As someone pointed out if you take all of it together soon the only
platform that you can compile "standard" code on will be Windows and
anything else will be "non-standard"

--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills Staffs England /\/\/\/\/
/\/\/ ch...@phaedsys.org www.phaedsys.org \/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Le Chaud Lapin

unread,
Jan 31, 2006, 3:55:59 AM1/31/06
to
Aaron Graham wrote:
[excellent statements snipped]

> What depresses me more than anything about C++/CLI is that people like
> Stan Lippman and Herb Sutter, people who have contributed greatly to
> the C++ community in the past, are part of it. Their efforts have been
> diverted to a black hole, a "language" that nobody (especially
> Microsoft) will still be talking about in 10 years. Well meaning but
> ignorant programmers will also be caught off-guard, fracturing the
> development community even more, and continuing to make it difficult to
> write good code in any language (for want of good implementations and
> libraries).

Sigh. I feel exactly the same. I remember learning how to program
from P. J. Plauger back in the 1980's. At the time, I couldn't afford
a computer or a book on programming, so I would wait for second-hand
programming magazines from a nearby medical facility to read and then
imagine the the programs running. I did this for almost two years until
I could buy a Commodore Vic-20 (which incidentally caused me great
distress when it said that squrare-root of 49 was 6.99998). The thing
I appreciated the most about Plauger's writings was the clarity of
exposition, and the his evident appreciation for form and detail.

So when I read that Dinkumware would be writing libraries for C++/CLI,
with full knowledge of the ramifications that Plauger's tacit
endorsement would have on others, I was puzzled.

Good stewardship *is* the responsibility of those who lead. As Aaron
said, it is critical that people like Stan Lippman and Herb Sutter and
P. J. Plauger be extra careful about the company they keep and the
technology they espouse.

Too often we find this scenario in corporate struggles. One moment you
see David reloading his sling for the 10,000th time to hurl against
Goliath, and the next moment you see David and Goliath sitting
together, at a press conference, with someone from Gartner Group acting
as mediator. Goliath says: "David and I may have had our differences
in the past, but we have always shared a common vision of advancing the
efficacy weapons in combat, and I look forward to our mutually
beneficial relationship."

What I have yet to figure out is what Goliath is giving David to make
him promulgate the preposterous.

-Le Chaud Lapin-

kanze

unread,
Jan 31, 2006, 10:15:00 AM1/31/06
to
Le Chaud Lapin wrote:

[What he wrote is, in fact, very close to slander, and I'm
somewhat surprised that the moderators allows such personal
insinuations by...]

[...]


> Good stewardship *is* the responsibility of those who lead.
> As Aaron said, it is critical that people like Stan Lippman
> and Herb Sutter and P. J. Plauger be extra careful about the
> company they keep and the technology they espouse.

> Too often we find this scenario in corporate struggles. One
> moment you see David reloading his sling for the 10,000th time
> to hurl against Goliath, and the next moment you see David and
> Goliath sitting together, at a press conference, with someone
> from Gartner Group acting as mediator. Goliath says: "David
> and I may have had our differences in the past, but we have
> always shared a common vision of advancing the efficacy
> weapons in combat, and I look forward to our mutually
> beneficial relationship."

> What I have yet to figure out is what Goliath is giving David
> to make him promulgate the preposterous.

Maybe they don't find what they are promulgating so
preposterous. I find the insinuations that these people have
somehow been "bought off" insulting -- to date, I've seen more
changes in Microsoft policy than in Herb Sutter's positions
since Herb is with Microsoft, and I'm not sure how Plauger fits
into this discussion at all, except that Microsoft is one of his
customers (but far from the only one).

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

david...@gmail.com

unread,
Jan 31, 2006, 12:56:12 PM1/31/06
to

Aaron Graham wrote:

<snip>

> But a common CLR has another side effect: all languages
> must be fundamentally similar in semantics, despite syntax differences.

<snip>

I thought this was the case also but the disparate set of languages
that can now target .Net (Cobol, Python, C++, VB) shows this to be
false.

Cheers,

Dave Boyle

P.J. Plauger

unread,
Jan 31, 2006, 2:18:57 PM1/31/06
to
"kanze" <ka...@gabi-soft.fr> wrote in message
news:1138713116.7...@o13g2000cwo.googlegroups.com...

As usual, Kanze says what needs saying with simple clarity.
My direct response would never have made it past the moderators.

Thanks, James.

P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com

Allan W

unread,
Feb 1, 2006, 5:18:11 AM2/1/06
to
> > Le Chaud Lapin wrote:

> "kanze" <ka...@gabi-soft.fr> wrote


> > [What he wrote is, in fact, very close to slander, and I'm
> > somewhat surprised that the moderators allows such personal
> > insinuations by...]

I've been surprised by this entire thread.
The original post was extremely close to that line,
and most of the posts since then have gone even further.

> > Maybe they don't find what they are promulgating so
> > preposterous. I find the insinuations that these people have
> > somehow been "bought off" insulting -- to date, I've seen more
> > changes in Microsoft policy than in Herb Sutter's positions
> > since Herb is with Microsoft, and I'm not sure how Plauger fits
> > into this discussion at all, except that Microsoft is one of his
> > customers (but far from the only one).

P.J. Plauger wrote:
> As usual, Kanze says what needs saying with simple clarity.
> My direct response would never have made it past the moderators.

Then thank you for making your response indirect, because I do want
to read whatever response I can.

But let's get specific.
I agree with Alan Griffiths, the real issue is that "C++/CLI" is
re-using
the name C++, instead of being presented as a new language. In fact,
Microsoft's support of pure C++ is very good -- you just have to know
how to ask for it.

John Ratcliffe talked about Microsoft's marketing techniques.
Off-topic,
I would have guessed... he didn't use the word evil, but it was
implied.
Please, did Microsoft invent marketing? In the 1970's I read a textbook
that basically suggested that the purpose of electricity was to allow
IBM to invent computers; it devoted 40 pages to explaining EBCDIC,
with 4 paragraphs at the end that said there was also this ASCII thing
but it wasn't very common. I haven't seen anyone recently calling IBM
evil.

John Ratcliffe also posted a message about "DLL Hell..." again,
off topic, but somehow it got through moderation.

Edson Manoel said "ISO should forbid Microsoft to call it C++"...
ISO doesn't own the name C++, nor should it. If someone wants to
claim that their implementation is "ISO-compliant," they're making
a very specific claim and will have to back it up... but let's please
remember that Microsoft (and lots of other vendors!) were selling
something called C++ *LONG* before either ANSI or ISO finished
with the first version of their standard...

The OP (Le Chaud Lapin) also lements the fact that Microsoft compilers
extend C++. As if they're the only ones that ever did.

I could say a lot more, but I think I ought to wrap it up now... the
free
market principle is that if you give customers something they want,
they'll pay for it... nobody is forcing you to use Microsoft, but they
must be doing something right. Anyone who says that everything
from Microsoft is evil, is even more wrong that anyone who buys
everything Microsoft says without question. If you must bash
Microsoft, at least double-check your facts... and be sure that
you're being at least somewhat fair!

Moderators, I know I've been off-topic and opinionated, but I'm just
replying to various other posts that have done the same... only fair
to let this through, I think.

David Abrahams

unread,
Feb 1, 2006, 5:17:49 AM2/1/06
to
"kanze" <ka...@gabi-soft.fr> writes:

> Maybe they don't find what they are promulgating so
> preposterous. I find the insinuations that these people have
> somehow been "bought off" insulting -- to date, I've seen more
> changes in Microsoft policy than in Herb Sutter's positions
> since Herb is with Microsoft, and I'm not sure how Plauger fits
> into this discussion at all, except that Microsoft is one of his
> customers (but far from the only one).

I am not a fan of everything Microsoft's been doing, but as someone
who knows most of the major players mentioned here and who has no
ongoing relationship with MS, I have to agree with James. If I were
going to attack anything about these people, their integrity would
fall near the bottom of the list.

In fact, Microsoft's support for good old industry-standard C++98/03
has become quite good over the past few years. They've become a
strong supporter of the standard and of the process.

--
Dave Abrahams
Boost Consulting
www.boost-consulting.com

Patrick May

unread,
Feb 1, 2006, 5:21:15 AM2/1/06
to
david...@gmail.com writes:

> Aaron Graham wrote:
> > But a common CLR has another side effect: all languages must be
> > fundamentally similar in semantics, despite syntax differences.
>
> I thought this was the case also but the disparate set of languages
> that can now target .Net (Cobol, Python, C++, VB) shows this to be
> false.

I believe the point of the original poster is that only a
subset/variant of C++ is supported by the CLR. The CLR can definitely
not support Common Lisp, for just one example.

Regards,

Patrick

------------------------------------------------------------------------
S P Engineering, Inc. | The experts in large scale distributed OO
| systems design and implementation.
p...@spe.com | (C++, Java, Common Lisp, Jini, CORBA, UML)

Le Chaud Lapin

unread,
Feb 1, 2006, 11:49:17 AM2/1/06
to

David Abrahams wrote:
> "kanze" <ka...@gabi-soft.fr> writes:
>
> > Maybe they don't find what they are promulgating so
> > preposterous. I find the insinuations that these people have
> > somehow been "bought off" insulting -- to date, I've seen more
> > changes in Microsoft policy than in Herb Sutter's positions
> > since Herb is with Microsoft, and I'm not sure how Plauger fits
> > into this discussion at all, except that Microsoft is one of his
> > customers (but far from the only one).
>
> I am not a fan of everything Microsoft's been doing, but as someone
> who knows most of the major players mentioned here and who has no
> ongoing relationship with MS, I have to agree with James. If I were
> going to attack anything about these people, their integrity would
> fall near the bottom of the list.

I certainly did not mean to imply that there is lack of integrity in
any of the people mentioned. But what I would like to know, if given to
chance is to ask all of the gurus who espouse/embrace/support CLI with
C++...

"Do you have the same regard of C++/CLI as Microsoft does? When
Microsoft writes that CLI is merely a "natural evolution of C++", do
you actually believe this? Do you detect that Microsoft's marketing
literature could be misleading to the ignorant/naive/uninitiated?"

I would like to ask similar questions to the gurus and get
unadulterated answers. If any of them would respond to these questions
with unqualified "yes's", then I would have to accept that that is how
they really feel, and I doubt that I would have any suspicions of
collusion. What I am concerned with is that there might have been some
resistance early on, perhaps feelings of "no...Microsoft...that's not
quite right.." that gradually waned as the grind of time and
familiarity took its toll.

So, like many others who see CLI as corrosive to the language, and
given that we have such strong opinions about what constitutes simple
extensions versus gross violations of principle and purity, we'd simply
like to know, objectively and explicitly stated, exactly what is it
that the gurus really think.

-Le Chaud Lapin-

P.J. Plauger

unread,
Feb 1, 2006, 7:27:45 PM2/1/06
to
"Le Chaud Lapin" <unorigina...@yahoo.com> wrote in message
news:1138803676.8...@g49g2000cwa.googlegroups.com...

> David Abrahams wrote:
>> "kanze" <ka...@gabi-soft.fr> writes:
>>
>> > Maybe they don't find what they are promulgating so
>> > preposterous. I find the insinuations that these people have
>> > somehow been "bought off" insulting -- to date, I've seen more
>> > changes in Microsoft policy than in Herb Sutter's positions
>> > since Herb is with Microsoft, and I'm not sure how Plauger fits
>> > into this discussion at all, except that Microsoft is one of his
>> > customers (but far from the only one).
>>
>> I am not a fan of everything Microsoft's been doing, but as someone
>> who knows most of the major players mentioned here and who has no
>> ongoing relationship with MS, I have to agree with James. If I were
>> going to attack anything about these people, their integrity would
>> fall near the bottom of the list.
>
> I certainly did not mean to imply that there is lack of integrity in
> any of the people mentioned.

Then you did a damn poor job of not implying that when you said:

: What I have yet to figure out is what Goliath is giving David to make
: him promulgate the preposterous.

> But what I would like to know, if given to


> chance is to ask all of the gurus who espouse/embrace/support CLI with
> C++...
>
> "Do you have the same regard of C++/CLI as Microsoft does?

No, I have my own regard, thank you very much.

> When
> Microsoft writes that CLI is merely a "natural evolution of C++", do
> you actually believe this?

Yes. In fact, if you read the papers submitted to WG21 the past
few years, by the very people who developed the current C++
Standard, you'll find them proposing much the same sorts of
extensions as have been incorporated into C++/CLI. An important
difference is that C++/CLI is out in the world now as prior art,
giving us all real-world experience. I was once taught that
this was the most desirable way to prove in enhancements to
a programming language before standardizing them.

> Do you detect that Microsoft's marketing
> literature could be misleading to the ignorant/naive/uninitiated?"

Sure, as can *most* marketing literature, and even quite a bit of
technical literature. You, and some others, see this as nefarious;
I see it as a common byproduct of simplification, promotion,
comparison, what have you. Could be some of the marketeers at
Microsoft, perhaps even people up the management line, have a few
nefarious purposes. I have no way of knowing one way or the other.
But the folks I do know at Microsoft have espoused in my presence
nothing but upright motives for doing what they've done; and those
motives are congruent with the concrete evidence I have seen.

> I would like to ask similar questions to the gurus and get
> unadulterated answers.

There's that integrity thing again -- why should you even *suspect*
that any of us would be motivated to adulterate an answer?

> If any of them would respond to these questions
> with unqualified "yes's", then I would have to accept that that is how
> they really feel, and I doubt that I would have any suspicions of
> collusion.

Why do they have to be unqualified? I personally don't give a rat's
patootie whether you suspect me of collusion, but I *do* object to
your making public statements to that effect as though they were
the obvious truth. You then compound it by setting a high bar for
us to jump over if we're to prove we're pure of heart.

> What I am concerned with is that there might have been some
> resistance early on, perhaps feelings of "no...Microsoft...that's not
> quite right.." that gradually waned as the grind of time and
> familiarity took its toll.

I really appreciate your concern. Sort of.

> So, like many others who see CLI as corrosive to the language, and
> given that we have such strong opinions about what constitutes simple
> extensions versus gross violations of principle and purity, we'd simply
> like to know, objectively and explicitly stated, exactly what is it
> that the gurus really think.

I think that C++ can be considered corrosive to Standard C. I feel
strongly that what many consider simple extensions made to C by
C++ are gross violations of principle and purity. In fact, given
the position that BSI seem to be working toward with C++/CLI, I'm
inclined to ask WG14 to petition ISO to rescind WG21's right to use
the letter C in the name of their language. ISO++ works for me.

Look, I've watched C++/CLI evolve over several years now. I've
attended more meetings than I'd like to count, at my expense,
reviewing the language as it's evolved, first within Microsoft
and then through ECMA standardization. I've influenced the final
ECMA standard only in small ways; some of the things I would
like to have seen changed were dismissed; but I can understand
why. You can't expect to alter the direction of an ocean liner
more than at tiny bit, and only from time to time.

I've also written STL for C++/CLI, several versions now in fact.
(Yes, my company got paid to do it, but it was nowhere near the
biggest source of revenue for us over the past couple of years.
And I *asked* for the work because I was enthusiastic about the
project.) Writing STL/CLR (or whatever they call it these days)
puts me in the top percentile of people with nitty-gritty
experience with C++/CLI. I can attest that:

1) C++/CLI is highly compatible with Standard C++. It's about
the most honest extension you could possibly expect.

2) It's an elegant and powerful language, in some important
ways distinctly *better* than Standard C++. Sure, it has its
surprises, but so did C and C++ when I learned them.

3) It's way better than the old Managed C++ kludge. Now VC++
is a first-class citizen in the .NET environment, not a
bare survivor.

Finally, it's worth observing that Microsoft *has* ceded control
of C++/CLI, and other parts of the .NET architecture, to ECMA.
I have no illusions about what that means -- Microsoft will
clearly dominate the ECMA committees for the foreseeable future.
Nevertheless, ceding control like that is more than just a
gesture; and it's something that Sun could never quite bring
itself to do with Java. So perhaps Microsoft deserves a bit
more credit for trying to be a good citizen, at least these
days, than some people are willing to concede.

P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com

[ See http://www.gotw.ca/resources/clcm.htm for info about ]

Ted

unread,
Feb 1, 2006, 7:22:10 PM2/1/06
to

"Allan W" <all...@my-dejanews.com> wrote in message news:1138739723....@o13g2000cwo.googlegroups.com...

> I could say a lot more, but I think I ought to wrap it up now... the
> free
> market principle is that if you give customers something they want,
> they'll pay for it... nobody is forcing you to use Microsoft, but they
> must be doing something right.

There's the common "misconception" at best, "propoganda" at worst.
<your favorite example of a company "doing it for the money and supplying
the wrong thing and marketing the crap out of it as long as the cash cow can
be milked" vs. "building the right thing", here>

Time to grow up kids. Everything is not how mommy said it was (especially
when money is involved).

Ted

Allan W

unread,
Feb 2, 2006, 6:00:01 AM2/2/06
to
> "Allan W" wrote

> > I could say a lot more, but I think I ought to wrap it up now... the
> > free
> > market principle is that if you give customers something they want,
> > they'll pay for it... nobody is forcing you to use Microsoft, but they
> > must be doing something right.

Ted wrote:
> There's the common "misconception" at best, "propoganda" at worst.
> <your favorite example of a company "doing it for the money and supplying
> the wrong thing and marketing the crap out of it as long as the cash cow can
> be milked" vs. "building the right thing", here>

This is unclear.
I think you're disagreeing with me, but you're VERY short on specifics.

What are you trying to say? That Microsoft should implement exactly
what the standard mandates, without ANY innovations at all?
If that's what you think, why? Are there any other companies that are
held to this standard?

> Time to grow up kids. Everything is not how mommy said it was (especially
> when money is involved).

Which one of my mother's statements do you object to?

Francis Glassborow

unread,
Feb 2, 2006, 10:53:12 AM2/2/06
to
In article <1138843878....@g47g2000cwa.googlegroups.com>, Allan
W <all...@my-dejanews.com> writes

>Ted wrote:
>> There's the common "misconception" at best, "propoganda" at worst.
>> <your favorite example of a company "doing it for the money and supplying
>> the wrong thing and marketing the crap out of it as long as the cash cow can
>> be milked" vs. "building the right thing", here>
>
>This is unclear.
>I think you're disagreeing with me, but you're VERY short on specifics.
>
>What are you trying to say? That Microsoft should implement exactly
>what the standard mandates, without ANY innovations at all?
>If that's what you think, why? Are there any other companies that are
>held to this standard?

I think some people (not you) do not distinguish between pure extensions
that carry no implications for the general idioms of a language and
those that radically modify them.

I believe that 'C with classes' became C++ exactly because the
designer(s) of C objected to the suggestion that the new language was
just C with something added on. BS could have stuck to his guns and
continued to call it 'C with classes' but he understood the objection
and responded to it.

Do names matter? Yes, IMNSHO, they very definitely do. The official
standard for Javascript is Ecmascript (sorry if I have the
capitalisation wrong).
If I wrote a Fortran compiler that accepted C++ source code would that
be primarily a Fortran or C++ compiler. It would depend on my
motivation. If my intent was to help Fortran programmers utilise some
C++ then it is an extended Fortran compiler. If, OTOH, it is intended to
support some use of Fortran source code in C++ then it is an extended
C++ compiler.

Now what is the motivation for the latest MS C++ compiler? I do not
know, but I am pretty sure that a compiler that abandons such
fundamentals as const correctness is not C++ as I know it.

I think MS have wrapped up two distinct compilers into one. The first is
becoming a pretty good C++ compiler (which makes it attractive to C++
programmers). The second is a compiler for a heavily modified language
which is superficially similar to C++ but has a whole bundle of idioms
that are nothing like the C++ most people here are accustomed to.

Quite apart from anything else, having a new distinct name for this
second language would make it much easier to talk about source code and
which 'language' it was intended for. If, for example we called the new
language Clipp, we could say that C++ supports const correctness and
Clipp does not. But more importantly it would avoid the confusion of
using C++ as an abbreviation for C++/CLI.


--
Francis Glassborow ACCU
Author of 'You Can Do It!' see http://www.spellen.org/youcandoit
For project ideas and contributions: http://www.spellen.org/youcandoit/projects

kanze

unread,
Feb 2, 2006, 11:03:32 AM2/2/06
to
Le Chaud Lapin wrote:
> David Abrahams wrote:
> > "kanze" <ka...@gabi-soft.fr> writes:

> > > Maybe they don't find what they are promulgating so
> > > preposterous. I find the insinuations that these people
> > > have somehow been "bought off" insulting -- to date, I've
> > > seen more changes in Microsoft policy than in Herb
> > > Sutter's positions since Herb is with Microsoft, and I'm
> > > not sure how Plauger fits into this discussion at all,
> > > except that Microsoft is one of his customers (but far
> > > from the only one).

> > I am not a fan of everything Microsoft's been doing, but as
> > someone who knows most of the major players mentioned here
> > and who has no ongoing relationship with MS, I have to agree
> > with James. If I were going to attack anything about these
> > people, their integrity would fall near the bottom of the
> > list.

> I certainly did not mean to imply that there is lack of
> integrity in any of the people mentioned. But what I would
> like to know, if given to chance is to ask all of the gurus
> who espouse/embrace/support CLI with C++...

> "Do you have the same regard of C++/CLI as Microsoft does?
> When Microsoft writes that CLI is merely a "natural evolution
> of C++", do you actually believe this?

I think you put the quotes in the wrong place. Although I don't
feel very concerned by CLI, I rather suspect that it is "a
natural evolution of C++". It is not, however, "the natural
evolution" -- I doubt that there is one single "natural
evolution".

And let's face it: such evolutions are the price of success. I
don't see any Modula3/CLI, for example, although I suspect that
Modula3 would fit quite well in the CLI model. If you don't
like that kind of evolution, there's only one way to avoid it:
use a language that no one wants to evolve. Because in a domain
as dynamic as ours, anything that gets used will evolve. In
many different directions at once.

Another frequent poster here constantly talks about D. Another
"natural evolution" of C++.

At some point in the future, the standardization committee will
define a new version of C++. That will then become the
"official" evolution. But it will never be the only one.

> Do you detect that Microsoft's marketing literature could be
> misleading to the ignorant/naive/uninitiated?"

Isn't that what marketing literature is for? Look at how Sun
sold Java. For that matter, look at how Walter Bright sells D.

Do you really expect to take all marketing claims at their face
value?

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

kolaric

unread,
Feb 2, 2006, 3:36:20 PM2/2/06
to
> I agree with Alan Griffiths, the real issue is that "C++/CLI" is
> re-using the name C++, instead of being presented as
> a new language.

I agree with Griffiths as well.

David Pottruck, former CEO of Schwab, was once
asked "what do you do when you don't have a moat"?
(Moat = means to protect your business.) He answered:
"I keep trying to move the castle". (Castle = business.)

Le Chaud Lapin

unread,
Feb 2, 2006, 3:34:35 PM2/2/06
to
kanze wrote:
> Le Chaud Lapin wrote:
> > David Abrahams wrote:
> Do you really expect to take all marketing claims at their face
> value?

No I don't. That's why it is so important for the experts to be clear
in their guidance, When the young/ignorant/naive get confused and their
radars start going off, the first thing they do is try to find an
honest, facts-based, objective opinion. Maybe they will read their
favorite blogger, or maybe they will go to someone whose opinion they
have trusted for 20 years. This is all they can do, because, unlike
most of you, they are not yet able to effectively evaluate the
long-term implications of "evolutions" like CLI. If it is the case
that CLI is bad for C++, then someone with clout must take the
responsibility of checking them at the early stages.

In any case, I would like to issue a direct apology to P.J. Plauger and
anyone else whom I have offended by insinuating that there is collusion
with Microsoft.

-Le Chaud Lapin-

Gabriel Dos Reis

unread,
Feb 3, 2006, 7:08:40 AM2/3/06
to
"P.J. Plauger" <p...@dinkumware.com> writes:

[...]

| In fact, given
| the position that BSI seem to be working toward with C++/CLI, I'm
| inclined to ask WG14 to petition ISO to rescind WG21's right to use
| the letter C in the name of their language. ISO++ works for me.

I'm sure some are awaiting the ballot on the matter.

--
Gabriel Dos Reis
g...@integrable-solutions.net

kanze

unread,
Feb 3, 2006, 7:05:44 AM2/3/06
to
Le Chaud Lapin wrote:
> kanze wrote:
> > Le Chaud Lapin wrote:
> > > David Abrahams wrote:
> > Do you really expect to take all marketing claims at their
> > face value?

> No I don't. That's why it is so important for the experts to
> be clear in their guidance,

But where have the experts mislead? I've not seen marketing
drivel written by Herb Sutter or Stan Lipman.

It's important to realize that large companies -- or large
organizations in general -- have split personalities. Different
departments have different agendas, and they don't always
communicate as well as they should. So the marketing droids
spit out marketing drivel, and the technical people continue to
do good technical work, and produce reasoned and rational
technical content. When I want technical information about a
product, I keep this in mind. For small companies, this is not
a problem: if I ask Plauger about Dinkumware, or Bright about
Mars, I feel confident that any marketing statements will be
based on concrete technical facts. If I ask the sales
department of Microsoft or of Sun, I don't believe anything they
say until I've got a confirmation from someone technical. Even
without a conscious desire to fraud, communication in large
companies being what it is...

And of course, that has nothing to do with C++, or even data
processing. If I want to technically evaluate a new car that
I'm purchasing, I don't ask the salesman -- I try to find
someone who actually has the model, or I read articles in the
automotive press. So this attitude is something that we can
expect from C++ newbies as well.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

David Abrahams

unread,
Feb 3, 2006, 10:54:21 AM2/3/06
to
"Le Chaud Lapin" <unorigina...@yahoo.com> writes:

> kanze wrote:
>> Le Chaud Lapin wrote:
>> > David Abrahams wrote:
>> Do you really expect to take all marketing claims at their face
>> value?

No, I did *not* write that. Please watch your attributions to make
sure they're accurate.

--
Dave Abrahams
Boost Consulting
www.boost-consulting.com

[ See http://www.gotw.ca/resources/clcm.htm for info about ]

Andrew Browne

unread,
Feb 4, 2006, 7:03:16 AM2/4/06
to
"Francis Glassborow" <fra...@robinton.demon.co.uk> wrote in message
news:b$apxJam1...@robinton.demon.co.uk...

> Now what is the motivation for the latest MS C++ compiler? I do not
> know, but I am pretty sure that a compiler that abandons such
> fundamentals as const correctness is not C++ as I know it.
>
> I think MS have wrapped up two distinct compilers into one. The first is
> becoming a pretty good C++ compiler (which makes it attractive to C++
> programmers). The second is a compiler for a heavily modified language
> which is superficially similar to C++ but has a whole bundle of idioms
> that are nothing like the C++ most people here are accustomed to.
>
> Quite apart from anything else, having a new distinct name for this
> second language would make it much easier to talk about source code and
> which 'language' it was intended for. If, for example we called the new
> language Clipp, we could say that C++ supports const correctness and
> Clipp does not. But more importantly it would avoid the confusion of
> using C++ as an abbreviation for C++/CLI.

The main confusion I see at the moment is that many people appear to believe
that C++/CLI is a variant or subset language with superficial syntactic
similarities to C++ but which does not support C++ in its entirety. (If this
were actually the case then I would entirely agree that the name should be
changed.) As it is, apart from some very minor incompatibilities, code that
is intended for C++ is also valid C++/CLI code with its meaning preserved.
All the idioms and features that are supported in C++ are therefore
supported at least as much in C++/CLI.

What is, of course, true is that you cannot use some of these idioms and
features in an unconstrained or unchanged way with CLR "managed" types. To
take the example of const correctness, it isn't currently possible for a
member function of a managed type to be qualified with const or volatile.
(Herb Sutter has said in this newsgroup, however, that a future revision may
support this.) I feel, though, that to say that this means that the compiler
has abandoned or does not support const correctness is overstating the case
and likely to create further misunderstanding.

I agree that confusion between C++ and C++/CLI is undesirable, but so is
confusion as to what C++/CLI actually is. Personally I feel that the name
conveys this quite well. It doesn't suggest that C++/CLI is a successor to
C++ or "a better C++" but does suggest that it supports C++ and a specific
platform. You could try to convey this accurately in a less succinct name
but then I think the danger of abbreviation would probably be greater.

Andrew

Bob Hairgrove

unread,
Feb 4, 2006, 2:00:41 PM2/4/06
to
On 4 Feb 2006 07:03:16 -0500, "Andrew Browne"
<clcppm...@this.is.invalid> wrote:

>The main confusion I see at the moment is that many people appear to believe
>that C++/CLI is a variant or subset language with superficial syntactic
>similarities to C++ but which does not support C++ in its entirety. (If this
>were actually the case then I would entirely agree that the name should be
>changed.) As it is, apart from some very minor incompatibilities, code that
>is intended for C++ is also valid C++/CLI code with its meaning preserved.
>All the idioms and features that are supported in C++ are therefore
>supported at least as much in C++/CLI.

Have you read this?
http://www.datanom.net/c++/Objection_to_Fast-track_Ballot_ECMA-372_in_JTC1_N8037.pdf

This was a link posted on comp.lang.c++ in a message in the thread
with the subject: "ECMA-372 is stepping in on C++".

I never touched CLI yet, but if what they say is true, you're quite
mistaken in the sentence ending "with its meaning preserved".

--
Bob Hairgrove
NoSpam...@Home.com

Bo Persson

unread,
Feb 4, 2006, 8:12:57 PM2/4/06
to

"Andrew Browne" <clcppm...@this.is.invalid> skrev i meddelandet
news:dFREf.6375$K42....@newsfe7-win.ntli.net...

> "Francis Glassborow" <fra...@robinton.demon.co.uk> wrote in message
> news:b$apxJam1...@robinton.demon.co.uk...
>
>> Quite apart from anything else, having a new distinct name for this
>> second language would make it much easier to talk about source code
>> and
>> which 'language' it was intended for. If, for example we called the
>> new
>> language Clipp, we could say that C++ supports const correctness
>> and
>> Clipp does not. But more importantly it would avoid the confusion
>> of
>> using C++ as an abbreviation for C++/CLI.
>
> The main confusion I see at the moment is that many people appear to
> believe
> that C++/CLI is a variant or subset language with superficial
> syntactic
> similarities to C++ but which does not support C++ in its entirety.

Probably the same people who belive that ISO C++ is not the same
language as ISO C, even though it contains most of that language
unchanged.

> (If this
> were actually the case then I would entirely agree that the name
> should be
> changed.) As it is, apart from some very minor incompatibilities,
> code that
> is intended for C++ is also valid C++/CLI code with its meaning
> preserved.
> All the idioms and features that are supported in C++ are therefore
> supported at least as much in C++/CLI.

But if you don't use the new features, why would you want a new
language (or a heavy dose of extensions)?

The C++/CLI compiler can compile most Standard C++ code, just as it
can compile most C code. That doesn't in any way make it all a single
language.

>
> What is, of course, true is that you cannot use some of these idioms
> and
> features in an unconstrained or unchanged way with CLR "managed"
> types. To
> take the example of const correctness, it isn't currently possible
> for a
> member function of a managed type to be qualified with const or
> volatile.
> (Herb Sutter has said in this newsgroup, however, that a future
> revision may
> support this.) I feel, though, that to say that this means that the
> compiler
> has abandoned or does not support const correctness is overstating
> the case
> and likely to create further misunderstanding.

But const correctness is just a small part. There are also different
rules for overloading, name lookup, destruction, etc. Some extension
have more capabilities than the base language, some have actually
fewer, and some are just different. That makes it very hard to talk
about a "pure" extension.

>
> I agree that confusion between C++ and C++/CLI is undesirable, but
> so is
> confusion as to what C++/CLI actually is. Personally I feel that the
> name
> conveys this quite well. It doesn't suggest that C++/CLI is a
> successor to
> C++ or "a better C++" but does suggest that it supports C++ and a
> specific
> platform.

Others have a different opinion:

"You can say that C++/CLI is to C++ as C++ is to C."

(Stan Lippman)

http://msdn.microsoft.com/msdnmag/issues/06/00/PureC/default.aspx

Bo Persson

Andrew Browne

unread,
Feb 5, 2006, 7:08:43 AM2/5/06
to
"Bo Persson" <b...@gmb.dk> wrote in message
news:44k6c8F...@individual.net...

>
> "Andrew Browne" <clcppm...@this.is.invalid> skrev i meddelandet
> news:dFREf.6375$K42....@newsfe7-win.ntli.net...
>>
>> The main confusion I see at the moment is that many people appear to
>> believe
>> that C++/CLI is a variant or subset language with superficial
>> syntactic
>> similarities to C++ but which does not support C++ in its entirety.
>
> Probably the same people who belive that ISO C++ is not the same
> language as ISO C, even though it contains most of that language
> unchanged.

I am trying to correct a misapprehension that C++/CLI is not a superset of
C++. I am not trying to argue that they are the same language.

> But if you don't use the new features, why would you want a new
> language (or a heavy dose of extensions)?

I would like people to be able to make an informed choice about whether, why
and when they might want to use them.

> The C++/CLI compiler can compile most Standard C++ code, just as it
> can compile most C code. That doesn't in any way make it all a single
> language.

See the first sentence of my reply.

> But const correctness is just a small part. There are also different
> rules for overloading, name lookup, destruction, etc. Some extension
> have more capabilities than the base language, some have actually
> fewer, and some are just different. That makes it very hard to talk
> about a "pure" extension.

That is all true, but I think it is only right that it be made clear that
the differences only apply to the extensions and do not affect the meaning
of C++ code compiled with C++/CLI.

> "You can say that C++/CLI is to C++ as C++ is to C."

In the sense that C++/CLI is an (almost) superset of C++, that statement is
entirely accurate. In other senses I don't think it is really. (For example
C and C++ are highly platform independent and C++/CLI is an extension to
support a specific platform.) I am well aware that there have been some
potentially (and probably unintentionally) misleading statements made in
support of C++/CLI, but there have also been some potentially (and probably
unintentionally) misleading negative statements about it and I think it is
right to try to clear up confusion caused by either.

Andrew

Andrew Browne

unread,
Feb 5, 2006, 12:32:53 PM2/5/06
to
"Bob Hairgrove" <inv...@bigfoot.com> wrote in message
news:kbh9u11jd25kq5h52...@4ax.com...

> On 4 Feb 2006 07:03:16 -0500, "Andrew Browne"
> <clcppm...@this.is.invalid> wrote:

>> As it is, apart from some very minor incompatibilities, code that
>>is intended for C++ is also valid C++/CLI code with its meaning preserved.
>

> I never touched CLI yet, but if what they say is true, you're quite
> mistaken in the sentence ending "with its meaning preserved".

Yes I have read it, and I'm afraid I think there are several statements in
it (some of them highlighted in bold) that, taken out of context, serve to
add to the confusion.

For example:-

"C++/CLI changes the meaning of currently valid C++ syntax." This is
followed by two code examples. Example A is currently valid C++ syntax and
its meaning is unchanged in C++/CLI. Example B uses C++/CLI managed types
and is not C++ code.

"C++/CLI changes the behavior of constructor and destructor functions." Only
for managed types, which are not part of C++.

"The semantics of const and volatile are changed." If they are (and I'm not
sure they are really) this also only applies to managed types.

"... the C++/CLI preprocessor is incompatible with the preprocessor for
standard C++." The #using directive is an extension and is not part of C++.
Yes there may be corner case incompatibilities with the parsing of the
two-word keywords but I think this probably falls into the realm of "some
very minor incompatibilities."

The document also makes a potentially misleading analogy with Java which
quite clearly does not support standard C++ code and merely has some
superficial similarities in keywords and syntax. Calling Java "C++/VM"
would not have been a parallel situation.

I don't believe what I said was mistaken, but please do say so (and why) if
you still disagree.

Andrew

Francis Glassborow

unread,
Feb 5, 2006, 12:34:52 PM2/5/06
to
In article <1diFf.81381$zt1....@newsfe5-gui.ntli.net>, Andrew Browne
<clcppm...@this.is.invalid> writes

>"Bo Persson" <b...@gmb.dk> wrote in message
>news:44k6c8F...@individual.net...
>>
>> "Andrew Browne" <clcppm...@this.is.invalid> skrev i meddelandet
>> news:dFREf.6375$K42....@newsfe7-win.ntli.net...
>>>
>>> The main confusion I see at the moment is that many people appear to
>>> believe
>>> that C++/CLI is a variant or subset language with superficial
>>> syntactic
>>> similarities to C++ but which does not support C++ in its entirety.
>>
>> Probably the same people who belive that ISO C++ is not the same
>> language as ISO C, even though it contains most of that language
>> unchanged.
>
>I am trying to correct a misapprehension that C++/CLI is not a superset of
>C++. I am not trying to argue that they are the same language.

In so far that Microsoft's Visual C++ compiler compiles both C++ and
C++/CLI it might seem that the latter is a superset of C++. However C++
used as C++/CLI code actually behaves differently. IOWs a statement that
can compile as pure C++ may actually compile with different semantics
if, for example, one of the types is a C++/CLI type.

Just because a compiler can compile source code from more than one
language does not make those languages the same one. We already have a
substantial number of programmers who think there is a language called
VC++ or Visual C++ (I suppose by contrast with Basic and Visual Basic
which are definitely distinct languages).

On the one hand MS are intent on persuading us that the Visual Studio
C++ compiler is an excellent and almost (whatever that may mean)
conforming C++ implementation (actually it is now among the best) OTOH
they are making the same implementation compile source code that is only
superficially a form of C++ and confusing punters by calling it C++/CLI.

There are so many differences (many of them actually useful and
generally beneficial in the context of the CLI platform) between
Standard C++ and C++/CLI that the similarity in names (particularly in
view of the habit of many programmers of talking about VC++) is just a
recipe for confusion.

I have heard all the arguments about making C++ a first class CLI
language and the simple answer is that this is smoke and mirrors. The
C++ object model is in conflict with the CLI one and there is no way to
resolve it other than with a new language. Calling it C++/CLI cannot be
motivated by technical issues only by political ones.


--
Francis Glassborow ACCU
Author of 'You Can Do It!' see http://www.spellen.org/youcandoit
For project ideas and contributions: http://www.spellen.org/youcandoit/projects

Andrew Browne

unread,
Feb 6, 2006, 5:15:08 AM2/6/06
to
"Francis Glassborow" <fra...@robinton.demon.co.uk> wrote in message
news:B17PjhIl...@robinton.demon.co.uk...

>
> In so far that Microsoft's Visual C++ compiler compiles both C++ and
> C++/CLI it might seem that the latter is a superset of C++.

I am not saying that C++/CLI is a superset of C++ just because it happens
that a particular compiler can act as both a C++/CLI and a C++ compiler. I
am saying that C++/CLI as it is specified in the ECMA standard is an
(almost) superset of C++ and that valid C++ code is (almost always) valid
C++/CLI code with the same meaning.

> However C++
> used as C++/CLI code actually behaves differently. IOWs a statement that
> can compile as pure C++ may actually compile with different semantics
> if, for example, one of the types is a C++/CLI type.

If one of the types is a C++/CLI type then the code will not compile as C++.
Could you perhaps give some very small example program(s) whose source code
compiles both in C++ and in C++/CLI but with different semantics or
behaviour? Could you give any small example program(s) that will compile in
C++ but will not compile in C++/CLI? (I'm asking for examples that don't
exploit corner cases.)

> On the one hand MS are intent on persuading us that the Visual Studio
> C++ compiler is an excellent and almost (whatever that may mean)
> conforming C++ implementation (actually it is now among the best) OTOH
> they are making the same implementation compile source code that is only
> superficially a form of C++ and confusing punters by calling it C++/CLI.

Playing devil's advocate for a second, ISO C++ permits a conforming
implementation to have extensions provided they do not alter the behaviour
of any well-formed program. To the extent that (I believe) this is very
nearly true of C++/CLI, Microsoft could actually be said to have a case for
just calling it C++. Fortunately they don't do that (at least some of the
time, anyway!)

Andrew

Thant Tessman

unread,
Feb 6, 2006, 5:33:38 PM2/6/06
to
kanze wrote:
> Le Chaud Lapin wrote:

[...]

>>No I don't. That's why it is so important for the experts to
>>be clear in their guidance,
>
>

> But where have the experts mislead? [...] So the marketing droids


> spit out marketing drivel, and the technical people continue to
> do good technical work, and produce reasoned and rational
> technical content. When I want technical information about a

> product, I keep this in mind. [...]

Are you suggesting that an expert would never "sell" whatever it is
they're an expert at? I've certanly seen more than one well-known C++
expert in this forum oversell the virtues of C++. The "experts" are just
as likely as any marketing droid to have an agenda. The only difference
is that their target audience requires a more sophisticated message.
Yes, Microsoft's C++ implementation is (finally!) pretty good, but
Microsoft's history on these matters doesn't make the OP's concerns so
easy to dismiss out of hand. Better to address them directly instead of
derailing the argument with accusations of slander.

My first and distant impression is that C++/CLI is an attempt to provide
a C++ API to Microsoft's CLR. The remarkable thing is that they decided
to do it by *adding* stuff to C++ (or modifiying C++, depending on
who'stalking). The more important question is not whether it should have
"C++" in its name, but: Why do it that way in the first place? Why not
provide a CLR API via a straight-ahead C++ library?

I can imagine three answers:

1) They want to make the task of the C++ CLR developer easier,
2) It was the easiest way for Microsoft to provide the capability,
3) It's part of a larger business strategy of locking developers into
the Microsoft platform.

My guess is that all three are true to one degree or another. The one
answer that I would find totally unbelievable is that Microsoft
developed C++/CLI for the benefit of the C++ developer community as a
whole. Unfortunately, when C++ expert Stanley B. Lippman implies that
C++/CLI is the next evolutionary step in the development of C++, he
clearly doesn't seem concerned over the possibility that someone might
infer exactly that. And knowing what I know about C++, and Microsoft,
and experts, I'd be suspicious of #1 as well until I actually learned it
for myself. Luckily, I don't care about the CLR. I just don't want to
have to revert back to maintaining two sets of my libraries; one written
in C++, and one written in Microsoft C++.

-thant

--
"War is God's way of teaching Americans geograpy." -- Ambrose Bierce

Le Chaud Lapin

unread,
Feb 6, 2006, 6:39:15 PM2/6/06
to
Francis Glassborow wrote:
[snipped]

> I have heard all the arguments about making C++ a first class CLI
> language and the simple answer is that this is smoke and mirrors.

I heard the same thing a while ago. The very phrase, "first class",
has a somewhat pejorative connotation - it implies that there are other
languages that are superior because they are CLI languages, and C++,
the poor guy, has not caught up, and is second-class, at least in some
respect. It also connotes without substantiation that, in general, it
is desiable that generic languages be made first-class CLI languages.

Perhaps they are right. I think I shall start programming in C++/CLI
so that I am "compliant", and "conformant", and "managed", and
"first-class", and B.C.B.G, and all that other good stuff.

-Le Chaud Lapin-

Francis Glassborow

unread,
Feb 6, 2006, 6:36:19 PM2/6/06
to
In article <fOrFf.78705$W4.1...@newsfe4-gui.ntli.net>, Andrew Browne
<clcppm...@this.is.invalid> writes

>"Francis Glassborow" <fra...@robinton.demon.co.uk> wrote in message
>news:B17PjhIl...@robinton.demon.co.uk...
>>
>> In so far that Microsoft's Visual C++ compiler compiles both C++ and
>> C++/CLI it might seem that the latter is a superset of C++.
>
>I am not saying that C++/CLI is a superset of C++ just because it happens
>that a particular compiler can act as both a C++/CLI and a C++ compiler. I
>am saying that C++/CLI as it is specified in the ECMA standard is an
>(almost) superset of C++ and that valid C++ code is (almost always) valid
>C++/CLI code with the same meaning.

Quote from Stan Lippman

C++/CLI is a self-contained, component-based dynamic programming
language that, like C# or Java, is derived from C++.

Note that he unambiguously states that it is a new language. Yet MS
continue to refer to it as C++ in the bodies of much of their
documentation. It is so easy to drop the '/CLI' even though Stan clearly
seems to believe that the name of the language is C++/CLI. If someone as
bright and clear thinking as Stan knows that the languages name is not
just C++ yet people of equal intelligence drop the /CLI the names are
clearly too similar and will get confused.

No one talking about C++ would drop the '++' and refer to it as C. Now
if this new language was called C#++ or ++C# or any of a multitude of
other symbol based names there would never be the temptation to call it
C++. Even C++# would work.

Names matter and bad names cause confusion. New things merit new names
to keep them distinct.


--
Francis Glassborow ACCU
Author of 'You Can Do It!' see http://www.spellen.org/youcandoit
For project ideas and contributions: http://www.spellen.org/youcandoit/projects

Le Chaud Lapin

unread,
Feb 7, 2006, 6:27:57 AM2/7/06
to
Alan Griffiths wrote:
> Le Chaud Lapin wrote:
>
> (More about this here:
> http://www.octopull.demon.co.uk/editorial/OverloadEditorial200601.pdf)

Very nice article! It includes all the salient points about what
Microsoft is doing, plus a lot more!

It seems that even the standards bodies are complaining that Microsoft
is trying to pretend that C++/CLI is an extension of C++ when the
syntax says otherwise.

And since we are on the subject, I still haven't figure out what to do
whenever I see in Visual Studio 2005 the message:

"sprintf as been deprecated....."

Since when did sprintf become deprecated?

-Le Chaud Lapin-

Andrew Browne

unread,
Feb 7, 2006, 6:22:00 AM2/7/06
to
"Francis Glassborow" <fra...@robinton.demon.co.uk> wrote in message
news:Zc2Z5GGS...@robinton.demon.co.uk...

> In art