Ask HN: Single-person creations that have stood the test of time?

220 points by debanjan16 ↗ HN
What are some single person creation that have stood the test of time. The creation, at present, may be under the umbrella of some big corp. But the entire core of it was developed and maintained by a single person. Like Minecraft.

And I am not talking about only tech project creations. Anything extraordinary that comes to your mind?

374 comments

[ 2.8 ms ] story [ 301 ms ] thread
Linux
This was a single person creation once but it grew so much bigger than that.

Also as a single-person creation, Linux is basically the implementation of an API which existed before -- not only did this bypass a huge amount of work that would go into designing a fundamentally new operating system, but it meant Linus's work would be useful because lots of existing software would run on it.

(I find it depressing that real innovation in operating systems seems impossible because everybody wants to run old software... Thus all the "bloat" has to get put back into the system.)

Richard Stallman would be very upset if he saw this comment
GNU contributed, but if they didn't exist Linux would either grow its own userspace or possibly borrow from *BSD. In the meantime, Linux did what GNU for some reason couldn't... although today HURD is actually nearly usable (in a VM) and Linux doesn't need GNU components (Alpine proves that musl/busybox can cover userspace, and with clang AFAIK you can make a completely GNU-free self-hosting system), which makes the whole thing a bit funnier to reason about.
ffmpeg and qemu
Both by Fabrice Bellard, whose website:

https://bellard.org/

is a list of projects where any one item - even the small ones, much less ffmpeg and qemu - would be at the top of anyone else's resume....quite impressive!

A counter to the myth of the 10x developer
Yeah, my very first thought on seeing the question was, "Anything by Fabrice Bellard":)
The Q says, "entire core of it was developed and maintained by a single person"

which does not describe ffmpeg. FB was pretty active for first 4-5 years, but he wasn't the sole dev even then.

I think of this comic which was done completely by Jack Kirby

https://en.wikipedia.org/wiki/OMAC_(Buddy_Blank)

which has some delicious irony since it is about a "One Man Army Corps".

Kirby worked with Stan Lee and some others at Marvel comics to develop the characters and settings that set the foundation for Marvel being... Marvel. Kirby was kinda resentful that Stan Lee hogged the credits for the work. Particularly Stan Lee had a writing credit for all of the books he was involved in, but "writing" includes both planning the scenario and choosing individual words and the illustrators had a lot of input into the scenario.

Looking at OMAC you see Kirby do a really heroic job. The scenario planning is excellent and the writing at the sentence level is fine, but you can see that Lee had a special touch for that which Kirby didn't have.

https://www.comics.org/issue/27707/

Script:Jack Kirby

Pencils:Jack Kirby

Inks:Mike Royer

Colors:Jerry Serpe

Letters:Mike Royer

Serpe colored the whole comic’s run. In issue 2, D. Bruce Berry took over the inks; in 3 he took over the letters as well. This continued until the final issue (8), which was inked and lettered by Royer. And the final panel was “rewritten and redrawn by someone other than Kirby” due to the series being cancelled.

I have seen a lot of Kirby’s pencils (even inked over one of his pages as an exercise) and most of the comic is there in them, but there is a huge difference between them and an inked/colored/lettered page.

Intermittent windshield wipers. Fantastically useful and co-opted by everybody who could (legally or not).
So, this guy owns the house next to a good friend of mine in Auburn California.

It is a vacation home of sorts - but its a very large nice house ~7,000+ SF very well kept grounds - but rarely seen there.

TAOCP by Donald Knuth
As you named a game Stardew Valley was my first idea.

