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
"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
>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
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.
>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.
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.
"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
"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
"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
"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 This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
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...
|
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...
|
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?
|
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?
|
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
| |
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.
|
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:
|
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?
|
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.
|
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,...
|
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...
| |
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...
|
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,...
|
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...
|
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...
|
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();...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
| |
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
| |