Announcing the Hare programming language

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

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

  • Tagged unions of free-floating types (polymorphic variants, C++ std::variant) and enum holding cases namespaced within themselves (Rust/Haskell) are two alternative designs. I personally prefer having both in a language. But if only one is available in a language, I prefer free-floating types, since it's more flexible and allows using the same type in multiple tagged unions, and you can somewhat emulate enums using tagged unions and namespaces (like I've done in C++ at https://gitlab.com/exotracker/exotracker-cpp/-/blob/eb8458b2...). If you take that approach, to prevent collapsing in the generic case when two type parameters are the same, you'd have to define newtypes for each type stored in a union.

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

    Empowering everyone to build reliable and efficient software.

  • There is nothing wrong with being a bad developer, we are all bad developers if we don't understand what we are doing

    We have the tools to eliminate memory bugs already

    Forcing people to use a language with a buitin sanitizer/babysitter that runs everytime you compile your code and as a result makes you wait 10+ minutes between each line of change is dumb

    Expecting your code to be bug free because the code written by someone else told you so is also dumb

    https://github.com/rust-lang/rust/issues/38899

    who to trust in that case?

    --

    educate and trust developers, use tools to audit your code when needed

  • order-pp

    order-pp preprocessor library (standalone part of chaos-pp)

  • CSP

    Compile-time LISP interpreter on C macro preprocessor

  • Vale

    Compiler for the Vale programming language - http://vale.dev/ (by ValeLang)

  • > while Rust does bring significant advances in this field, it's a very large and complicated language.

    The gist of Rust on this fairly easy, is the heritage/chasing of C++ that makes Rust complicated.

    A "Rust simple like pascal/c" have potential and I bet 1 billon the borrow checker will not make it hard to use (check https://vale.dev)

  • zig_comptime_lisp

  • If it's at compilation time, you have the full zig language so you certainly could implement your very own functional programming language https://github.com/igmanthony/zig_comptime_lisp in regular zig rather in an external preprocessor.

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

    Pony library for building HTTP server applications.

  • I use pony https://ponylang.io/ as a language - it's an Actor based language with GC where every actor has its own memory and is responsible for its own GC.

    The main feature is its ability to safely share or move data around between actors in a way that is data-race and deadlock free. Pony doesn't use locks anyways :-)

    A high level as to how it achieves this:

  • hare-color

    Color package for Hare (harelang.org)

  • A big part of any new language taking off is a rich ecosystem. If you're looking for a lib to color your terminal output, consider mine? [0]

    0. https://github.com/tristanisham/color

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