I love to read stuff like this, &quot;with a bit of effort I was able to build the whole back-end for my startup using C++&quot;, then I start to think: what would it take for me to migrate off Golang to C++?<p>I love to develop in Mac and deploy in Linux&#x2F;Docker, so whatever stack I pick has to be compatible with both OS&#x27;s, with this in mind I made a list of libraries I&#x27;d need to move my API to C++:<p>* Web Server library<p>* Web Framework-ish library<p>* JSON library for REST interface<p>* Database client library for my database<p>* Integration testing<p>After reading these useful blog posts I guess I&#x27;ll pick:<p>* Web Server =&gt; Facebook&#x27;s Proxygen<p>* Web Framework-ish library =&gt; Facebook&#x27;s Wangle, but it doesn&#x27;t seem to work in Mac, that&#x27;s already a problem, I don&#x27;t like having to have two dev environments.<p>* JSON library =&gt; looks like Facebook&#x27;s Folly seems to have something for it, let&#x27;s hope it uses modern c++ constructs and not some obscure templating magic to make it faster than other implementations.<p>* Database client library for RethinkDB: RethinkDB has no official driver and the only community driver public repository has only 22 starts and no CI setup on Github, I&#x27;m reluctant to trust this code, this is already a deal breaker to me.<p>* Integration testing =&gt; Wangle&#x27;s documentation is scarce, there wiki is empty and the repo doesn&#x27;t have a single code sample to take a look at. I can&#x27;t go to production without testing, another deal breaker.<p>Yes, I agree, I don&#x27;t have to pick RethinkDB. MySQL and PostgreSQL c++ drivers are very mature to use in production apps.<p>Of course they are, but:<p>* Do these drivers use modern C++ constructs?<p>* Would these drivers block proxygen&#x2F;wangle IO loop(in case they have one?)<p>* Would I have to use callbacks to make achieve full IO speed? I hate callbacks, there is a reason I abandoned Node.js a long ago.<p>* How do I put all these dependencies together?<p>As with Golang, as much as I hate it&#x27;s lack of generics and proper inheritance:<p>* Web server: Standard library `net&#x2F;http`<p>* Web framework-ish: I don&#x27;t really need a framework&#x2F;pipeline for it, there are some neat web routers out there that just help me do the job.<p>* JSON library: Standard library `encoding&#x2F;json`<p>* Database client library: gorethink and almost all the Golang database clients out there have significant adoption with over 700 stars on Github.<p>* Integration testing: Standard library `net&#x2F;http&#x2F;httptest`<p>Unlike D, C++ and Rust; the Golang ecosystem is unified, I know I&#x27;m able to pick a client library and it&#x27;d work with whatever stack I have in place because there&#x27;s only one scheduler and therefore only one way to do IO, plus it&#x27;s non-blocking without callbacks. I&#x27;m not a fan of vendoring dependencies, but it simply works.<p>In conclusion, I love C++ and even with all the significant progress made in C++11 and C++14, I&#x27;m still stucked with Go because it just works.