Stop Building on Corporate-Controlled Languages

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

    Odin Programming Language

  • Vale

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

  • I created the open-source language Vale [0] and this hits home for me. This is one of the bigger reasons I left my job at Google.

    I created Vale just before coming to Google, almost a decade ago. For _years_ I repeatedly wondered whether I should hand it over to Google via go/opensourcing. It would mean I could work on it for 20% time, and maybe eventually full-time, which would have been my dream.

    Every time, I came to the same decision: Google cannot be trusted with open source projects. Three reasons:

    1. If at any point they thought that Vale competed with Golang, they would shut it down. It doesn't matter that they're different; if any person in the chain of command even had the _perception_ that it did, Vale would die.

    2. If at any point they wanted the headcount for other things, they would shut it down. This happened to my first team (MyMaps) and second team (Earth) and hundreds of other teams across Google. Directors and VPs love to graciously collect existing projects just for their headcount.

    3. I wouldn't be able to refuse if they told me to add tracking, analytics, or other lock-in mechanisms.

    I knew that if I wanted Vale to have a solid future, I had to keep it as a personal project, and only work on it off-hours.

    Eventually, after a lot of soul searching and burnout, I realized I couldn't do both. The world didn't need another person working on corporate chat systems, but the world does need a high-performance language that's easy to learn and focuses on developer productivity. I left Google a little over a year ago.

    It was one of the best decisions I've ever made (though perhaps not financially, losing that FAANG salary hurts). And once we get to a certain level of donations, I'm planning to make a 501(c)(3) non-profit corporation for Vale. I even went to Portland to have a chat with Andrew Kelley (of Zig) about the burdens of running a foundation like that, and it seems pretty feasible, especially once the language gets to a certain level of resources and stability.

    [0]: https://github.com/ValeLang/Vale

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

    Library packaging and distribution for Ruby.

  • crates.io

    The Rust package registry

  • pekko

    Build highly concurrent, distributed, and resilient message-driven applications using Java/Scala

  • - In 2022, Lightbend changed the Akka licence, made it proprietary and very expensive at large scale

    Software that starts out as more "pure", non-corporate open-source can still turn the tables on you and charge large licensing fees later. But at least if it's open source from the start, it can be forked, e.g. for Akka, there's this Apache fork that was started after Akka changed its licence: https://github.com/apache/incubator-pekko . This is the key open source protection, and it's true for both corporate and non-corporate projects.

  • nim-stew

    stew is collection of utilities, std library extensions and budding libraries that are frequently used at Status, but are too small to deserve their own git repository.

  • If exceptions aren’t your cup of tea, look into using stew/results and questionable instead:

    https://github.com/status-im/nim-stew/blob/master/stew/resul...

    https://github.com/status-im/questionable#readme

    Re: std/db_sqlite, your probably better off using sqlite3_abi:

    https://github.com/arnetheduck/nim-sqlite3-abi#readme

  • questionable

    Elegant optional types for Nim

  • If exceptions aren’t your cup of tea, look into using stew/results and questionable instead:

    https://github.com/status-im/nim-stew/blob/master/stew/resul...

    https://github.com/status-im/questionable#readme

    Re: std/db_sqlite, your probably better off using sqlite3_abi:

    https://github.com/arnetheduck/nim-sqlite3-abi#readme

  • 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
  • nim-sqlite3-abi

    SQLite3 wrapper

  • If exceptions aren’t your cup of tea, look into using stew/results and questionable instead:

    https://github.com/status-im/nim-stew/blob/master/stew/resul...

    https://github.com/status-im/questionable#readme

    Re: std/db_sqlite, your probably better off using sqlite3_abi:

    https://github.com/arnetheduck/nim-sqlite3-abi#readme

  • racket

    The Racket repository

  • I've had very good luck with Racket ( https://racket-lang.org/ ), in that regard. It's a Lisp which is geared towards the implementation of languages and their interoperation. There's even a strongly typed Haskell-like language - Turnstyle - implemented in it as part of ( https://www.ccs.neu.edu/home/stchang/popl2017/ - the paper: https://www.ccs.neu.edu/home/stchang/pubs/ckg-popl2017.pdf ) and the even more powerful ( http://lambda-the-ultimate.org/node/5587 ( the paper: https://www.ccs.neu.edu/home/stchang/pubs/cbtb-popl2020.pdf ) ) Turnstyle+ which implements dependent types on top of that language as well. Which is just plain cool...

  • v

    Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io

  • Another alternative to Go is V. Differences between Go and V:

    Syntax

    https://github.com/vlang/v/wiki/V-for-Go-developers

    Features

    https://vlang.io/compare#go

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