Thread: The future of C++ in MS Windows?

  1. #1
    Registered User
    Join Date
    Aug 2002
    Posts
    7

    The future of C++ in MS Windows?

    I'm VERY curious about your take on .NET.

    Do you guys think that C++/VC++ is on the way out with .NET here? Will C# come to be 'THE' MS Windows language, both on the desktop and the web?

    Also, why would someone learn C# if VB.NET will do everything they need on the web already (it seems as if it will ... even controls and web services)? Is there any part of ASP.NET that C# really does better than VB.NET?

    If you were just starting out and wanted to program for Windows/Web, would you learn VB.NET or C#?

    I'm learning C++ for Windows game programming (who isn't ) and maybe dabbling in Linux so I don't have a preference in MS products.

    Thanks,

    Minh

  2. #2
    pronounced 'fib' FillYourBrain's Avatar
    Join Date
    Aug 2002
    Posts
    2,297
    If I had to choose, I would pick C# because I don't like VB syntax. But hopefully I won't have to choose. It would be silly for them to try to phase out C++ as it exists today.
    "You are stupid! You are stupid! Oh, and don't forget, you are STUPID!" - Dexter

  3. #3
    Banned Troll_King's Avatar
    Join Date
    Oct 2001
    Posts
    1,784
    It depends on how well they can sell .net, but based on the fact that Microsoft C++ is 'unmanaged', they may very well phase it out. They can not do this yet because the .net framework is not mature enough, for example, there isn't even a BCL namespace for sound. Microsoft C++ is a security volnerability.

    Both VB.net and C# are subsets of the Intermediate Language (IL). They overlap and that is the part which you can use for cross language programming, however they also contain unique characteristics of the IL.

    It doesn't matter whether you use C# or VB.net. Some of the BCL was written in C#, but I don't think it has much impact overall.

  4. #4
    Mayor of Awesometown Govtcheez's Avatar
    Join Date
    Aug 2001
    Location
    MI
    Posts
    8,823
    > based on the fact that Microsoft C++ is 'unmanaged'

    Isn't C++.NET managed?

  5. #5
    Banned Troll_King's Avatar
    Join Date
    Oct 2001
    Posts
    1,784
    Originally posted by Govtcheez
    > based on the fact that Microsoft C++ is 'unmanaged'

    Isn't C++.NET managed?
    Yeah, C++.net targets the .net framework, but VC++7 which replaces VC++6 targets the Win32 API directly. This means that there is no security in place to manage the code, hence 'unmanaged'.

    I have a question. Those who studied Win32 Interface and the .net BCL. how similar are the two interfaces? I heard that they were supposed to resemble each other. I'm not a Win32 programmer, so I don't know the API.

  6. #6
    pronounced 'fib' FillYourBrain's Avatar
    Join Date
    Aug 2002
    Posts
    2,297
    you're saying that .NET is a wrapper for the WinAPI? Are we talking something like MFC where there is some .NET dll that you have to distribute?
    "You are stupid! You are stupid! Oh, and don't forget, you are STUPID!" - Dexter

  7. #7
    Banned Troll_King's Avatar
    Join Date
    Oct 2001
    Posts
    1,784
    For a hello world program the framework makes a couple thousand Win32 calls, optimized, it makes a few hundred.

    If you think about it, Win32 is just an interface, at least with the .net framework BCL you have a namespace heirarchy. Everything is nicely organized and accessible. Why not trade one ugly looking API for a much nicer unified one? I heard that many of the Win32 names (interface) are supposted to be preserved by the BCL, but I don't know this for sure. This is for the sake of the developer who knows Win32. One of the problems that MS had was that VB and C++ and whatever other language you used, had it's own wrappers for interoperating with Win32. Now with the BCL, all the languages use the same library.

    Ofcourse a framework is more than a wrapper. It's different than MFC because it promotes reusable design. The reusable design is the intermediate langauge (IL). MFC is localized to Microsoft C++ development.

    I can't say much more because I have not looked into it for months. At some point in time I'll look into it again.

  8. #8
    pronounced 'fib' FillYourBrain's Avatar
    Join Date
    Aug 2002
    Posts
    2,297
    I can imagine then that we're talking about something built on COM. A version of Win32 API in ActiveX. This would allow a lot of cross-language work. Is that about right?
    "You are stupid! You are stupid! Oh, and don't forget, you are STUPID!" - Dexter

  9. #9
    Barjor
    Guest
    My prediction would be that eventualy the api will be replaced with something like the .NET framework so that all win interactions are managed, easy and uniform. The outspoken goal acording to ms is that all new api's also will have a .NET equivalent(sp) And by focusing on .NET only instead of both VB and MFC etc.. I am sure the .NET framework will support almost all api functions. Currently all comercial code from ms is written in C++ but I would not be suprised if we will see more c# apps in the future. I would pick C# over VB because it is crisper and cleaner then VB and C++.NET. The .NET is more of an add on the VB and C++NET while C# was designed only for the .NET.

    Troll_King >>For a hello world program the framework makes a couple thousand Win32 calls, optimized, it makes a few hundred.
    <<

    Been watching the .NET show episode 20???

  10. #10
    Banned Troll_King's Avatar
    Join Date
    Oct 2001
    Posts
    1,784
    Originally posted by FillYourBrain
    I can imagine then that we're talking about something built on COM. A version of Win32 API in ActiveX. This would allow a lot of cross-language work. Is that about right?
    I know only that .net objects communicate with COM objects in a disributed manner (through a proxy).

    They should in time be able to extend the .net framework to all of the Win32 managers and find ways to interoperate. I think that the .net framework is still immature, but I'm no expert on it.

  11. #11
    Barjor
    Guest
    As I understand it you do not have to include any standard DLL's as you had to with mfc. Although the .NET frame work have to be installed on the computer you want to run your .NET app on. Kinda like JVM. Most calls will be done to a file called mscorelib.dll. Another difference is that .NET apps don't use the register so the instalation process is alot easier.

  12. #12
    Banned Troll_King's Avatar
    Join Date
    Oct 2001
    Posts
    1,784
    Originally posted by Barjor
    Currently all comercial code from ms is written in C++ but I would not be suprised if we will see more c# apps in the future.

    I would pick C# over VB because it is crisper and cleaner then VB and C++.NET. The .NET is more of an add on the VB and C++NET while C# was designed only for the .NET.

    Troll_King >>For a hello world program the framework makes a couple thousand Win32 calls, optimized, it makes a few hundred.
    <<

    Been watching the .NET show episode 20???
    Sure, I've seen many of the .net shows, including that one. I've tried cordbg too.

    Certainly more applications will be written in C#. The reason being that it targets the framework!

    Like I said, VB, C#, and C++.net are subsets of the IL. If you want the full power of .net, learn to program in IL. VB.net and C# overlap a great deal. It wouldn't be a bad idea to learn one of them and to learn the IL. That way you are not missing out on any of the functionality of the framework, except for those components of Win32 that the framework does not interoperate with ...yet.

  13. #13
    Banned Troll_King's Avatar
    Join Date
    Oct 2001
    Posts
    1,784
    Originally posted by Barjor
    As I understand it you do not have to include any standard DLL's as you had to with mfc. Although the .NET frame work have to be installed on the computer you want to run your .NET app on. Kinda like JVM. Most calls will be done to a file called mscorelib.dll. Another difference is that .NET apps don't use the register so the instalation process is alot easier.
    I heard that all you need is the assembly and it is simply cut an paste, than compile and execute.

  14. #14
    Registered User
    Join Date
    May 2002
    Posts
    85
    I agree with Bajor's point.
    C# is cleanly designed from scratch to suport .NET
    while VB and C++ .NET has been still underway of
    enhancement and modification. They are not
    perfect at present. For getting start learning
    a language today, I would pick C#.
    DV007

  15. #15
    pronounced 'fib' FillYourBrain's Avatar
    Join Date
    Aug 2002
    Posts
    2,297
    can't we use the framework from C++.NET?
    "You are stupid! You are stupid! Oh, and don't forget, you are STUPID!" - Dexter

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Future for C programming in Windows?
    By alphanoob in forum Windows Programming
    Replies: 8
    Last Post: 05-22-2003, 09:22 AM
  2. FlashWindowEx not declared?
    By Aidman in forum Windows Programming
    Replies: 3
    Last Post: 05-17-2003, 02:58 AM
  3. Future of MS
    By Barjor in forum A Brief History of Cprogramming.com
    Replies: 28
    Last Post: 02-15-2002, 10:40 AM
  4. ms windows 1
    By iain in forum A Brief History of Cprogramming.com
    Replies: 4
    Last Post: 08-17-2001, 11:48 AM