==============
== Samswara ==
==============
Pursuing Agency

What Language

What programming language should my company use?

This feels like a silly question in some ways - I’m sure there’s a Paul Graham essay on how what language you choose doesn’t matter.

I don’t buy it though. The right language and framework -

  • Makes work fun and enjoyable - functional programming is almost like playing a videogame
  • Helps you hire talented engineers - hiring pool for Java is going to be very different than Rust
  • Helps you ship faster - I can write complex streaming applications in Akka Streams or ZIO incredibly quickly

So what language do I use? I want something strongly typed, and ideally functional. There’s a couple contenders:

Scala

I would likely use Scala with ZIO. Pros:

  • I know it well
  • Incredibly productive
  • Strong ecosystem and frameworks

Cons:

  • Build tooling is insufferably bad
  • Slowly dying
  • Steep learning curve for others

Typescript

Pros:

  • Strong typing
  • Unified codebase with frontend

Cons:

  • Node/Deno runtimes suck

Rust

Pros:

  • Strong typing
  • Fast as all hell
  • Great tooling
  • Strong ecosystem

Cons:

  • Not functional
  • Possibly too low level - concerned that it won’t be as productive as Scala
  • I don’t know it well yet

Roc

Pros:

  • Functional
  • Strongly Typed
  • No GC

Cons:

  • Super early language, too early to use in production
  • There will be compiler bugs

Summary

Here’s the heuristic we’re going to use:

  • Scala with ZIO - Cloud software, helps you iterate quickly.
  • Rust - embedded code, anything that needs to be fast.
  • Typescript - any web UI obviously (Unsure if I’ll use React or something like Svelte/Bun)
  • Roc - Won’t use, but will keep an eye out.

So in terms of my day job - I’ll continue learning Rust and building applications in Rust, as it will pad out those skills and allow me to use that easily on side projects as I get ready to leave.