The title sounds like the Chinese curse of software development.
Fun tidbit: Just to make sure I got it right, I quickly googled the phrase. Gemini's elaboration on the topic truly made me feel something. Gemini's answer:
A "Chinese curse" often refers to the phrase "May you live in interesting times," though it's not actually Chinese but a misinterpreted English saying, while actual Chinese curses involve direct insults like "Cào nǐ mā" (Fuck your mother(sic!))
> When programming becomes repetitive, the odds of you creating something that makes people go “wow” are reduced quite a bit.
Unless you're working on something with a lot of breadth, of course. A great example is yt-dlp which works on a huge number of sites. The wow-factor is high because it feels like it just works everywhere. That's only possible through a huge number of data parsers, many of which are not terribly different from one another
I find that the software that evinces a feeling of admiration in me is itself as devoid of feeling as possible, RE the observation that aesthetics are created out of pure functionality.
The more "sentimental" or "egotistical" a piece of software is in itself, the less I like it. Taken to the limit, the title of the article commands us to generate Skinner boxes to maximize user engagement etc.
There’s something refreshing about explicitly saying “this editor exists to delight me, and that’s enough”. The default script now is that every side project should either be open-sourced or turned into a SaaS, even if that pressure is exactly what kills the weirdness that made it interesting in the first place.
Some of the best tools I’ve used felt like they started as someone’s private playground that only later got hardened into “serious” software. Letting yourself park Boo, go build a language, and come back when it’s fun again is probably how we get more Rio/Boo-style experiments instead of yet another VS Code skin with a growth deck attached.
Kinda tangential but in the advent of AI I feel like there won’t be a niche for “handcrafted software”.
When quartz watches came up the makers of mechanical watches struggled. Quartz watches are cheaper, more accurate in many cases and servicing is usually restricted to replacing a battery. However some people appreciate a good mechanical watch (and the status symbol aspect of course) and nowadays the mechanical watch market is flourishing. Something similar happened with artificial fabrics (polyester, acrylic) and cheap made clothes, there’s a market for handmade clothes that use natural fabrics.
Nobody (well, barring a few HN readers) will ever care if the software was written by people or a bot, as long as it works.
I think with tools like Claude code you can more easily tackle niche areas that would benefit from custom crafted features and then using the app would feel like it was purpose built for the specific task at hand. Sure the code might not look hand crafted, but if it works and solves problems in the world...
> I don’t really feel I need to follow people’s cake recipe for success.
That's great, but then what's the point of this article?
The author is seemingly offering advice about why and how software should be built, but then claims to not follow anyone else's advice. Cool.
Just do whatever makes you happy. If you want to work on proprietary editors and programming languages, go ahead. I would argue that doing that in the open would both improve the projects and make the world a better place, far more than blogging about them does, but this doesn't matter if you're optimizing for personal happiness.
Yeah I make software that makes people feel something - rage - there are 2 types of software one that no one cares about and software that people use and voice their opinions about :)
Boo is an interesting name for an editor what feature were you looking to make that others didn't have? I like your website by the way, the blue square that turns the mouse cursor into a tracer is a neat effect and makes interacting with your content fun!
> created solely for myself; I never had the intention of making it [...] mainstream
This is a habit I picked up from two people I respect greatly as programmers; Casey Muratori and Jonathan Blow.
Those guys both built their own little lands; Jon went as far as building a new language, a 3D game engine in that language, and has multiple game titles in-flight in the engine.
I have a handful of projects that are similar in spirit. I'm largely the only, and target, user of these projects. It's joyful to work in an environment you control completely. No deadlines, no feature requests, no support tickets, no garbage collector, no language runtime .. just me and the OS having a party.
I haven't gone this far, but I get the same joy out of little side project CLIs and libraries.
In particular I've written a CLI framework and a few apps with it. The apps' requirements stretched the framework's capabilities, so I've rewritten large parts of it over the years.
It's incredibly satisfying to feel myself get better as a developer as I write and consume and improve my libraries.
I’m stuck on the opening sentence. Family went to sleep in the morning so rest of the day is free? I must be missing something but that doesn’t make sense.
62 comments
[ 13.8 ms ] story [ 1460 ms ] threadThe mouse trail made me feel something else.
Fun tidbit: Just to make sure I got it right, I quickly googled the phrase. Gemini's elaboration on the topic truly made me feel something. Gemini's answer:
A "Chinese curse" often refers to the phrase "May you live in interesting times," though it's not actually Chinese but a misinterpreted English saying, while actual Chinese curses involve direct insults like "Cào nǐ mā" (Fuck your mother(sic!))
Unless you're working on something with a lot of breadth, of course. A great example is yt-dlp which works on a huge number of sites. The wow-factor is high because it feels like it just works everywhere. That's only possible through a huge number of data parsers, many of which are not terribly different from one another
The more "sentimental" or "egotistical" a piece of software is in itself, the less I like it. Taken to the limit, the title of the article commands us to generate Skinner boxes to maximize user engagement etc.
Some of the best tools I’ve used felt like they started as someone’s private playground that only later got hardened into “serious” software. Letting yourself park Boo, go build a language, and come back when it’s fun again is probably how we get more Rio/Boo-style experiments instead of yet another VS Code skin with a growth deck attached.
When quartz watches came up the makers of mechanical watches struggled. Quartz watches are cheaper, more accurate in many cases and servicing is usually restricted to replacing a battery. However some people appreciate a good mechanical watch (and the status symbol aspect of course) and nowadays the mechanical watch market is flourishing. Something similar happened with artificial fabrics (polyester, acrylic) and cheap made clothes, there’s a market for handmade clothes that use natural fabrics.
Nobody (well, barring a few HN readers) will ever care if the software was written by people or a bot, as long as it works.
Good luck for your new project!
That's great, but then what's the point of this article?
The author is seemingly offering advice about why and how software should be built, but then claims to not follow anyone else's advice. Cool.
Just do whatever makes you happy. If you want to work on proprietary editors and programming languages, go ahead. I would argue that doing that in the open would both improve the projects and make the world a better place, far more than blogging about them does, but this doesn't matter if you're optimizing for personal happiness.
That was a look into a world we steered away from.
I tend to do things the same way. I write software that I want to use.
I do tend to go "all the way," though. Making it ship-Quality, releasing it on the App Store, providing supporting Web documentation, etc.
Makes me feel good to do it.
I always used to say "My dream is to work for free."
Livin' the dream...
This is a habit I picked up from two people I respect greatly as programmers; Casey Muratori and Jonathan Blow.
Those guys both built their own little lands; Jon went as far as building a new language, a 3D game engine in that language, and has multiple game titles in-flight in the engine.
I have a handful of projects that are similar in spirit. I'm largely the only, and target, user of these projects. It's joyful to work in an environment you control completely. No deadlines, no feature requests, no support tickets, no garbage collector, no language runtime .. just me and the OS having a party.
In particular I've written a CLI framework and a few apps with it. The apps' requirements stretched the framework's capabilities, so I've rewritten large parts of it over the years.
It's incredibly satisfying to feel myself get better as a developer as I write and consume and improve my libraries.
Did the author chloroform them?