writetonsharma
I think we are talking about C and C++ here and .Net is nowhere near to C++. |
I don't know about C, but it is certainly possible to use .NET with C++. I believe the common term is "managed C++".
All systems have their equivalent API, which must be used to program that system. |
For Windows, in the semi-near future, this is likely going to be the .net framework. Win32 API support likely only exists in current Windows releases to retain backwards compatibility. Some day, WinAPI support will no longer be native, and will actually be emulated by an underlying .net infastructure (if supported at all).
secondly, .NET/C# is getting popular but if project requirement is to use C/C++ then no one will use .net |
I agree you should use whatever platform your employer or teammates are using and should meet whatever requirements are set out. Obviously if the requirement for a project is to use C and WinAPI, then that's what you should use.
so you cant say win32/MFC is dying fast |
When's the last time they were officially updated? (and remember when answering this question -- think about how long ago that was in
computer years. They're dinosaurs.)
How come virtually everything MS has released in the past few years have been .NET based or .NET oriented?
Why would MS invest time and money in maintaining something that ultimately only competes with their frontrunner and doesn't come anywhere near it in terms of functionality?
Obviously professional companies may still use WinAPI because they use whatever is most cost efficient (if they already have a staff of programmers that know WinAPI, they're not going to invest the time/money in switching to a foreign API unless absolutely necessary).
.net cant give optimized applications. |
I was hoping to avoid this turning into "code run through a VM can't possibly run as fast as a natively compiled program" since that's quite a hot topic. All I'll say on this matter is that smart VMs are getting better and better... and computers are getting faster and faster. And making the claim that Java/.net can't possibly be as fast as C++ is very risky.
And who's to say the next "big thing" in computer hardware won't be a processor that natively processes .net bytecode? Maybe this is how MS plans to finally break free of the crippling x86 chain they've been stuck to for the past 15 years (talk about a dinosaur).
Don't get me wrong. I'm still a big fan of C++, but it certainly isn't the only language that offers high-performance.
Duoas
If .NET takes over, Windows will die. .NET is nothing more than an overblown OO framework over the Win32 API. |
Currently this might be true (though I'm not sure I buy that). But like I say, in the future, this seems very likely to change.
At any rate this statement is silly for a number of reasons. MS still holds the market and is actively keeping pace with the development world. They're not going to just die.
Application code may be portable, but system code can never be. |
I guess my point is that you seem to be stuck in thinking that WinAPI
has to be the system API for Windows. IMO, that's an ill advised standpoint.
The writing is on the wall if you look for it. MS is doing everything it can to get away from their archaic API and move towards .net without destroying backward compatibility. And it looks to me like they're doing it very effectively. Look at what they've been doing:
- .NET framework comes bundled with the OS
- All their commercial releases use .NET
- The latest DirectX is incompatible with older versions of Windows (no logical reason for this other than to force game developers to target platforms which are guaranteed to have .net installed)
They're basically saying: "Start using .NET or leave Windows"
The chances that they abandon .NET after all this and "fall back" to WinAPI is nill. And they'll only support both for so long. One of them is on the way out. I know which one I'm putting my money on.