Good C++ news
I am seeing many many articles revolving around Windows 8 and many of them are talking about finally bringing C++ into the limelight for GUI apps which we all know now has been delegated to the C# and .NET crowd.
I've also read some articles talking about a C++ renaissance of sorts at Microsoft. Apparently the Vista folks tried to re-write a good chunk of Windows in .NET and WPF and apparently it failed pretty bad. As a result the core Windows development team has swore-off of .NET and back to native code. Again some of this is from blogs but from quite a few different ones so it could be true.
As well there are some new Microsoft conferences that are..get this..geared towards C and C++ developers. So is there a rift internally at MS between the managed devs and unmanaged devs? I could see how a failure like Vista (and if its failure was due to overuse of .NET and WPF) would cause an entire section of the studio vow to not use it anymore but there must be more going on than that.
C++ and Beyond 2011: Herb Sutter - Why C++? | Channel 9
Understanding the Windows 8 Jupiter fiasco | Brillskills
I have some insight into this actually. I'll just drop a few breadcrumbs...
I knew there was conflict within MS between the core Windows team and DevDiv for quite some time but I did not think it would surface. One side was pushing all managed and one side was completely ignoring managed and staying native so it appeared as if MS was pushing all managed b/c DevDiv is the division responsible for dev tools so that is all we heard and read. I am very glad that C++ is going to get some love in 11 and according to Herb Sutter it is getting a lot of love compared to what it has in the past. With the features in modern C++ and the new idea that C++ and C# will be on the same playing field when it comes to support and APIs they can utilize I can see a large resurgence of C++. Most went to .NET b/c that was what all the modern tools and APIs were using and touting so it made sense to go that route. Now if C++ is brought onto the same playing field I can see a shift back to native code with the advantage that we can use .NET managed code as well if and when we want to. Again using the right tool for the job is always the right thing to do so I'm not saying all native but I'm also not saying all managed. I think a good balance of the two will give developers plenty to work with.
I also like what Herb Sutter is saying when he says that in the 90's we needed super fast development b/c we weren't really asking the system to do all that much. But more and more on mobile devices we see that more and more performance is needed b/c they can do so much more than before. C++ is by far the best language to use for high performance limited memory environments. Super rapid development and productivity are pointless if at the end of the road the product does not perform on the target platform.
I guess this means we are still in demand after all. I don't think the demand ever truly died down that much and not nearly as much as it was being touted. There are plenty of C/C++ jobs out there but most of them also say that C# and .NET experience is also welcomed. I think the programming landscape is about to change and we are moving into the next era of high performance mobile devices. Modern C++ is certainly up to the task and if we are given the same libraries and functionality that C# has enjoyed up to this point the sky is the limit.
Complexity can be pared down with abstractions. If the abstractions have been built then development time can also be pared down. This is what C++ lacked in the past but it appears it will not lack this anymore.
C++ jobs with .NET experience often meant C++/CLI jobs. :S
Some yes but not all of them meant that. C++/CLI is not that bad once you get used to it. But now if the feature-rich libraries (read: assemblies) that C# has been using are going to be available to C++ then I will just use C++.
Now that could be a reason for me to get excited! :D