Ask HN: What less-popular systems programming language are you using?

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

InfluxDB high-performance time series database
Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
influxdata.com
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
  1. Oberon

    Oberon parser, code model & browser, compiler and IDE with debugger, and an implementation of the Oberon+ programming language

    My major system programming languages are C and C++, but I did some projects in Oberon (which turned out to be not particularly suited for systems programming), and then created a modified, better suited version of it called Oberon+ (https://github.com/rochus-keller/Oberon), which I e.g. used to create platform-independend versions of different Oberon System generations.

    But Oberon+ is still too high-level for many system programming tasks. So I'm designing a new system programming language called Micron (for Micro Oberon, see https://github.com/micron-language/specification) which has the full power of C without its disadvantages. You can even use it for the OS bootstrapping when there is no stack and no heap, but also for higher-level application development, due to its selectable language levels.

  2. InfluxDB

    InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.

    InfluxDB logo
  3. julia

    The Julia Programming Language

  4. gnoga

    gnoga - The GNU Omnificent GUI for Ada

    There's also Gnoga, which is similar to Electron for writing UI apps: https://github.com/Blady-Com/gnoga

    A bunch of libraries for various drivers or other useful things on https://alire.ada.dev/crates.html

  5. gnat-llvm

    LLVM based GNAT compiler

    (to include something like "ada_gui" in your ada project, you would just use alire, e.g. `alr with ada_gui`).

    Much of Ada's webapp functionality is either interfacing with the Ada Web Server or gnoga (I've written a few servers using Ada Web Server, including one for an ".io" game).

    There's an LLVM compiler which in theory can produce wasm but I've not messed with it: https://github.com/AdaCore/gnat-llvm

    Mobile platforms can be targetted and cross-compiled in Alire, but I'm not sure who's doing it right now.

    For anyone interested, I definitely recommend checking out some of the presentations of Ada's recent FOSDEM dev room https://fosdem.org/2025/schedule/track/ada/

  6. torokernel

    This repository contains the source code of toro unikernel

    https://github.com/torokernel/torokernel

  7. Fabulous

    Declarative UI framework for cross-platform mobile & desktop apps, using MVU and F# functional programming

  8. Avalonia.FuncUI

    Develop cross-plattform GUI Applications using F# and Avalonia!

  9. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  10. mgmt

    Next generation distributed, event-driven, parallel config management!

    Using the `mcl` DSL language in https://github.com/purpleidea/mgmt/

    It's awesome. But I'm biased because I designed it.

    You can't build anything, but you can build many things much more easily. Particularly distributed systems.

  11. hobby

    Treeform's hobby is to create Nim libraries that end with y.

    Anything written by Treeform[1] is a good place to start, their libraries make up a big chunk of Nim ecosystem.

    1 - https://github.com/treeform/hobby

  12. PerlPleBean

    Writing CGI as if we're back in the 1990s!

    I like perl mostly because it's poetic (the code is super nice to read, with variable types standing out thanks to sigils), but it's also very fast and light

    Instead of cross-compiling, I like how actually portable executables make it multiplatform: I wanted to write a webserver processing CGI to learn more about the "old school web", so I wrote https://github.com/csdvrx/PerlPleBean : the simplicity of just downloading and running the .com on anything is nice

    I'm now trying to do the same in Python3, but it's not as fun - and I'm not yet to the part where I will try to safely run python code within the python webserver: ast.parse(), ast.walk(), eval(compile()) ...

  13. terminus

    Terminal interaction for Scala (by creativescala)

    I've been writing some Scala Native recently. See https://github.com/creativescala/terminus/. It's a high-level language but you can still reach down and grub about in memory if necessary. I'm having fun.

  14. smaws

    OCaml bindings for AWS APIs, built on eio

    OCaml

    The compiler is very fast, even over large codebases.

    Mostly trying to bring AWS tooling to the platform[1], or experimenting with cross-compilation[2] using another less well known systems language, zig.

    [1] https://github.com/chris-armstrong/smaws/

  15. opam-cross-lambda

  16. FrameworkBenchmarks

    Source for the TechEmpower Framework Benchmarks project

    It's a heavily gamed benchmark, but TechEmpower Fortunes is pretty good at revealing the max throughput of a language runtime for "specially tuned" code (instead of idiomatic code).

    Java currently beats .NET by about 40%: https://www.techempower.com/benchmarks/#hw=ph&test=fortune&s...

    I judge more idiomatic / typical code complexity by the length of stack traces in production web app crashes. Enterprise Java apps can produce monstrous traces that are tens of pages long.

    To be fair, ASP.NET Core 9 is a bit worse on that front than ASP.NET Web Forms used to be because of the increased flexibility and async capability, but it's still nowhere near as bad as a typical Java app.

    In terms of code length / abstraction nonsense overhead, have a look at the new Minimal APIs for how lightweight code can get in modern C# web apps: https://learn.microsoft.com/en-us/aspnet/core/fundamentals/m...

  17. OberonSystem3

    A cross-platform version of the ETH Oberon System 3 compatible with the Oberon+ compiler and IDE

  18. specification

    The Micron Programming Language Specification (by micron-language)

    My major system programming languages are C and C++, but I did some projects in Oberon (which turned out to be not particularly suited for systems programming), and then created a modified, better suited version of it called Oberon+ (https://github.com/rochus-keller/Oberon), which I e.g. used to create platform-independend versions of different Oberon System generations.

    But Oberon+ is still too high-level for many system programming tasks. So I'm designing a new system programming language called Micron (for Micro Oberon, see https://github.com/micron-language/specification) which has the full power of C without its disadvantages. You can even use it for the OS bootstrapping when there is no stack and no heap, but also for higher-level application development, due to its selectable language levels.

  19. copilot

    A stream-based runtime-verification framework for generating hard real-time C code. (by Copilot-Language)

  20. MicroHs

    Haskell implemented with combinators

  21. awsm

    OCaml AWS Client (by solvuu)

    Re: AWS tooling, have you seen https://github.com/solvuu/awsm ?

    It generates code for all 300+ AWS services and produces both Async and Lwt forms. Should be fairly extensible to Eio.

    I worked on this. Let me know if you want to tag team.

  22. MicroPython

    MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems

    I'll link to it because many people don't know a version of Python runs on microcontrollers:

    https://micropython.org/

  23. eli

    Embedded Lisp Interpreter

    There it is again, the urge to port my Lisp back to C again.

    https://github.com/codr7/eli

    What I love most about C is the fact that it doesn't talk down to me no matter what crazy ideas I come up with. It's therapeutic for me, reminds me of why I started writing code in the first place.

    I realize that's also what many hate about it, the fact that it gives other people freedoms they would never trust themselves with.

  24. rc

    rc shell -- independent re-implementation for Unix of the Plan 9 shell (from circa 1992)

  25. eli-java

    Embedded Lisp Interpreter in Java

  26. sharpl

    a custom Lisp

    And I can recommend listening to @neonsunset when it comes to C# performance :)

    Helped me a bunch to get Sharpl spinning, much appreciated.

    https://github.com/codr7/sharpl

  27. weave

    A state-of-the-art multithreading runtime: message-passing based, fast, scalable, ultra-low overhead (by mratsim)

    Definitely agree that there are rough edges, but Nim is in a better state than ever. The LSP isn't great yet, I'll agree with that. There are great optional type libraries for working around exceptions if you don't want them, and the new memory management system (ARC/ORC) is very efficient compared to the old refc implementation (now much more like the C++/Rust approach).

    For parallel programming, there are also handy libraries. The best of which is Weave[1], but Malebolgia[2] is authored by the creator of Nim and works well in its own way too.

    There is also active work being done on a new implementation of Nim which intends to clean up the some of the long-term spaghetti that the current implementation has turned into (like most long-term projects do), called Nimony[3], and is also led by the original creator of Nim. It is years away from production according to him, but is at least in the works.

    I'd have to say Nim is by far my favorite programming language. The terseness, flexibility, and high performance, make it feel almost sci-fi to me. My only major complaint currently is the tooling, but even the tooling is still adequate. I'm glad it exists. Highly recommend.

    - [1] https://github.com/mratsim/weave

  28. malebolgia

    Malebolgia creates new spawns. Structured concurrency. Thread pools and related APIs.

  29. nimony

    Nimony is a new Nim implementation that is in heavy development.

  30. indent-rainbow

    > They call it like that, but it depends on the programmer as always.

    There are different styles, but in general they are concise, and I like them.

    perl use various sigils to remain concise, while other languages take a lot of room on the screen: too many letters in the usual function names, not enough sigils within the language.

    It's like if everything was in binary or hex, instead of using the full range of ASCII: while technically possible, it may be harder to fit into your head

    Python has one sub-style I dislike the most: using tabs for indentation, because how much EXTRA room they use on the screen.

    It must not just be me, as there are solutions for coloring the spaces (I forked https://github.com/csdvrx/indent-rainbow to focus on black-and-white and using spaces instead of tabs)

    I use space to limit the issue, but I can't make python less verbose.

    > it gives you all the tools to shoot yourself in the foot and take away the leg with it.

    python isn't innocent either: I recently traced a issue where exit(0) wasn't working to a threading problem, making a bad use of atexit.

  31. reason

    Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems

    > The syntax is also not very friendly IMO.

    Very true. There's an alternate syntax for OCaml called "ReasonML" that looks much more, uh, reasonable: https://reasonml.github.io/

  32. nasm

    A cross-platform x86 assembler with an Intel-like syntax

    MASM was always horrible.

    nasm has been lovely, but I haven't used in 10+ years. https://github.com/netwide-assembler/nasm

  33. Rust-Bindgen-Example

    A Simple example to use Rust Bindgen

    You only hand-write function bindings in simple or well-constrained cases.

    In general, the expectation is that you will use bindgen [0].

    It's a very easy process:

    1. Create a `build.rs` file in your Rust project, which defines pre-build actions. Use it to call bindgen on whatever headers you want to import, and optionally to define library linkage. This file is very simple and mainly boilerplate. [1]

    2. Import your bindgen-generated header as a module and... just use it. [2]

    You can also skip step 1: bindgen is also a CLI tool, so if your C target is stable, you can just run bindgen once to generate the Rust interface module and move that right into your crate.

    [0]: https://rust-lang.github.io/rust-bindgen/

    [1]: https://rust-lang.github.io/rust-bindgen/tutorial-3.html

    [2]: https://github.com/Charles-Schleich/Rust-Bindgen-Example/blo...

  34. rust-bindgen

    Automatically generates Rust FFI bindings to C (and some C++) libraries.

    You only hand-write function bindings in simple or well-constrained cases.

    In general, the expectation is that you will use bindgen [0].

    It's a very easy process:

    1. Create a `build.rs` file in your Rust project, which defines pre-build actions. Use it to call bindgen on whatever headers you want to import, and optionally to define library linkage. This file is very simple and mainly boilerplate. [1]

    2. Import your bindgen-generated header as a module and... just use it. [2]

    You can also skip step 1: bindgen is also a CLI tool, so if your C target is stable, you can just run bindgen once to generate the Rust interface module and move that right into your crate.

    [0]: https://rust-lang.github.io/rust-bindgen/

    [1]: https://rust-lang.github.io/rust-bindgen/tutorial-3.html

    [2]: https://github.com/Charles-Schleich/Rust-Bindgen-Example/blo...

  35. book

    V2 of Real World OCaml (by realworldocaml)

    I've read some part of the book Real World OCaml, by Yaron Minsky and Anil Madhavapeddy.

    https://dev.realworldocaml.org/

    I also saw this book OCaml from the Very Beginning by John Whitington.

    https://ocaml-book.com/

    I have not read that one yet. But I know about the author, from having come across his PDF tools written in OCaml, called OCamlPDF, earlier.

  36. vyatta-dataplane

  37. sgcl

    Smart Garbage Collection Library for C++

  38. jank

    The native Clojure dialect hosted on LLVM with seamless C++ interop.

    Lately I've been using: https://janet-lang.org/ It's not a systems programming language, but it can be embedded in C.

    https://jank-lang.org/ looks interesting to me --I have not tried it yet. I'm not sure if this language could qualify as a systems programming language. What do you think?

  39. janet

    A dynamic language and bytecode vm

    Lately I've been using: https://janet-lang.org/ It's not a systems programming language, but it can be embedded in C.

    https://jank-lang.org/ looks interesting to me --I have not tried it yet. I'm not sure if this language could qualify as a systems programming language. What do you think?

  40. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
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