I was wondering if anyone has Visual Studio 2012 installed. I saw a lot of promotional material but it doesn't say much about C++ and MFC in it. So, if anyone who tried it out, what's your opinion? Again, I'm asking only from the standpoint of C, C++ and MFC. I know that Intellisense for these languages was really bad in VS 2010. They didn't fix it in VS 2012 by any chance, did they?
I was wondering if anyone has Visual Studio 2012 installed. I saw a lot of promotional material but it doesn't say much about C++ and MFC in it. So, if anyone who tried it out, what's your opinion? Again, I'm asking only from the standpoint of C, C++ and MFC. I know that Intellisense for these languages was really bad in VS 2010. They didn't fix it in VS 2012 by any chance, did they?
My take on this is that VS 2012 lets you use the new C++ 11 standard to the fullest extent offered by MS. If you want more of C++ 11 you need to upgrade. VS 2010 probably is a dead-end in this respect.
Regarding the MFC I think you should be happy if you can still use them in VS 2012. MFC is definitely legacy now and to get MS to even mention them you'll have to torture a representative. The longer you stick to MFC the stronger you'll feel MS coercing you to move on to .NET and even better, Metro.
Regarding intellisense, VS is playing catch-up. Eclipse for example is way ahead in "everything at your fingertips" friendliness in general. This must be a major embarrassment for MS so you can expect improvements in VS 2012.
Last edited by nuzzle; October 29th, 2012 at 07:02 AM.
@nuzzle: Yes, I agree that MFC is clearly a legacy stuff. I haven't looked into the new C++ 11 standard. As long as it has nothing to do with the .NET framework, I'm all for it.
@Igor Vartanov: Yes, Backward compatibility and New features is what I'd like to know. Also what's your overall take on it (MS VS 2012) in regards to C/C++?
Regarding intellisense, VS is playing catch-up. Eclipse for example is way ahead in "everything at your fingertips" friendliness in general. This must be a major embarrassment for MS so you can expect improvements in VS 2012.
Any chance for some basic integrated refactoring tools for C++, to your knowledge? That would be awesome.
@Igor Vartanov: Yes, Backward compatibility and New features is what I'd like to know. Also what's your overall take on it (MS VS 2012) in regards to C/C++?
Well, I've rebuilt a couple of my MFC/ATL projects in VS2012, and everything went just fine. Another thing is that the projects are pretty much trivial in aspect of MFC use, though at least some level of backward compatibility is confirmed.
As for new features, unfortunately I cannot say anything certain. As I said before, I constantly drift off the Windows waters during last couple of years, so I'm about to start fearing of losing my C++ background.
Funny thing, this summer I've been interviewed in some local company, rather big one, and they said they actively hire C++ specialists... to retrain them to mobile developers, Android Java and iOS Objective C. Seems nobody needs pure C++ devs anymore.
... isn't this prohibited by the UN convention against torture ?
Well, they are fair enough, and ask you to agree to be tortured. "You know," they said, "there's no C++ project carries on right now..." Oh my, there are about two fifty heads in the company, and no C++ project in progress...
@Igor Vartanov: I heard that there's an issue with XP support, which will be a major drawback for me. Although it seems like they fixed the issue with the size of executables built with VS 2012. I think I saw it somewhere in the superbonzo's links above. That is good.
As for your "Java and Objective C" comment then you'd be surprised how close those languages are to C. Java is pretty much what C# was modeled on and Obj-C is a superset of C (in other words code written in C will compile with an Obj-C compiler.) I actually like Obj-C way better. There's a slight learning curve for it but then it becomes very simple. I've been doing a lot of Obj-C for almost 2 years now. In my case I have to also make sure that the old C++ code continues to work in the current environment though. And I always get this "oh-man" feeling when I have to go back to a Windows platform for that...
Regarding the MFC I think you should be happy if you can still use them in VS 2012. MFC is definitely legacy now and to get MS to even mention them you'll have to torture a representative. The longer you stick to MFC the stronger you'll feel MS coercing you to move on to .NET and even better, Metro.
I will agree MFC is 'legacy' and in some area's it shows, but it is still very much alive and is getting updates and bug fixes (I have personally posted several bugs on MS connect, and most are solved, unfortunately some aren't going to get fixed >.<).
As much as MS wants, .NET doesn't solve everything, and neither does metro. Some applications just don't make a whole lot of sense as a metro app, or are even impossible to do. A key feature here is that metro apps don't "run" in the background, only 1 app is active at a time and all other apps get just a very small amount of time to update their 'tile'.
Any app that needs constant background processing won't work as a metro app.
MFC isn't going to see a lot of attention because it's nothing new. Even if they add new stuff, it's still "old". A LOT of apps are MFC based, MS can't just decide to stop supporting MFC anywhere soon.
Regarding intellisense, VS is playing catch-up. Eclipse for example is way ahead in "everything at your fingertips" friendliness in general. This must be a major embarrassment for MS so you can expect improvements in VS 2012.
A bit off-topic, but I noticed an interesting statement on the page linked to by superbonzo (here):
C++/CLI IntelliSense. C++/CLI now has full IntelliSense support. IntelliSense features such as Quick Info, Parameter Help, List Members, and Auto Completion now work for C++/CLI. In addition, the other IntelliSense and IDE enhancements listed in this document also work for C++/CLI.
Yes, I agree about the Metro stuff. I watched some Channel9 demos about the "new" way MS want us to code their apps and I "got scared." All this talk of "can't run in the background", "only one app active", "time allotments for apps", "app can be terminated at any time" -- this is exactly what Apple does with their iOS. How do I know? Because I am an iOS developer. Why do I still program under Windows? Because Windows was one of those platforms where developers weren't restricted by the OS and it gave way more options to "improvise" in our code. So what now? We've got another clone...
MS can't just decide to stop supporting MFC anywhere soon.
The "scary" part is that it's not just MFC that is not supported under the new Windows RT platform, it is Win32 in general. Have you watched the video from that link I posted above. Somewhere in the middle where he runs the compatibility tool (that displays all illegal APIs under Win RT) he starts reading them from the list and the first one he mentions is LoadLibrary. Can you imagine writing a C++ piece of code without that API? Also GDI is gone, COM is strictly limited, etc.
I'm not sure how much of a future that Windows RT platform has, but if it takes off most of the Win32 APIs as we know them now will be a thing of the past.
anyway, note that all those forbidden APIs have a replacement where it makes sense and note that MFC GUIs make no sense in the metro environment, as other lowlevel APIs for good reasons.
And I'm very happy to see that standard C++ ( including things like <thread> and the extra <filesystem> ) do work on metro app. And I'm even more happy to see that whatever you can do in winRT + C++X you can do in WRL and standard C++. Correct me if I'm wrong, but this alone is much more than what Apple offers on iOS in terms of code "improvisability" and freedom.
Moreover, any existing GUI code will still need a restyling in order to be optimal for the metro user experience, whatever APIs it uses internally.
Originally Posted by ahmd
I'm not sure how much of a future that Windows RT platform has, but if it takes off most of the Win32 APIs as we know them now will be a thing of the past.
I don't think so, because you can always write whatever app you like with any language/techonology you like as long as it runs in the "usual" windows8 desktop environment. Yes, WindowsRT is limited to metro apps, but it represents only half of the MS platform on new tablet devices. IMO, this is a big difference compared to Apple's tablet offering.
Bookmarks