Schemescape

Development log of a life-long coder

My hobby is... bikeshedding?

Although I'd seen the term thrown around, I hadn't looked up the definition of "bikeshedding" until recently. DuckDuckGo tells me that "bikeshedding" is:

Futile investment of time and energy in marginal technical issues

Wait a minute. That accurately describes much (if not most) of this blog.

Bikeshedding is my primary hobby, apparently.

A quick review

Looking back at my previous posts, I see:

But why?

At the time, I justified most of these plans in terms of economy: I was optimizing resources in reaction to everything else seeming so bloated. I was respecting the user by minimizing dependencies/system requirements.

But in retrospect, I wonder if I was just focused on optimization because it was often the most straight-forward and unambiguous task.

That's not to say that I was necessarily wasting my time. I learned a ton from these projects. And minimizing resource usage is extremely important for respecting your users... but that only matters when you have users. Otherwise, it's just premature optimization (assuming a reasonable baseline).

Goals

I suspect software development can be lucrative because costs scale slowly. Solving a problem for 1 person may take a lot of work, but solving it for 100 (or 1000) additional users often costs very little. Of course, sometimes, I'm just looking to solve my own problem, and I don't plan on having any "users".

Ultimately, before I start a project, I should have a target audience and/or goal in mind. This seems obvious, but I'm fairly certain that most of my projects began organically, with only a vague notion of what I wanted to achieve.

Additionally, I need to critically evaluate any goals and whether or not they're worth the effort. Creating a Common Lisp-based static site generator in order to learn Lisp because it sounds fun? Probably a good idea! Creating a Common Lisp-based static site generator in order to provide faster incremental and custom templates, for a tool that will likely only ever have one user? Probably not worth the effort!

Looking forward

Fittingly, my current hobby of learning Common Lisp started because I read about REPL-driven development and wanted to test it out for myself. In the process, I've found many additional reasons to persist with Lisp:

Lisp is just too enticing to a dedicated software developer. It's the most expressive and extensible programming language I've encountered, and it's just popular enough that learning it doesn't feel like a waste of time.

But what is my goal with learning Common Lisp?

Overall, I like Common Lisp, but now I can't shake the feeling that using an extensible programming language that fits on netbook is just more bikeshedding.

Most programming language distinctions could probably be classified as "marginal technical issues" for all but the most demanding workloads.

The whole world seems to be using Python or JavaScript and they're "good enough" for most purposes. Should I just hop on the bandwagon and stop fussing over those languages' deficiencies? Well, that depends on the goal...