I have been programming C# for the last 6-7 years or so (yes so I?m one of the ?coffee based? coders as well), before that mostly C++. At the moment I'm at a crossroad, undecided if I should switch back to C++11. Why you say? At this point mainly because I need performance, but on a grander scale because my gut feeling has started to worry me that there might be some changes coming and that C++ could be the right choice for the future?
Let me pull back a little. At the moment I'm about to start on a pretty large project, and since the project will be ridden with heavy math calculations, and I know performance will be very important, I was a little hesitant just to jump out and start implementing in C# (as I normally do). To be honest I want to choose C#, but I'm afraid it's not the correct choice do to performance issues. C# and the.NET library is beautiful and a joy to work with, and there are countless of projects where customers have been stunned of how fast I was able to produce results. This was on the other hand almost never the case with C++. But this performance thingy is nagging me big time, I?m really afraid to choose the wrong environment and discover down the path that this was a failure. So I first started out on a googling mission to find performance comparisons, tech articles, blog posts about C++ and C# performance.
During this time there was also a lot of developer anxiety due to Microsoft?s poor public relation management prior to Windows 8 pre-release and the Build conference. You have probably read most of it yourselves. In general the feeling is that Microsoft is discontinuing (read: scrapping) Silverlight and XNA, and honestly the future of .NET as a first class citizen on WinRT is also questionable. Here are just two small articles exemplifying what I?m talking about:
But maybe more importantly, I watched some videos with Herb Sutter from Microsoft, where he talks about why he considers C++ being the right choice for the future. For instance he talks about the Microsoft Longhorn project and Microsoft?s efforts to make managed languages a core part of Windows, and how that failed. He also talks about how they now feel the new era is towards native development with the now ?new and shiny? C++11. Take a look at the video, it?s quite interesting:
And finally this video where Herb talks about how he feels C++ is now closer to C# and the managed languages, and nothing like the old C++ from back in the days:
So, what do you guys think? I would love to hear comments on the videos and what do you guys consider for the future. Should we start the journey from C# and managed and venture over to this new shiny toy C++11? Is it the right choice? Will Microsoft silently and slowly stop focusing on managed development, stop improving the CLR performance, and focus more on native development?
On the other hand, my C++ skills are fairly rusty since it's almost 10 years since I programmed any big projects in it, and it's not entirely trivial to write a high performance program in C++. I guess there will be a somewhat steep learning curve coming back to C++11, and I need to take some of that on my free time and it?s going to be rough as well (at some point I remember swearing I?ll never go back :-) But I guess, if I decide to do it, it?s because I feel it might be the right thing to do at this point in preparation for the future. So what do you all think? All comments are welcome! Yes and on a side note, anybody know a good C++11 book?
Question
henriko
I have been programming C# for the last 6-7 years or so (yes so I?m one of the ?coffee based? coders as well), before that mostly C++. At the moment I'm at a crossroad, undecided if I should switch back to C++11. Why you say? At this point mainly because I need performance, but on a grander scale because my gut feeling has started to worry me that there might be some changes coming and that C++ could be the right choice for the future?
Let me pull back a little. At the moment I'm about to start on a pretty large project, and since the project will be ridden with heavy math calculations, and I know performance will be very important, I was a little hesitant just to jump out and start implementing in C# (as I normally do). To be honest I want to choose C#, but I'm afraid it's not the correct choice do to performance issues. C# and the.NET library is beautiful and a joy to work with, and there are countless of projects where customers have been stunned of how fast I was able to produce results. This was on the other hand almost never the case with C++. But this performance thingy is nagging me big time, I?m really afraid to choose the wrong environment and discover down the path that this was a failure. So I first started out on a googling mission to find performance comparisons, tech articles, blog posts about C++ and C# performance.
During this time there was also a lot of developer anxiety due to Microsoft?s poor public relation management prior to Windows 8 pre-release and the Build conference. You have probably read most of it yourselves. In general the feeling is that Microsoft is discontinuing (read: scrapping) Silverlight and XNA, and honestly the future of .NET as a first class citizen on WinRT is also questionable. Here are just two small articles exemplifying what I?m talking about:
http://www.guardian....oft-programming
http://channel9.msdn...all-of-a-sudden
But maybe more importantly, I watched some videos with Herb Sutter from Microsoft, where he talks about why he considers C++ being the right choice for the future. For instance he talks about the Microsoft Longhorn project and Microsoft?s efforts to make managed languages a core part of Windows, and how that failed. He also talks about how they now feel the new era is towards native development with the now ?new and shiny? C++11. Take a look at the video, it?s quite interesting:
http://channel9.msdn...rb-Sutter-Why-C
Also you could supplement with this article giving a historical background explanation of Microsoft?s path towards WinRT:
http://arstechnica.c...n-dream-reborn/
And finally this video where Herb talks about how he feels C++ is now closer to C# and the managed languages, and nothing like the old C++ from back in the days:
http://channel9.msdn...our-Father-s-C-
So, what do you guys think? I would love to hear comments on the videos and what do you guys consider for the future. Should we start the journey from C# and managed and venture over to this new shiny toy C++11? Is it the right choice? Will Microsoft silently and slowly stop focusing on managed development, stop improving the CLR performance, and focus more on native development?
On the other hand, my C++ skills are fairly rusty since it's almost 10 years since I programmed any big projects in it, and it's not entirely trivial to write a high performance program in C++. I guess there will be a somewhat steep learning curve coming back to C++11, and I need to take some of that on my free time and it?s going to be rough as well (at some point I remember swearing I?ll never go back :-) But I guess, if I decide to do it, it?s because I feel it might be the right thing to do at this point in preparation for the future. So what do you all think? All comments are welcome! Yes and on a side note, anybody know a good C++11 book?
Link to comment
Share on other sites
26 answers to this question
Recommended Posts