473,781 Members | 2,702 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Disappointment in VC++ .Net in VS2008

Why bother having Stan Lippman and Herb Sutter created a C++/CLI
language for .Net development when Microsoft, and the VC++ development
team, are so clearly intent on limiting .Net development with C++/CLI to
the smallest subset of .Net development technologies in Visual Studio,
while all of the new technologies are given to C# instead ? The bubble
has burst with VS 2008 and we are instead finally told quite frankly, by
a lead VC++ team developer, that VC++ is not going to be a first-class
..Net development language. In that case why bother with C++/CLI, since
it serves little to no purpose for C++ programmers anymore. Here is the
lineup:

1) ASP .NET, not for C++
2) Web services in .Net, not for C++ and even web services client
development is removed in VS 2008.
3) WPF, not for C++ and even creating controls for WPF is absent for
C++/CLI.
4) WCF, not for C++.
5) WWF, not for C++
6) LINQ, not for C++.

Finally all advanced web application development is remove from C++ with
the abandonment of the ATL Server.

VS 2008 is an abortion for C++ .Net developers in every way. The message
is now clear from Microsoft and the pretense is finally dropped "If you
want to do .Net development in C++, just forget about it and start
programming in C#". It should have been clear from the beginning, with
the miraculously appearing loader lock bug, but now is transparent.

Instead the big news in VC++ for VS 2008 is Vista updates for MFC of all
technologies. Gee, I am sure glad I learned a RAD technology like .Net
so I could go back to doing MFC development.

C++/CLI is such a good language, with so much careful and intelligent
decisions made so that it is superior to C# in almost every way, that it
is sad to finally realize that Microsoft never had any plans for C++
developers to effectively compete with C# developers in the .Net world.
It was just a sop so that they could attract C++ developers and turn
them toward C#.

Stan Lippman, Herb Sutter, Brandon Bray, and others, you should all be
ashamed of yourselves in leading VC++ straight to a dead end of
programming for .Net.
Dec 22 '07
53 2368
"Edward Diener" <ed************ *******@tropics oft.comwrote in message
news:uC******** *****@TK2MSFTNG P04.phx.gbl...
David Lowndes wrote:
>>It will make it happen if enough C++ programmers voice their displeasure
and refuse to spend their money. Microsoft is not stupid and they do
react to market forces.

Which is presumably why they've decided to re-emphasise MFC - albeit
just buying in and reworking a 3'rd party library.

MFC, no matter how many Microsoft C++ programmers have worked with it, is
a poor C++ application framework.
That may be, but you are changing the subject. There is a huge amount of MFC
code out there and Microsoft was responding to market forces in deciding to
further develop MFC, just as they were responding to market forces in giving
renewed emphasis to native code more generally.

I don't disagree with you that it would be great to see *both* better
support for native code *and* top class support for C++/CLI. However, MS has
plainly assessed the market and decided that that is not the way to go.

john carson
Dec 24 '07 #21
"Edward Diener" <ed************ *******@tropics oft.comwrote in message
news:O%******** ********@TK2MSF TNGP06.phx.gbl. ..
No, Borland's version of C++ is not entirely native code. Borland added
extensions to support their RAD programming model. You can not take a C++
Builder programmer and just compile it anywhere, or run it without the VCL
libraries.
Then the equivalent would be for Microsoft to do the same with MFC.

>As it is, they did it in C++ but made it dependent on .NET, which has its
own issues with performance and deployability.

C++ Builder is dependent on the VCL libraries. How is that different from
C++/CLI dependent on .NET ?
..NET has an inherent performance hit that is not apparent in VCL or any
native library. .NET is hard to deploy, requiring the latest MSI Installer
which if not present requires a reboot, and plus .NET libraries are huge ~25
MB. Both VCL and MFC are capable of being compiled into the .exe for single
..exe deployment. The deployment issue is the single most reason why .NET is
not more accepted in the marketplace (although that is changing).

> As it is, the minor improvements that C++/CLI has over C# (significant
improvements , especially if you already know C++, no doubt, but minor
compared to them not making it native code) do not make it worth
perserving, as a first class Visual RAD language, IMHO.

You make that statement above with no reason behind it, as if you were
just quoting the VC++ team's own opinion.
The only worthwhile thing that I have found so far which I miss in C++/CLI
is the dtor. The other so-called advantages of better optimization and
other stuff mentioned in this thread are nothing to shed tears over, IMHO.

