Tech Stack

From Wiki
Revision as of 06:49, 16 August 2022 by Joseph (talk | contribs) (Updated for August 2022. Learnt Golang but not going to add.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This page documents my choice of tech stack to build various kinds of applications. Only things relevant to me are documented. This doesn't cover the list of all the technologies I can use or have used. There are some languages, frameworks and tools that I don't want to use anymore.

Of course, the choice will change from time to time. Perhaps, a tech radar is a better format for this, but it might be overkill just to document my preferences.

Ignoring environments where there's not much of a choice of programming language, like web browsers and mobile operating systems.

  • I see no point listing HTML, CSS, SQL, JavaScript, Kotlin and Swift.
  • It's worth mentioning that I prefer Kotlin over Java and Swift over Objective C.
  • I have no intention of learning TypeScript.
  • I don't usually go low-level enough to use Rust. Nim compiled to C is adequate for my performance needs.
August 2022 (last updated)
Purpose Tech Stack / Tool Comments
Web applications Elixir on Phoenix barely used. Only makes sense if building multi-node actor systems
Scripting language Babashka (Clojure-like) in heavy use for simple scripts used everyday
Number crunching Nim language didn't really use for compute intensive tasks yet
Desktop applications JetBrains Compose didn't even try yet
Simple web server Python FastAPI just for the asyncIO. Make sure to use it with an ASGI server.
Database SQLite try using it as much as possible, PostgreSQL otherwise
Cron jobs systemd timers using on servers mostly
Editor/IDE Doom Emacs in heavy use as a daily driver
Operating System Debian in heavy use for servers
Source forge GitLab mostly for the built-in CI/CD system. See Free Software/Hosting
VCS (bazaar) git
VCS (cathedral) fossil
Shell nushell I don't see the need for a terminal multiplexer anymore.