NSA urges orgs to use memory-safe programming languages - C/C++ on the bench, as NSA puts its trust in Rust, C#, Go, Java, Ruby and Swift

This page summarizes the projects mentioned and recommended in the original post on /r/programming

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • unsafe-python

    A library to assist writing memory-unsafe code in "pure" python, without any imports (i.e. no ctypes etc.)

  • no, Python can be memory unsafe all by itself... https://github.com/DavidBuchanan314/unsafe-python

  • PyO3

    Rust bindings for the Python interpreter

  • You can write ergonomic Python native modules in Rust with pyo3

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • WPF

    WPF is a .NET Core UI framework for building Windows desktop applications.

  • C# is entirely cross-platform; there is nothing in the language that is Windows or VS specific. However, some .NET Framework libraries are not all cross-platform. One pain point in .NET (not Framework) is that WPF applications only run on Windows

  • windows-rs

    Rust for Windows

  • XboxController

    XInput / Raw Input processor for Xbox 360 controller. (by aholmes)

  • Ignore them. The point they haven't articulated is that you sometimes need to use a different language that can use system-level calls directly. C# has the ability to do low-level work, so you don't typically need to do this for things like manipulating and reading memory directly; however, not all languages do (Python is one). A use case for doing this in C# might be writing a driver for a HID (like a game controller), and surfacing functionality to C#. Here's an example: C++ and the associated C#.

  • cppfront

    A personal experimental C++ Syntax 2 -> Syntax 1 compiler

  • All the while, the language is still burdened by the C++ committee's lack of commitment to a reliable way to deprecate old cruft. I like Herb Sutter's way of introducing a new kind of block syntax to outlaw crufty features (cppfront), but can't help but wonder: why did an entire committee of invested experts not come up with this back when they introduced trailing return types? Why can't we mark coroutine blocks with some optional syntax and have proper coroutine-specific keywords within them?

  • sorbet

    A fast, powerful type checker designed for Ruby

  • Rails has something similar called https://sorbet.org/ Haven't used it since I personally like the flexibility. But it exists if you're into it :)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • cppbestpractices

    Collaborative Collection of C++ Best Practices. This online resource is part of Jason Turner's collection of C++ Best Practices resources. See README.md for more information.

  • This goes for C++ as well, there exist a host of off-by-default flags/features that make it a lot easier to make safe code in C++. Jason Turner's cpp best practices is a must read, using the sanitizers is another must, using facilities like g++'s _GLIBCXX_DEBUG and _GLIBCXX_DEBUG_PEDANTIC or MSVC's /GS /RTCs is a must.

  • carbon-lang

    Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)

  • Many have tried. Many.

  • imgui

    Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

  • Personally, https://github.com/ocornut/imgui. It’s not really a framework, it’s an immediate mode gui, so function calls are made to draw windows and stuff. Definitely check out their read me. With a little bit of styling you can make the gui look however you want.

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