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.
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.
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.
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've been hearing about MFC being legacy for years now. I'm thinking that that rap is more urban legend and MSFT wishful thinking than anything else. The other day I downloaded and installed Samsung's Kies program, which allows Samsung's SmartPhone to connect to the PC. Guess what one of the files that was downloaded was? MFC90u.dll
Sure, MSFT would just love everyone to program windows in C# with the WPF framework. Just ain't gonna happen.
Last edited by spiritualfields; December 7th, 2012 at 12:32 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++?
@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...
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.
A bit off-topic, but I noticed an interesting statement on the page linked to by superbonzo (here):
Finally!
Oh, I hope they fix that IntelliSense, or at least make it "as good" as it is for C# in VS2010.
@superbonzo: Obviously they will introduce new APIs that make sense for the tiled interface. The issue here is a distinction between a mobile and a desktop OS. In case of iOS they made it pretty clear that that is a mobile operating system that behaves in a totally different way than a desktop OS (which, unfortunately now is slowly pushed into a mobile realm as well, but is still not as "mobile-looking" as Windows RT/8.)
In a mobile OS limited multitasking, time and resources allotment, battery savings, etc. is quite appropriate. Also UI for a mobile OS is a totally different beast due to the screen size limitations. But most of the above make no sense to be introduced to a desktop OS. For instance, a full screen app with giant buttons looks ridiculous on my 30-inch display.
So, if Windows RT is designed as a mobile OS (something to run only on phones and small tablets) then, yes, all that tiled interface API limitations make perfect sense. But, what I'm afraid will happen, is that users on Windows RT will begin to expect full desktop app performance due to its identical look to the Windows 8 Pro or Enterprise, which in turn will flood developers' tech support lines with questions like this, "Why can't I run your program on my new Windows 8?" Note that for an end-user there will be no distinction between Windows RT or Windows 8. Both will look the same for them.
So obviously, since those OS's are totally different beasts on the inside, we, developers, won't be able implement most of the features that any C++ developer is familiar with -- stuff like "real" multithreading, services, IPC, etc. And if all you're doing is a picture viewer, then you're in good shape. Anything more complex will make it incompatible with Windows RT... and that is not what people would expect from Windows. So that is what's disturbing to me...
But I'm deviating from the original subject now... So concerning VS 2012, it sounds like there're some improvements.
Last edited by ahmd; November 6th, 2012 at 02:16 PM.
Bookmarks