-- David
Dec 24 '07 #22
>Let me clarify: OUR reason to use C# is for the latest toys. MS'S reason
>for wanting us to use C# (managed code) is to increase security in the
Windows ecosystem and thus reduce its costs associated with malware.
Not working for MS in a position to really know, I (and I presume
*we*) don't know what their reasons are other than via propaganda -
they could be to tie companies into a proprietary language/OS ;)

Merry Christmas
Dave
Dec 24 '07 #23
John Carson wrote:
"Edward Diener" <ed************ *******@tropics oft.comwrote in message
news:uC******** *****@TK2MSFTNG P04.phx.gbl...
>David Lowndes wrote:
>>>It will make it happen if enough C++ programmers voice their displeasure
and refuse to spend their money. Microsoft is not stupid and they do
react to market forces.
Which is presumably why they've decided to re-emphasise MFC - albeit
just buying in and reworking a 3'rd party library.
MFC, no matter how many Microsoft C++ programmers have worked with it, is
a poor C++ application framework.

That may be, but you are changing the subject. There is a huge amount of MFC
code out there and Microsoft was responding to market forces in deciding to
further develop MFC, just as they were responding to market forces in giving
renewed emphasis to native code more generally.

I don't disagree with you that it would be great to see *both* better
support for native code *and* top class support for C++/CLI. However, MS has
plainly assessed the market and decided that that is not the way to go.
They made the market the way it is by their poor support for C++ .Net.
Then after doing that, and everything they could do to promote C#, they
cleverly argue that because there is little market for it, there is no
point in supporting it. It is a self-fulfilling prophecy, as they saying
goes.

Borland did the same thing for C++ Builder. They negelected it for years
in favor of Delphi, their own language and product, and then they said
that because there was a small market for it they were not going to
support it very much.

It amazes me how C++ programmers can not see how obvious this pattern is.
Dec 24 '07 #24
>I disagree. The "using" statement is nothing but a wrapper around a
>"try/finally" block which automatically calls "IDisposable.Di spose()" for
releasing unmanaged resources (normally). While there are some issues
with the pattern in general, I've never found them to be a problem in
practice. I always implement a "using" statement for any object that
implements "IDisposabl e"

This is the issue. How do you easily determine whether an object
implements IDisposable and therefore any instance you create needs to be
surrounded with 'using'?
What's the issue here. You simply check the docs or look at the class
hierarchy itself. It's also a trivial issue to test for it in code if you
need to for some reason. That's usually not req'd though. In any case, the
"using" statement is a trivial issue in the grand scheme of things. It
really only applies to objects holding unmanaged resources and it's no
reason to choose C++ over C#.
In C++/CLI the syntax is the same no matter if it implements IDisposable
or not, therefore you just instantiate the object and use, confident that
if required, IDisposable.Dis pose() will be called automatically. But in
C# you have to arrange for it manually.
Agreed and I've already previously stated that the "using" statement is ugly
compared to C++ destructors. The over-arching issue however is that C++ just
isn't needed IMO. I've already stated that C# was a mistake in the first
place however (they should have stuck with C++), but now that C# is here,
C++ isn't required in the .NET world (except when dealing with legacy code).
BTW, does the new SafeHandle take care of any of this? Native Win32
handles are a large percentage of things which need to be disposed.
It implements "IDisposabl e" so you should explicitly invoke "Dispose()" ,
normally via the "using" statement.
Dec 24 '07 #25
I am totally agree with you.
C++/CLI has become a second class language.
C++/CLI is dead, God saves C++/CLI.

--
Tomas
English is not my first language.
Excuse me the inconvenients.
"Edward Diener" wrote:
Why bother having Stan Lippman and Herb Sutter created a C++/CLI
language for .Net development when Microsoft, and the VC++ development
team, are so clearly intent on limiting .Net development with C++/CLI to
the smallest subset of .Net development technologies in Visual Studio,
while all of the new technologies are given to C# instead ? The bubble
has burst with VS 2008 and we are instead finally told quite frankly, by
a lead VC++ team developer, that VC++ is not going to be a first-class
..Net development language. In that case why bother with C++/CLI, since
it serves little to no purpose for C++ programmers anymore. Here is the
lineup:

1) ASP .NET, not for C++
2) Web services in .Net, not for C++ and even web services client
development is removed in VS 2008.
3) WPF, not for C++ and even creating controls for WPF is absent for
C++/CLI.
4) WCF, not for C++.
5) WWF, not for C++
6) LINQ, not for C++.

