Our great sponsors
-
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.
-
pekko
Build highly concurrent, distributed, and resilient message-driven applications using Java/Scala
-
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.
-
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.
-
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
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.
- 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.
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:
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:
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:
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...
Another alternative to Go is V. Differences between Go and V:
Syntax
https://github.com/vlang/v/wiki/V-for-Go-developers
Features