Relive: 50 years of C, the good, the bad and the ugly

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

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

    Cranelift based backend for rustc

  • Honest question: what would the engineering rationale be behind dropping LLVM entirely and have rustc have its own code generation backend? There are two out there that might be interesting, obe uses gcc and another is called cranelift[1], but it isn't the default and focuses exclusively on compilation speed for debug binaries.

    [1] https://github.com/bjorn3/rustc_codegen_cranelift

  • zig

    General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

  • No, I'd count Zig as having more of an "open ended" type system / philosophy.

    Though, it looks like Zig doesn't do function overloading either [1]. That's a disappointment. So you end up with `array_count`, `map_count`, etc instead of just `count`. In my way of thinking that's more work reduces readability. It's one of the paint points of C vs C++ to need `array_list_count` and `hash_map_add` instead of just saying `vec.insert(...)`.

    The biggest ones for me in Rust is that it disallows extending traits for types you don't own, and the lack of function overloading. Neither of those are required for the borrow checker or safety, but it's a philosophical design decision.

    1: https://github.com/ziglang/zig/issues/1251

  • 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
  • embassy

    Modern embedded framework, using Rust and async.

  • Being able to await interrupts and doing efficient cooperative scheduling while writing straight forward code is a massive QoL improvement which is what embassy is enabling: https://embassy.dev/

  • Nim

    Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).

  • dmd

    dmd D Programming Language compiler

  • v-mode

    🌻 An Emacs major mode for the V programming language.

  • or Vlang (https://vlang.io/), which can compile to C, and has a C2V transpiler.

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