Finally all advanced web application development is remove from C++ with
the abandonment of the ATL Server.

VS 2008 is an abortion for C++ .Net developers in every way. The message
is now clear from Microsoft and the pretense is finally dropped "If you
want to do .Net development in C++, just forget about it and start
programming in C#". It should have been clear from the beginning, with
the miraculously appearing loader lock bug, but now is transparent.

Instead the big news in VC++ for VS 2008 is Vista updates for MFC of all
technologies. Gee, I am sure glad I learned a RAD technology like .Net
so I could go back to doing MFC development.

C++/CLI is such a good language, with so much careful and intelligent
decisions made so that it is superior to C# in almost every way, that it
is sad to finally realize that Microsoft never had any plans for C++
developers to effectively compete with C# developers in the .Net world.
It was just a sop so that they could attract C++ developers and turn
them toward C#.

Stan Lippman, Herb Sutter, Brandon Bray, and others, you should all be
ashamed of yourselves in leading VC++ straight to a dead end of
programming for .Net.
Dec 24 '07 #26
"Edward Diener" <ed************ *******@tropics oft.comwrote in message
news:%2******** ********@TK2MSF TNGP03.phx.gbl. ..
They made the market the way it is by their poor support for C++ .Net.
Then after doing that, and everything they could do to promote C#, they
cleverly argue that because there is little market for it, there is no
point in supporting it. It is a self-fulfilling prophecy, as they saying
goes.

Borland did the same thing for C++ Builder. They negelected it for years
in favor of Delphi, their own language and product, and then they said
that because there was a small market for it they were not going to
support it very much.

It amazes me how C++ programmers can not see how obvious this pattern is.
From our point of view, the company's neglect has contributed, but I still
think you are missing something huge: if the marketplace had been more
receptive, the company would not have neglected it. And it was not entirely
because the offerings were crap that the market (us) ignored the product.
VS2005 was not crap. For WinForms development, it was spot on (the
designers needed help, but they were functional). And still how many
C++/CLI WinForms apps were created in the last 2 years since VS2005 was
released? Not enough to make me choose C++/CLI for the best support and
momentum.

That's a key word: momentum. Momentum is what made C++ great. It offered
great functionality and a great community of people using it. People wanted
to program in C++ for these benefits. And momentum is the reason why
C++/CLI people are now using C#. C++ programmers love momentum more than
C++ itself.

So I think you are only seeing half the pattern.

-- David

Dec 24 '07 #27
"Edward Diener" <ed************ *******@tropics oft.comwrote in message
news:e1******** ******@TK2MSFTN GP03.phx.gbl...
I do not really care that much what the differences between C++ and C#
are. I only care that Microsoft, and the likes of Lippman and Sutter, went
out of their way to tout C++/CLI as a programming language for .Net for
C++ programmers, only to drop it like a hot potato when they decided that
C# would be the way to go for all of the key .Net technologies.

They wasted my time and my efforts and I am sure they did so for many C++
programmers. My OP is a reflection of that reality.
I understand how it must have been a jolt to anticipate VS2008 and find out
when it was released that support of your language of choice, C++/CLI, is
not as expected. If I had invested a lot of time and code into C++/CLI, I
would feel let down as well. But, step back and ask, how exactly were your
time and efforts wasted? All your C++/CLI code still works and interops
with little effort with C#. You can continue developing the code in
C++/CLI, and only new features like XAML will not be accessible. I can't
see how one line of code that you wrote is rendered unusable. Lippman's and
Sutter's et al.'s contributions live on.

Not that you necessarily should have known, or that it would necessarily
have made a difference, but
http://channel9.msdn.com/Showpost.aspx?postid=281987 said as early as
February, 2007 that C++/CLI would be focused on Interop and things like Linq
would not be supported.

I can very adequately program using C#. It is not nearly as much fun or as
flexible or as good as C++/CLI IMO. But Microsoft clearly has little
interest in promoting or supporting C++/CLI any more as a first class .Net
language. And I have no interest in programming in a second class .Net
language. I have been through that with Borland already and I am not going
through that with Microsoft.
Due to the better tools, C# is more fun than C++/CLI.

-- David

Dec 24 '07 #28
"David Lowndes" <Da****@example .invalidwrote in message
news:ur******** *************** *********@4ax.c om...
Let me clarify: OUR reason to use C# is for the latest toys. MS'S
reason
for wanting us to use C# (managed code) is to increase security in the
Windows ecosystem and thus reduce its costs associated with malware.

