Sotolf's thoughts and oddities

Simplicity

The journey towards simplicity

It’s kind of weird, but simplicity is something that I have started to enjoy more and more in my life as I have grown older. The younger me loved reveling in complex stuff and there is something about it that feels kind of exhilerating, that moment when something clicks and you understand something complex it feels really good, my brain gets that nice little rush of endorphins and tells me I’m a good boy.

What I usually did was then to just leave it at that, it’s nice, I have understood this complex fun thing, on to the next. But is that really all there is to it? The thing is, understanding something complex, isn’t that hard, it takes a bit of time, but it’s not something that has value in itself.

As I started playing with programming languages and programming itself, it’s something that started forming in my thoughts, while programming, even in pretty high level languages, one has to break down complex things into smaller descrete steps, and stack them on top of eachother to build up the complexity from simpler steps. And I found that this was something that was even more rewarding than just understanding the complexity.

My programming journey slowly started unfolding, and I found that I enjoyed languages that builds on more basic blocks more, maybe just because I had to unfold and break things apart even more to it’s even more simple parts that I could really understand, and feel that I had a more full understanding of the thing.

The funny thing is that as I came to the conclusion that I could break complex things into simple things, I started to really admire simple things. Sure there is something fun with complex multi layered stuff, but there is something elegant about simple things that would let you do things without the complexity.

Simplicity in my tools

Window-managers are cool, and fun to play around with, they basically are the thing that steers our interaction with the computer, and when I started out playing with them it was something that I just added onto my system as an additional tool. I started playing with window managers, and using them to interact with the tools that I knew from my gnome2 setup.

As time came to change from my old machine to a newer one I took some time and looked through which tools I really was using from the huge set I used to have, and looked for alternatives I started setting up tools that still did the things I wanted, but wasn’t really set up to be a part of a big complex whole, and I set the whole thing up so that I had simpler tools doing each task.

Now what I have running is probably too simple for many, something they wouldn’t really have any fun using, I use BSPWM, a very simple window manager that doesn’t even have traditional configuration, you start it up, and send it commands to configure things after it started. It also doesn’t do anything else than managing windows in response to commands it’s sent. So you use an external program like sxhkd that listens for hotkeys, and fire out a command when a hotkey combination is sent.

There are some other things that I used to really enjoy that I have been finding is a bit too much for me, I used to have a compositor running, so that I could have those fun transparent terminals, but they don’t really do anything else than make things look fancy, and kind of make the information harder to read. So I dropped that. Another thing that just always was a part of every system I had was a status bar always on screen, but I found that it was just there because it was something that always was there, I never really used it. So I removed that as well, or since I was using bspwm, I removed the stuff I’d added to it to make it possible.

All in all my whole setup tends to look a bit alien and sparse to people, but I do really enjoy using it, and it’s now something that is really tailor made for me and the way I like to work. Niche, yeah sure, but there is also something calming about it, and it makes me focus on what I want to do, and to only really reach for things because I want to, not because I saw an enticing looking icon or something, getting distracted from what I originally wanted to do, and end up spending time on my computer when it wasn’t really something I wanted to in the first place.

Programming simplicity.

After all of my previous mentions of simplicity, this will probably not come as a shock, but as with so many other things my preferences for programming also has been tending towards simplicity.

Python was probably the first language where I actually started doing real things, and it’s still the tool I will be reaching towards if I’m just creating something for work, it is easy to use has a lot of convenient things that makes it a nice tool to quickly make something that does a task.

So here comes the rub, I like simplicity, but pragmatism is also important to me, if I just want something done, why be a zealot and just force something to be simple?

But for playing around, for hobby projects, the languages that I tend to like are the really simple ones, for me there are documentation languages, like python, rust, C++, Haskell and so on. They are fun balls of complexity, where you spend a lot of time reading documentation, and then find the abstraction that does what you need, and how to use it, and write down the thing. But so often it feels like if the internet went down, I would really struggle doing anything in them.

I’ve found myself to really enjoy “dive in” langauges, like nim, zig, gleam and surely others like go and odin, and so on. They are pretty easy to hold in my mind, and instead of reading documentation I can focus on the thing I want to do. Sure there are tradeoffs, but they are the ones that I like. There are of course even simpler languages like c and forth, but I have found them to be a bit too hard, I don’t really want to recreate basic datastructures, and I do enjoy having a type system that is better at protecting myself from my stupidity.

And everything else.

So simplicity can take many forms, I’ve grown to create simple patterns and rules for myself to get me to do things, I always go shopping on mondays, so I don’t have to worry about that the other days.

I turn off screens at 22:00 at night, and have set as a goal to read 1 page of a book, which usually turns into an hour, but it’s mostly there as a ruse, as continuing to read is a lot easier than picking up the book and get started.

I like simplicity, but like everything else, being a zealot is not healthy, so I’m pragmatic about it, I do most of my things in a terminal, but browsing the web for example, just isn’t pleasant in that format, so I use a web browser, even though they are a complex beast often rivalling an own OS.

So I guess, tend toward simplicity when it’s not at the detriment of getting things done I guess.

I don’t know how to end things, so I guess I’ll just go the simple route, I hope you are having a pleasant day, and bye for now :)