Tech Stack: Difference between revisions

From Wiki
(Fix typos. Add a few more.)
(Updated for August 2022. Learnt Golang but not going to add.)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page documents my choice of tech stack to build various kinds of applications.  
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 would change from time to time. Perhaps, a tech radar is a better format for this, but it might be overkill to just document my preferences.
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.
{| class="wikitable"
 
|+December 2021
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.
 
{| class="wikitable sortable"
|+August 2022 (last updated)
!Purpose
!Purpose
!Tech Stack / Tool
!Tech Stack / Tool
!Comments
|-
|-
|Web applications
|Web applications
|Elixir on Phoenix
|Elixir on Phoenix
|barely used. Only makes sense if building multi-node actor systems
|-
|-
|Scripting language
|Scripting language
|Babashka (Clojure)
|Babashka (Clojure-like)
|in heavy use for simple scripts used everyday
|-
|-
|Number crunching
|Number crunching
|Nim language
|Nim language
|didn't really use for compute intensive tasks yet
|-
|-
|Desktop applications
|Desktop applications
|JetBrains Compose
|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
|Cron jobs
|systemd timers
|systemd timers
|using on servers mostly
|-
|-
|Editor/IDE
|Editor/IDE
|Doom Emacs
|Doom Emacs
|in heavy use as a daily driver
|-
|-
|Operating System
|Operating System
|Debian
|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.
|}
|}
[[ Category:SoftwareDevelopment ]]

Latest revision as of 06:49, 16 August 2022

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.