Not working for MS in a position to really know, I (and I presume
*we*) don't know what their reasons are other than via propaganda -
they could be to tie companies into a proprietary language/OS ;)

Merry Christmas
Dave
Good point that we don't really know for sure. But say the reason were to
tie us to a proprietary language/OS. They could do that by creating a
Borland C++Builder-like environment which is native and still proprietary.
So locking us into a proprietary environment alone does not explain why they
pushed managed.

-- David

Dec 24 '07 #29
"Larry Smith" <no_spam@_nospa m.comwrote in message
news:ub******** ******@TK2MSFTN GP03.phx.gbl...
What's the issue here. You simply check the docs or look at the class
hierarchy itself. It's also a trivial issue to test for it in code if you
need to for some reason. That's usually not req'd though. In any case, the
"using" statement is a trivial issue in the grand scheme of things. It
really only applies to objects holding unmanaged resources and it's no
reason to choose C++ over C#.
You think it's not an issue for us lazy programmers used to Intellisense to
"check the docs or look at the class hierarchy itself"? ;) Come to think
of it, that would be a great Intellisense feature: draw a red squiggly
underneath a declaration of an IDiposable class that does not have a 'using'
statement. David L - want to fill out a Connect request for this? (You're
the Connect King).... ;)

-- David

Dec 24 '07 #30

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
1998
by: Homer | last post by:
Hi All, In my work place we are still using VS6.00 with C++ and are not allowed to use a newer version (to connect to source control). We also use ClearCase as source control software. What I did was to install VS 2008 Beta 1 on my machine and made a copy of my source directory to use VS2008 with it. I want to use VS2008 only as my editor and don't want to check-in/check-out with it (since my company doesn't like it). When I open my...
6
1388
by: =?Utf-8?B?RGlwZXNoX1NoYXJtYQ==?= | last post by:
Hi all, I am porting an code written in VC++ to VC.Net to make it manage. But in Managed VC we dont use "const" keyboard at all. but my code is using it very frequently, so is their any alternative to it or we have to remove the "const" keyword from our code completely. Please suggest me the solution. Secondly i am getting one error as:: error C4439: 'function_name' : function definition with a managed type in the signature must have a...
9
1945
by: =?Utf-8?B?UmFqZXNoYXowOQ==?= | last post by:
I heared that microsoft give technical support to vb upto this year end. Can any one microsoft stops techinical support for vc++(6.0)? was microsoft announced any official date?
9
1851
by: =?Utf-8?B?S3VlaXNoaW9uZyBUdQ==?= | last post by:
What is the difference between the regular VC++ edition and the VC++ express edition? If there is not too much difference in functionality, why the express edition is free?
20
2896
by: Iouri | last post by:
Hi everybody, We are currently using VS2003 and now we are in the porcess of upgrading to the next Visual Studio version. Does somebody have a real life experience with VS2008? My boss wants to go with VS2005 and I am trying to convince to buy VS2008. Can somebody provide links to compare 2 products in terms of how stable they are. I do not need VS2008 new features, I need to prove to my management that VS2008 is a stable product. TIA
2
2444
by: Academia | last post by:
I have vs2005 installed on the System disk and vs2008 installed on a different disk. I want to remove VS2005. I read one time about some problem with uninstalling vs2005 after vs2008 is installed but can't find the site now. Is there a problem? Would reinstalling vs2008 fix any problem that may occur because of uninstalling vs2005.
2
1763
by: goo.one1 | last post by:
Hi All, I'm looking for info on how to port VC++ 6 code/projects to VC++ 9 (2008). I noticed that there is a converter built-in for Visual *BASIC* to convert from VS6 to 9... I have found the following brief note:
6
2695
by: =?Utf-8?B?S3VlaXNoaW9uZyBUdQ==?= | last post by:
I want to create a sound to alert the user when some event occurs. How do I do it from my VC++ .NET window form program?
3
5805
by: =?Utf-8?B?SmFtZXMgV29uZw==?= | last post by:
Hi everybody, There is a fatal error while installing VS2008 SP1 on Vista 64bit Business edition. The last line of error log is Installation failed with error code: (0x80070643) I tried to uninstall Silverlight first (which is described in some blogs) and install .NET framework 3.5 SP1 manually but still failed. My VS2008 is Team Suit for developer and Vista SP1 is also installed.
0
9474
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10308
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10143
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10076
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9939
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8964
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
6729
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5507
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4040
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.