I’ve heard that Torvalds build Git in 5 (or 10) days and that Brendan Eich created JavaScript in 10 days.
Maybe the average programmer is less efficient, but the distribution is probably heavily skewed these days.
I'd argue that ordinary programmers can perform the same *type* of exercises if they:
- Put away a few weeks and go into Hermit mode;
- Plan ahead what projects they have in mind, which books/documents to bring with them. Do enough research and a bit of experimental coding beforehand;
- Reduce distraction to minimum. No Internet. Dumb phone only. Bring a Garmin GPS if needed. No calls from family members;
I wouldn't be surprised if they could up-level skills and complete a tough project in three weeks. Surely they won't write a UNIX or Git, but a demanding project is feasible with researches allocated before they went into Hermit mode.
I also think people under estimate how much pondering one does before starting a project.
I think so. I don't think Ken had zero thought about UNIX and then suddenly came up with a minimum but complete solution in under 3 weeks. Previous experience also tells a lot too. Wozniak was able to quickly design some electronics, but he probably already bagged 10,000 hours (just to borrow the popular metaphor) before he joined HP.
They both had been working on the Multics project for Bell Labs before they pulled out of the project and had written several languages already.
While some ideas like hierarchical filesystems were new it was mainly a modernized version of CTSS according to Dennis Ritchie's paper "The UNIX Time-sharing SystemA Retrospective"
I was playing with this version on simh way too late last night, taking a break from ITS, and being very familiar with v7 2.11 etc.. It is quite clearly very cut down.
I think being written in Assembly, which they produced by copying the DEC PAL-11R helped a lot.
If you look through the v1 here:
https://www.tuhs.org/Archive/Distributions/Research/Dennis_v...
It is already very modular, and obviously helped by dmr's MIT work:
https://people.csail.mit.edu/meyer/meyer-ritchie.pdf
But yet...work for years making an ultra complex OS that intended to provide 'utility scale' compute, and writing a fairly simple OS for a tiny mini would be much easier....if not so for us mortals.
It isn't like they just came out of a code boot camp...they needed the tacit knowledge and experience to push out 100K+ lines in one year from two people over 300bps terminals etc...
"EDIT: This was created to collect everything:" Wow. Amazing. Dennis would have been proud. Thank you, and thank everyone for their work. Thanks.
> I’ve heard that Torvalds build Git in 5 days
And it shows.
I am joking of course, git is pretty great, well half-joking, what is it about linux that it attracts such terrible interfaces. git vs hg, iptables vs pf. there is a lot of technical excellence present, marred by a substandard interface.
Brendan Eich would say "10 days" whenever one of the big warts from the that are unfixable came up.
The Mocha prototype was better than what I did after the ten days. The biggest wart, == implicitly converting operand types, came after the ten days and was me being an idiot by agreeing with early inside-Netscape adopter requests for slop.
Ryan Dahl gave a speech decades later saying "don't do them" when you are tempted to add little features that might be "cute": https://youtu.be/M3BM9TB-8yA?t=900.
Unfixability is a property of the Web and applies to CSS and HTML as well as JS.