|
Sigh. I was merely pointing out that the C and C++ groups weren't 'scanty' by any stretch of the imagination, and certainly aren't going away.
Software Zen: delete this;
|
|
|
|
|
Programming in C/C++ isn't that hard. However developing a GUI application using C# is much simpler than doing the same using C/C++ .
My 2 cents.
Veni, vidi, vici.
|
|
|
|
|
I agree with CPallini.
I like to program in C# to abstract from the lower level coding. I want to do stuff and not necessarily know how it is done, if you catch my drift
|
|
|
|
|
No, it is not. Developing a *simple* wizard-driven application *might* be simpler in C#. Developing a competent GUI application is extremely hard in anything other than C (I'm not counting C++ here since besides object lifetime, RAII and using WM_NCCREATE/WM_NCDESTROY to call emulate __ctor/__dtor, C++ is not of much use since all API is Win32 GUI is C last time I checked). Lifetime in particular is more than gruesome - consider logoff/shutdown, hibernate, multiple monitors, multiple desktops etc. which have absolutely no support other than Win32.
Nuclear launch detected
|
|
|
|
|
Oh, I see hordes of C developers programming GUI applications using WINAPI ...
Veni, vidi, vici.
|
|
|
|
|
Yes, there are. Look at what you are using daily, browsers, Office, media players etc. I don't know if there is a single program I am using daily that is using .NET GUI. Perhaps Visual Studio have some.
Nuclear launch detected
|
|
|
|
|
I don't do statistics with your usage of applications. I do statistics with the questions in the Q&A, for instance. There are many many GUI .NET developers while there are rare examples of folks writing GUI stuff using C .
Veni, vidi, vici.
|
|
|
|
|
That's true; there are many GUI .NET developers. While the GUIs are written in C/C++ (Win32, Qt, custom, WTL, barebones etc). So your statistics may be about developers. I was talking about GUIs.
Nuclear launch detected
|
|
|
|
|
I think that most GUI s are written using .NET .
Many are written using C++ .
Few are coded in C .
Many of the most succesfull (like, for instance, Chrome) applications are written with C++ , that's true.
Veni, vidi, vici.
|
|
|
|
|
But you can still access the Win32 API in C# via P/Invoke, so saying C is better because you can access Win32 isn't an advantage. And I'd certainly love to see an example where the C version is both less code written and easier to understand than the C# equivalent for any GUI application.
|
|
|
|
|
Well, there are examples, but that's not the point. The point is the OS official API is C, and if one is relying to P-invoke to emulate C structures, what's the advantage of using C#?
Nuclear launch detected
|
|
|
|
|
Abstraction. Most of the time, I neither need to know nor do I care about the details. And to be honest, I've only seen a few rather specific issues that couldn't be handled in C# (like removing the "X" button from the title bar).
|
|
|
|
|
You can't remove it because it's DWM property, not that you can't custom paint a caption in C#.
Nuclear launch detected
|
|
|
|
|
But you can remove it (or in Vista and 7, just disable it I think, I haven't tried since XP). You just need to go through the Windows API to do it.
|
|
|
|
|
I remember, about 20 years ago, while I was getting my feet wet with C++ - I actually went back to developing in c. That lasted for about a month, while stuff about classes, inheritance and polymorphism churned at the back of my head – and then things just fell into place.
These days a large part of the Windows API can only be accessed through virtual function tables. While it's possible to do this using c, I think that would be a rather painful way to develop software.
Even if you develop software using the c api, C++ offers much that allows me to structure my code in a manner that makes it easier to handle complexity, like Windows Development in C++, working with menus[^]
|
|
|
|
|
For sure (almost) everyone is doing it in C++, absolutely. What I was pointing out is that the structures, memory management, object lifetime etc. are still C-like. One will still call a Release() { delete this; } when dealing with WM_NCDESTROY, so it's still a GetMessage and a WNDPROC dictating the flow; an output allocated memory will most likely using LocalFree and not delete.
Nuclear launch detected
|
|
|
|
|
You can always use C++ Builder[^] - doing stuff using VCL is often faster than doing the same thing using C# and .Net.
My 2 cents
|
|
|
|
|
I doubt about (however, I don't know VCL ).
Veni, vidi, vici.
|
|
|
|
|
CPallini wrote: I doubt about
What was it Anders did before he joined Microsoft? No, it couldn't be, could it?
|
|
|
|
|
I know the joke: he had to change the syntax to obtain Delphi success.
Veni, vidi, vici.
|
|
|
|
|
And VCL is the Delphi Visual Class Library, and you can use that with C++ builder.
If you know .Net, particularly Windows Forms, you'll be up to speed with VCL pretty fast ...
The library uses pointers extensively, but it's designed so well that most programmers hardly notice ...
|
|
|
|
|
I never had any difficulty developing GUI applications in C++ so I was wondering why do you think it is much simpler to develop a GUI application in C# than in C++?
|
|
|
|
|
That comes from:
- My personal experience.
- A rough statistic using Quick Answers (it looks there are many more folks writing GUIs with
C# than ones with C++ )
(I could use even this poll as statistics )
Veni, vidi, vici.
modified 28-Jan-13 4:29am.
|
|
|
|
|
"personal experience" and C# popularity in codeproject does not really help anyone understand why do you think C# is simple than C++ for developing GUI applications.
|
|
|
|
|
Does not help you, perhaps.
Personal experience: I find more difficult using MFC or Win32 than .NET classes for building a GUI application.
C# popularity: The relative big number of C# GUI developers is a clear index of a more simple approach, isn't it (do people deliberately prefer complexity over simplicity?)?
Veni, vidi, vici.
modified 28-Jan-13 6:50am.
|
|
|
|