I have my own take on this, since I do program, but I don't "come from" programming. I'm really more of an "arts and crafts" kinda guy: graphics, visuals, music. The sort of person whom these days it's fashionable to call "a creative" (whoever thought up that cringe non-noun needs a good extra helping of "a laxative", but that's neither here nor there).
'Modern' programming contexts (at least those I've been exposed to) usually don't feel like practicing an "art" to me, and don't often provide the satisfaction of "crafting" something. So I never really enjoyed it much, until I started looking into oldschool low-level real mode programming... and that's something I taught myself long after it stopped having any practical value in the real world. So it's strictly hobby related. I guess there are some exceptions with the modern stuff, like tinkering with shaders and whatnot, but that doesn't amount to anything substantial by itself.
In my "niche" I sure enjoy things like remaking Bill Gates' "DONKEY" game to fit in a boot sector, writing Area 5150 demo effects, or fitting a somewhat powerful font editor in 12 KB. But for example, take the fonts you create with that editor... if you want them to ever be useful in 'modern' contexts, you have to add Unicode mappings; and a useful Unicode map editor pretty much means a modern environment, both for the encoding/decoding and for the rendering. So the map editor ended up being a bloated-feeling web app taking up some 600 KB of code and data (after optimization and compression), and wasn't half as fun to work on as the font editor itself.
The funny part is, I use HLLs for 'modern' projects (and professionally), but for the oldschool stuff I've grown too attached to having a pure ASM interface to the system. So much so that I have an unreasoning aversion for using HLLs for DOS/8086 targets, because I'm too used to having precise control of where everything goes and how it's implemented and accessed... no artificial restrictions like conforming to "calling conventions", working with "memory models", and other such square pegs invented for round holes. :-D
Yep, it's purely a self imposed limitation, and it just makes my own life more difficult when I try to conceive of bigger and KeWLeR oldschool projects. So is my way of being unproductive in fact counter-productive? When I stick with what I enjoy, am I in fact standing in the way of my own enjoyment? Will our heroes survive? All that and more, after the break!
DaveDDS wrote on 2026-08-03, 00:54:
Exactly! - lots of people keep asking me: You've published all these good things in the past - why haven't you moved on to "modern" things?
As much as I "love" DOS programming (and other small systems using my own tools), I almost just as much "hate" the many hours wasted in trying to figure out how "modern" developers "think" and figuring out "ways around" things just to be able to write what should be a simple program on almost all "modern" systems.
Maybe an even better reason: there are more than enough people working on "modern" code, but those who actually have your degree of experience with vintage software/hardware aren't getting any more numerous, and are even more sorely needed these days sharing the fruits of that knowledge. So sticking with "the old stuff" probably increases the actual benefit to the world.
I mean, if you (or anyone else in your position) don't fix the next round of security vunerabilities in everyone's favorite JS runtime, someone else probably will... but if you guys tackle that stuff, how many others stand in reserve to better the world with imaging tools for weird disk formats, BIOS extensions for XTs, new benchmarks, or lightweight TCP stacks? :)
[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]