7

Why I prefer making useless stuff

 3 years ago
source link: https://web.eecs.utk.edu/~azh/blog/makinguselessstuff.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Why I prefer making useless stuff

Why I prefer making useless stuff

5/22/2021

"I think the #1 project every programmer should try is a project that has customers." - jfoster on HN

"Don't waste your time on homework problems." - anonytrary on HN


I get a lot of responses like this about spending time on useless projects. But you know what?

There is nothing I find more liberating than to spend a Saturday afternoon coding on some toy project.

There is no expectation or obligation to ever become more. It is just for fun, learning, and curiousity. I can add whatever features I want. I can use whatever technologies I want. I can throw it all away if I want. These are the projects I yearn for and look forward to when I'm busy with work.

Perhaps George Bernard Shaw was on to something: "We don't stop playing because we grow old; we grow old because we stop playing."

Funny enough, Titus Barik published a paper that contributes a qualitative analysis on the sentiment of programming and play on Hacker News. The themes he found include play as artistry, catalyst, fun, playgrounds, spontaneity, tinkering, and anti-work. There is a quote that I particularly like, "The joy of programming for programming's sake is something you do in your own time."

uselessprojects.png

It all makes sense to me, because I have spent a lot of time building useless stuff. Mostly compilers and game engines. To name a few projects:

  • Nash, a low-resolution HTML5 game engine with no dependencies
  • Wiggleface, a very low-resolution game engine using Pygame
  • HarvestMemory, a game where you code a bot in an assembly-like language
  • Knox, a compiler for my own language that overemphasizes "explicitness"
  • cosine, an implementation of cosine from scratch
  • SirDrCaptain, yet another static website generator that no one uses
  • goforth, a bad implementation of the Forth language
  • CHIP-8 virtual machines, I think I have made a dozen of them
  • Darkest Days, a remake of my favorite Flash game

And if those aren't enough, I have several more useless projects planned! I can't wait to get started on them:

  • A typed Lisp compiler with a focus on performance
  • An interpreter for my own language that feels like old-school PHP plus dataflow programming
  • A "better" CHIP-8 that supports networking and sound
  • Two different todo list apps for iOS

Do you need ideas for useless projects? Check out my two lists:

Whatever you do, don't forget Bob Dylan's wise words about the things you enjoy doing: "you're gonna have to serve somebody".


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK