Dennis Dang

May 24, 2021

Interesting software tech of the weekend

A list of interesting technologies, frameworks, languages I come upon over the weekend
Frameworks backed by a business appeal to me because it means that the open source project may have a chance to live long and healthily and have the money to innovate. If you are looking for a full go framework, this may be a good choice. Besides the typical requirements for a web framework: auth, error handling, http handlers, encore also provides productive required features like migrations, doc generation, testing, deployments. Seriously, never going to use a framework that doesn’t support RDMS well.

Crystal, a programming language
I’m usually only interested in trying new FP languages, because most modern OOP languages lack fp features like pattern matching, strong type inference, and relatively hard to use concurrency or no concurrency (and algebraic data types). But Crystal just hit 1.0 for good reasons. 
It has:
  • the standard library expected of modern languages, gold standard being Go. 
  • channels like Go
  • exhaustive pattern matching
  • testing framework built in
  • full cli and package manager
  • Builds a single executable
  • Looks like Ruby, so you know code is going to read easy
  • Drivers for postgres
  • Decent looking web frameworks, e.g. Lucky and Kemal
It may be worth trying since I’m a fan of Ruby and love the Go and fp inspired features.

Not a recent discovery because I’ve been using Supabase for a few months now. Supabase is my preferred backend to start new projects. It’s like a Firebase for sql. Handles auth, postgres, storage. If I’m building a frontend, I directly connect to Supabase via its API (Postgrest) and even listen for real time changes. If I’m building a monolithic backend, I connect directly to the database. Supabase Durant provide migrations yet but that’s not too bad. Many frameworks themselves provide that, or you just write it yourself. You can layer Prisma on top or just write raw sql for your tables. 

I’m noticing a few big trends: managed sql services, more languages adopting FP features, and web frameworks supported by deployment/cloud solutions.