Thriving in a Crowded and Changing World: C++ 2006–2020 [pdf]

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • Scout APM - Less time debugging, more time building
  • SaaSHub - Software Alternatives and Reviews
  • C++ REST SDK

    The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.

    >But is it truly practical to use in 'higher-abstraction' apps like web or mobile?

    Yes absolutely. Once you become familiar with the language the barrier is not that high. Familiarity trumps everything else.

    That said, since i am not a Web/mobile developer i had collected some resources to help me learn how to use C++ for Web/Mobile apps, you may find it useful;

    https://levelup.gitconnected.com/cross-platform-mobile-and-w...

    https://github.com/Microsoft/cpprestsdk

    https://medium.com/@ivan.mejia/modern-c-micro-service-implem...

  • conan-center-index

    Recipes for the ConanCenter repository

    To pick on the sibiling comment, these are the C++ versions of crates.io.

    https://vcpkg.io/en/packages.html

    https://conan.io/center/

    Plus they can also host binary packages, so you don't have to build the world, just your own stuff.

    For some of us that matters.

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • glbinding

    A C++ binding for the OpenGL API, generated using the gl.xml specification.

    I have based my career on top of C++/backend/soft-real time systems.

    I still have to read the full paper, thanks for the post!

    Many people rant about C++, but, IMHO, overall, taking into account ecosystem, tools, etc. C++ stands as an almost unbeatable technology when you put everything together. It has quirks, asymmetries and all of that.

    But since C++11 it is nicer to use and all the standards after it have been improving on it: generic lambdas, structured bindings, string non-template parameters, constexpr and consteval... it is amazing what you can do with C++ that is difficult or almost impossible to do with other languages.

    On the missing pieces I would mention that you need to use macros to have some kind of reflection for members and pattern matching and networking would be really nice to have.

    Modules are still an experiment implementation-wise, but hey, they will improve on the side of hiding implementation details by a big margin.

    As for the ecosystem, nowadays you have CMake (whose language sucks badly) and Meson. Together with Conan things have improved a lot since I started coding in around 2001.

    Pack that with an IDE like CLion or Visual Studio + Resharper or lightweight IDE (Emacs + Lsp and the like) and you have an environment that is very competitive and whose code can be compiled almost anywhere. From ARM to x86, MIPS and even Webassembly.

    That is why I think C++ is still the way to go if what you want is performance: you also have interfaces such as OpenCL/GL/Vulkan/SIMD libraries (though not C++ standard) where you can access hardware. Also, vendors and open source have things such as https://github.com/cginternals/glbinding

  • Vulkan

    Examples and demos for the Vulkan C++ API (by jherico)

    or https://github.com/KhronosGroup/Vulkan-Hpp which help quite a bit. Or https://github.com/VcDevel/std-simd.

    If you want GUIs, same, you have at least (but not only) Qt or WxWidgets.

    Want to interface scripting? Pybind11, Boost.Python, WrenBind17 for Wren, Sol2 for Lua... and all things that interface to C work also if you feel brave...

    I really think that when it is about getting the job done... C++ goes a long way towards the task.

    This is my 20 year experience of C++, almost 13 of those years professionally. Now, back to read the paper. :)

  • std-simd

    std::experimental::simd for GCC [ISO/IEC TS 19570:2018]

    or https://github.com/KhronosGroup/Vulkan-Hpp which help quite a bit. Or https://github.com/VcDevel/std-simd.

    If you want GUIs, same, you have at least (but not only) Qt or WxWidgets.

    Want to interface scripting? Pybind11, Boost.Python, WrenBind17 for Wren, Sol2 for Lua... and all things that interface to C work also if you feel brave...

    I really think that when it is about getting the job done... C++ goes a long way towards the task.

    This is my 20 year experience of C++, almost 13 of those years professionally. Now, back to read the paper. :)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts