Hacker News new | ask | show | jobs
by skytreader 1648 days ago
I have two definitions of "fun" but the common denominator is that I find the ecosystem "reasonable" (in quotes because I have no objective definition).

Also, an important factor I feel I should disclose is that my idea of fun does not involve my code being able to run in other people's computers. Though it is important that I can understand myself three months down the line. That said, my definitions of fun are:

1. I'm productive in it. The tech stack would definitely include Python for very subjective reasons. The decisions PSF makes for their batteries-included standard library really suit me. Did you know they now include basic stats functions too?[1] I have a single-file lib that does this which I copy-paste around as a utility script (never bothered to package it properly); I use this whenever I want to do benchmarks or other standard software eng'g/CS stats analysis. Now, I don't need this script anymore!

If I have to design a UI though, I tend to stick with JS, maybe Android if the use-case makes sense. But with JS it's either very vanilla or I'm making a game with Phaser. (My thoughts on Phaser is another post...)

2. It teaches me something new. This is the part where I just learn a new language (Scheme, even Ruby ha!, one of these days Prolog or Haskell). Most of the time I just work through some textbook or maybe Advent of Code/HackerRank.

For a combination of 1 and 2, I program in---drumroll please---C! Good old, restrictive C, though still with a wealth of libraries and real-life examples available. I've been implementing some 1980s-era game listings in C; what I thought was a straightforward exercise (these are text-based BASIC programs) ended up being a deep dive into Linux signals and buffers (I won't pretend I've mastered this). It turns out, these 1980s platforms (ZX, Apple, TRS-80, etc) has some "syscalls" that don't have a direct equivalent in modern Linux (maybe ever?).

[1] https://docs.python.org/3/library/statistics.html