Original Post
OK, I haven't really touched c++ for the last few years on anything more serious than a library compile, mostly because I switched over to C# for my projects and my last job wasn't programming.
So the idea I had a few weeks ago was to start a opensource project that would provide a odata interface on top of a NoSQL database MongoDB. The Entity model seems a perfect fit for Document database in functionality.
I chose C++ because MongoDB API for C++ is native (project is written in c++) while C# ones (multiple implementations) weren't very stable last time I tried them and I didn't want to go trough the ASP.NET because FastCGI seemed faster/more portable. Plus I liked the idea of using boost spirit for writing query parsers and using templates, fastcgi and c++ in general would probably grant performance advantages.
So I created a empty project, added a precompiled header included the external libraries (boost spirit/pointer/filesystem/etc., stl, pugixml, mongo api) and OMFG it took forever to compile, I'm too lazy to actually measure, but it's still measured in seconds :), for a empty project, and the precompiled header took even longer to compile. But that's irrelevant compared to the suck of the code completion, and VS kept eating more and more ram, until it outgrew a Firefox 2 process on a bad day. I have AMD5050e (x2) and 2gig of DDR2, so the PC is not really that bad (it's far from the top PC but still compared to the crap certain people are using). VS is 2010 (the "new 6") express. Basically intellisense is so slow it's beyond useless. Then I got reminded of the idiotic C/C++ include system, no modules that is. I never forgot what I had to do but actually doing it after coding in C# for the last few years is painful at least. And the preprocessor crap like include guards - bleeding my eyes ! And don't you just love to predefine your classes all the time... Oh and missing the LINQ all the time shouldn't even be mentioned, boost lambda doesn't even come close in elegance.
So I'm going back to C# and .NET API's for Mongo. I might even reuse .NET oData/CSDL implementation components if I can, I need to look in to it. I'll use Mono to take care of the portability issue.
Anyway this rant has no significant point, other than to share my rude awakening regarding the actual usability of C++ compared to C# and potentially start a flame with someone who hasn't moved on, mostly cause I'm bored :).
More importantly I think it's funny how two years ago I would have swore that the cosmetic stuff in C# isn't worth it, how tools aren't that important, how the template meta programing is superior to reflection and a bunch of other arguments I wouldn't even dream of making right now. Thumbs up for C# and Microsoft !
So the idea I had a few weeks ago was to start a opensource project that would provide a odata interface on top of a NoSQL database MongoDB. The Entity model seems a perfect fit for Document database in functionality.
I chose C++ because MongoDB API for C++ is native (project is written in c++) while C# ones (multiple implementations) weren't very stable last time I tried them and I didn't want to go trough the ASP.NET because FastCGI seemed faster/more portable. Plus I liked the idea of using boost spirit for writing query parsers and using templates, fastcgi and c++ in general would probably grant performance advantages.
So I created a empty project, added a precompiled header included the external libraries (boost spirit/pointer/filesystem/etc., stl, pugixml, mongo api) and OMFG it took forever to compile, I'm too lazy to actually measure, but it's still measured in seconds :), for a empty project, and the precompiled header took even longer to compile. But that's irrelevant compared to the suck of the code completion, and VS kept eating more and more ram, until it outgrew a Firefox 2 process on a bad day. I have AMD5050e (x2) and 2gig of DDR2, so the PC is not really that bad (it's far from the top PC but still compared to the crap certain people are using). VS is 2010 (the "new 6") express. Basically intellisense is so slow it's beyond useless. Then I got reminded of the idiotic C/C++ include system, no modules that is. I never forgot what I had to do but actually doing it after coding in C# for the last few years is painful at least. And the preprocessor crap like include guards - bleeding my eyes ! And don't you just love to predefine your classes all the time... Oh and missing the LINQ all the time shouldn't even be mentioned, boost lambda doesn't even come close in elegance.
So I'm going back to C# and .NET API's for Mongo. I might even reuse .NET oData/CSDL implementation components if I can, I need to look in to it. I'll use Mono to take care of the portability issue.
Anyway this rant has no significant point, other than to share my rude awakening regarding the actual usability of C++ compared to C# and potentially start a flame with someone who hasn't moved on, mostly cause I'm bored :).
More importantly I think it's funny how two years ago I would have swore that the cosmetic stuff in C# isn't worth it, how tools aren't that important, how the template meta programing is superior to reflection and a bunch of other arguments I wouldn't even dream of making right now. Thumbs up for C# and Microsoft !