As I've written before, a lot of my tools are command-line interfaces and TUIs. I do almost everything using the Linux terminal, which has become a running joke between me and my friends for the past few months. Recently one of my professors asked why I prefer to work this way, and that inspired me to write this post.
Hardware limitations
We had a really bad experience during our first semester: almost none of the available computers had the required software installed.
My solution at the time was to install a virtual machine running a Linux distro. For some reason they remembered to install Oracle VirtualBox but not NodeJS. For the NodeJS class.
Unfortunately virtual machines tend to have poor performance. My lab computer could barely open a browser window without lagging. But you know what uses barely any resources to run? A terminal!
Less is more
I remember seeing some of my favorite programmers edit their code during lectures by using a terminal-based editor called neovim, and I wanted to give it a try. To this day it is still my number one choice for code editing.
I've also noticed that I'm the only student in my class that does things that way. If I remember correctly, they all use a dedicated IDE like VS Code or a specialized Jetbrains product. Those are really good, but I always get the feeling that I wouldn't use nearly half of what they have to offer. CLI tools have just what I need and nothing more.
Here's how my workflow usually goes:
# Starting a new project
gleam new app && cd app
# Editing source code and container recipe
nvim src/app.gleam Containerfile
# Committing to source control
jj commit -m ":tada: started project"
# Building application container
podman build -t my-application .But it's not just about performance. Having only one way to do things means predictability, which is really important to me as a neurodivergent person.
Consistency, Comfort and Dark Mode
Recently I finally got my autism and adhd diagnosis! yipee š
It doesn't surprise me that I tend to do most things a bit differently from people around me, that's something that I've been struggling with for years. I always do things I enjoy, in a way that makes sense to my brain.
I like having all my tools accessible in one place. My next software is always just a few commands away. This level of consistency helps me focus on solving problems instead of trying to understand what each button or tab does.
While learning about databases, our professors taught us how to use MySQL. Not just the TCP server running in the background, but the whole chunky GUI application with no support for dark mode.
I'm a morning student. Im still sleepy when I arrive at the class. Please let my eyes rest for a bit, they already don't work that well.