#programming
Honestly my favourite thing to do. I’ve been programming for over 10 years now, and there’s no sign of it stopping.
Most of the posts on my website are about programming because of this. I actually spend so much time programming, I don’t have much time for other hobbies!
It does get kind of sad when you think about it though. When folks around you talk about all the movies or games you didn’t see because you were looking at monospaced letters in a text editor…
If I started to describe my whole programming philosophy here, this page would be longer than your favourite roll of toilet paper. So instead, here are some opinions you may find yourself disagreeing with, given without any further context. Just so that you can see what sort of programmer I am.
-
I write very direct, procedural code. My programming style is about functions, data structures those functions manipulate, function capabilities expressed through arguments, and encapsulation via modules composed of those things.
-
The easier your data is to inspect, the less code you have to write to accomplish a task. Encapsulation meddles with that directly and prevents direct inspection.
Therefore, encapsulation should be limited mostly to cases where your system interacts with the “outside world,” whatever that might mean in your domain of choice.
-
Object-oriented programming was originally meant for simulating distributed systems, and it should have stayed in that domain. The number of invalid state bugs object-oriented programming has inflicted on me in my time as a programmer is miserable.
-
I think in groups of things, rather than single elements. It simplifies reasoning about your program and reduces the number of invalid states (including errors related to memory mismanagement.)
-
I value reliability in software very highly. I like it when I can rely on my software. For it not to break under its own weight, or pull the rug from under my feet.
This refers both to reliability in terms of the end user side (crashes, bugs, needless UI changes), as well as the programmer side (churn, breaking API changes).
-
I prefer code custom-built to a project’s needs. Home-grown game engines are great, and are how you push the industry forward. And a little copying is better than a little dependency.
Shame on the programmers who choose Unity or Unreal for their game and make my computer sound like a rocket engine.
-
I like my software to be fast. There’s too little time in life to be spent waiting for your tools to load.
Likewise, I like it when my software builds fast. There’s too little time in life to be spent waiting for your game code to build and reload.
Fast software makes it easy to stay in the flow as a creative person. I think this is something the industry doesn’t value enough. When a piece of software causes you to wait and switch context, it should not be considered a good piece of software.
I rarely have to think about performance though, because software adhering to the rest of my philosophy is generally fast enough not to cause a problem.
It’s likely these values will change or grow over time. I build wisdom slowly, as all of us do.
I don’t boast about my programming projects very hard online, because I don’t seek clout. I build them for myself and my friends to enjoy, and that is more than enough to satisfy me.
But in case you’re curious, here’s what I’m currently working on:
- @@@@, an untitled, unannounced video game.
- rakugaki, an online multiplayer painting app with programmable brushes.
- this website!
Any other project you run across from me is probably dead. Please let it rest in peace and do not resurrect it. You software necromancer. >w<