3 ms·
I'd classify the systems I work on as "cloud"/systems work. So not exactly what you'd call "Web" but close enough to the kind of use cases Google designed Go f
by YZF 10y ago
I'd classify the systems I work on as "cloud"/systems work. So not exactly what you'd call "Web" but close enough to the kind of use cases Google designed Go for, i.e. their infrastructure. We've managed to make C++ more or less fit better through mountains of in-house libraries and code.
I've used C++ with Qt in building embedded applications and my experience was mostly good. Then again Qt had its own types which were incompatible with C++ and a fair bit of work was getting more or less standard C++ mated with Qt. I remember writing a lot of glue code that used Boost.Signals2 ...
On one hand it's true that people who still see C++ as C with classes and don't use things like lambdas, algorithms, smart pointers, STL data structures, are contributing to some hate/misunderstanding of C++. On the other hand, C++ developers who do use the modern features get used to all the quirks and don't understand why others don't see what we see ;) So we just maybe std::move, or inherit from enabled_share_from_this without thinking twice and know the difference between && and & and the new lambda syntax but really, as a developer, most of the time, why should I care? To some extent a camel can't see its own hump.
What you're saying is basically exactly what I would have said 2 years ago before I started using Go more heavily. Now it's mostly C++ because I have to and Go because I want to... Not that Go is perfect but the stuff that it does well it also does easy.
- unscaled 10y agoI get the problem, but I don't think experienced C++ developers should pamper inexperienced (or unwilling to learn) C++ developers by avoiding features that are considered best-practices. Template programming with Boost.MPL? Sure, I regret every time I used that - I've gained little, and very few developers will be patient enough to learn how to maintain this code. But avoiding std::move() and and R-values just because other developers may get confused? By all means, if your developers are unwilling to learn modern C++, use Go - it's easier to learn. I agree that's it particularly well geared for any network IO-heavy server. C++ can give you better performance, but it probably requires 5 times the effort.
- YZF 10y agoI'm not saying to avoid those in C++. I'm just giving that as evidence that writing C++ is more difficult than Go. Sounds like we're in agreement.