But a lot of essential tech tools, apps and libraries, are mostly one man creation (fitting in https://xkcd.com/2347/).

I think that calibre, keepassx (no longer maintained, but living as keepassxc) and curl are some examples.

The paperclip? That seemed to be multiple 'single person' inventors, however.
Are you talking about Clippy? ;-)
emacs, a lot of art including books, film, wheel, fire, some programming languages (C, Perl, Python)
- PuTTY (Simon Tatham) - Bitcoin (Satoshi Nakamoto, if he's a single person) - mIRC (Khaled Mardam-Bey)
TeX, the typesetting system developed by Donald Knuth
and his computer science bible: TAOCP!
well, it's not finished yet
The Theremin and early Moog synthesizers by Bob Moog.

SID (the sound chip of the Commodore 64) by Bob Yannes.

Reminded me of another:

John Chowning - FM Synthesis

Tarsnap - https://www.tarsnap.com/

(I cannot recommend this service enough.)

It's insanely expensive
If you are using it to back up data that is not easily compressible then yes, it can be.
HTOP (Hisham Muhammad)

PCem (Sarah Walker)

Surprised no one mentioned git. Made over the course of a single week by Linus Torvalds,
Wait, what? One week? How much coffee was necessary for that?
Normal finnish consumtion, about 0.2 kg of beans per week.
(comment deleted)
I thought I drank a ton of espresso every day. Then I visited Helsinki.
The core of Git isn't that complicated. A merkle tree backed by a content-addressable store. That's very much in the realm of possible within a week. It wasn't very easy to use in it's first iteration. All of the porcelain that has been built around it is where 90% of the development has gone.
Where by "porcelain" I assume you mean "easy to mishandle and break" ;)
I'm certainly one of those people who think git makes stupid mistakes a little too easy to do, so I'm on board with that definition.
Heh, an unintentional consequence of word choice :) “Porcelain” is used in contrast to “plumbing.” Both terms are used in the gut documentation to differentiate the more complex, user-facing features of Git (e.g. `git commit`) from the raw features used by other tool authors (e.g. `git for-each-ref`)
Wait, it used to be even harder to use?
It was amazing that within ~24hrs of Linus releasing `.git` there were corresponding implementations of the backing data store within ~1 week for all the other "major" competing version control systems (eg: hg, svn, darcs) and written in just about every possible language.

The core of git is brutally simple and efficient, and maps incredibly well to "a linked list (and hash) of files serialized to disk".

Someone wrote somewhere "I used to wonder if Linus was a genius but Git proves it to be true. Anybody could have (re-)written a *NIX implementation, but Linus invented Git from whole cloth."

https://perl.plover.com/classes/git/samples/slide005.html

https://perl.plover.com/classes/git/samples/slide009.html

But, he didn't.

Linus copied the design from Monotone, by Grayson Hoare (who also made the original pre-pre-1.0 Rust).

Graydon. (Damn auto-correct!)
https://lkml.org/lkml/2005/4/6/121

"PS. Don't bother telling me about subversion. If you must, start reading up on "monotone". That seems to be the most viable alternative, but don't pester the developers so much that they don't get any work done. They are already aware of my problems ;)"

time for monotone to be rewritten in Rust

Time for Git using SQLite for back-end storage.

Git has corrupted its own store too many times for me ever to trust it anymore. Almost ready to switch to Fossil.

Actually it's very likely that Git is exposing a failing or unreliable underlying storage medium (or memory?). I can't find the reference for it, but b/c git is so aggressive about actually checking hashes, it sometimes exposes unreliability that gets attributed to git, but is actually the hardware.

Check for "memtester", "smartctl", and "badblocks" ... understand what they do and see if they turn up anything.

Possibly, but audits have also shown Git not correctly handling file system error reports. We also have file systems not correctly handling disk error reports. Last I saw, volume managers were not passing media error reports through to file systems. And, Intel has done its part to eliminate ECC from memory and buses.

I guess what I am saying is that there seems to be more than enough blame to tar everybody.

I would say every year of quality experience a person has is equivalent to X mg of caffeine so at Torvalds level he might not have been above a normal level.
After years of using other architectures and thinking really hard about what worked and what didn't.
And Notch would obsessively play Dwarf Fortress before writing any code for Minecraft. The distinction between influence and contribution is a fine line.

It's worth studying so aspirants understand no achievement exists in a vacuum, but not a means to divide something between solo and collaboration.

I thought you'd say Infiniminer by Zachtronics.
Does that mean that a less competent developper could write a more intuitive alternative in a few months ?
Probably! I think this space is ripe for exactly that to happen.
Absolutely. There's nothing fundamentally complicated in Git. The most complex things are the merging and diffing algorithms (but I presume the week-old git just used GNU diff and patch).
Mercurial?
Exactly this. I think that git is only popular currently because everyone else is using it. (That and GitHub).
Isn’t it also because Linux itself is controlled by Git?
Or fossil, built on top of SQLite.
Intuition is really the problem with git. Most developers that use git daily don't actually have a deep understanding of the domain model powering it. They don't know why it's doing things, or why they need to do things in a certain way.

It's terribly unintuitive.

But it's also so powerful that nearly every use case you might have can be done with it.

I'm going to ask you, instead oh Google, what do I need to learn about git?
I think it's worth noting that Linus was influential in BitKeeper's design previously, and if you know both systems, git feels like a cleaned-up BitKeeper that uses from-scratch formats instead of trying to ride on top of SCCS.