78 comments

[ 3.1 ms ] story [ 182 ms ] thread
Wouldn't it be better to build a machine capable of useful work?
I think the only real answer to this is "never". 20 people is well below the minimum viable number required to create a large population, and since the first step in building a CPU is "create a large industrial civilization", it can't ever happen.
You forgot the "create the universe" step.
God would take care of that during the first six days.
That's basically what the top answer says, but it's still an interesting question. Especially since it shows people how interrelated different aspects of the economy are to each other.
I agree. If you have ever read the book Crystal Fire, about the work done at Fairchild Semiconductor in the 1950-70s, it took the best and brightest decades to solve the chemistry and engineering challenges present in building transistors and ICs. Even with 20 skilled PHDs as a starting point, I don't think you could overcome the practical manufacturing challenges in any reasonable amount of time.
one of the caveats of the question though is the people who are put there already know exactly what they need to build and how to build it; so you don't need 20 phd's to re-solve the chemistry and engineering challenges. It's almost purely a (still not solvable with 20 people) manufacturing problem.
These are 20 people who live infinitely long, never age, and can work 12 hour productive days.

As long as there is no single step that requires more than 20 simultaneous workers, I don't see why it's not solvable with these 20 people.

It will just take a long time, though…
Naturally, but the original question was how long.
This also assumes that as each step is solved, it doesn't require a continued human presence. I.e. if you develop electricity, the electrical plant needs to be automated and run itself without human (or computer) interaction. The laws of entropy are going to come into play eventually. You might not be able to keep everything working for long enough to make meaningful progress.
And as long as this single step does not take more than 12 hours.
They may know exactly how to build something and what they need, but as I understand it they would not get full documentation about the island itself. What resources are where and what the composition of ore exactly is. So they have to develop an understanding of resources they have and that requires a laboratory and sensitive equipment.

Either way I think that lots of machinery has to be supervised 24/7 and they can work only 12h a day per rules so they would probably be left with only 10 simultaneously active workers. With 10 workers I would say it's just impossible.

(comment deleted)
A maximum extend to which you can get with "sticks and stones" is about level of seventies in IC technology, which effectively mean it is useless for the purpose.

At that point, the "you have to build manufacturing machinery to build more manufacturing machinery" gets close to being exponential, and you will spend double the time just to get past the critical mass of IC controlled machinery to do something that looks like a nineties era fab complex.

First ASML steppers required close to no complex parts: nearly fully analog/mechanical they were. The last gen ones however require megatons of electronics, and manufacturing facilities the size of football stadium for nearly every complex part.

You realize PDP-8/i was made in sixties? and would be happy to run Intel 8088 microcode if programmed correctly?
Yes, and its computational power does not get you much past what was already possible for engineering computing.

You need nineties level for doing useful things that matter: monte carlos, FEM, CFD, molecular kinetics, nuclear physics etc

"Windows 1.0"
Are you disregarding the hypothetical assumptions of the question? Particularly that the people would not tire, age, or die, and already have all required knowledge.

Or, is your argument that the tasks involved in building an 8086-level computer and prerequisites are not serializable?

Fair enough, I didn't properly read the conditions. Assuming (as the question does) that they're immortal and all-knowing, have access to all needed resources in raw form, and can entirely devote their lives to the project, I would change my answer to "an extremely large but non-infinite amount of time".

I think the top answer radically understates the difficulty of the problem; not only would they need to build all of those things, they would need to build the tooling to build the components needed to build all of those things. And for those components, they would need to build the tooling to build the components used to build the components, and so on.

Honestly, I think that even semi-accurately estimating the complexity of the work to be done would be months of work. To actually do it with 20 people, hundreds of thousands or maybe millions of years?

And to answer your other question, there might still be a barrier that we're not considering. Something along the lines of "one of the manufacturing steps requires a perishable chemical, and because of other dependencies there's no way that 20 people can coordinate the steps to produce the minimum required quantity of the chemical and do the other steps so that all of the needed components are available at the right time before they go bad." So there's a unknown-likelihood chance that it's still impossible.
There are interesting places that technological development could have “skipped ahead” that we can only see in retrospect. For example: it was possible to invent photolithography as soon as we had lenses, which means—provided we had the knowledge—we could have started with integrated circuits, skipping the relay, vacuum-tube, and discrete-transistor phases of computer development.

Similar things are likely true in other steps given that we would have access to a huge breadth of “recipes” for rather-more-optimal chemicals (e.g. doping agents, etchants, electrolytes, etc.) than we started off trying. The reagents of these chemicals frequently don’t take any more effort to dig out of the ground than the ones for the less-efficient products; and they don’t take more sensitive or well-sealed equipment to react together, either. They just took sensitive, well-sealed equipment to discover, or were only accidentally discovered as byproducts or other processes we ended up only starting later on (like petroleum distillation.)

Could perhaps have jumped to integrated circuits as soon as transistors could be built, but vacuum tubes were buildable well before transistors. I think that with the existing industrial base as one resource, and knowledge of future technology as the other, semiconductor grade silicon could have been produced as early as the mid 1930s. Not much sooner. Germanium is rarer and less optimal in many ways (small band gap) but it is easier to purify. Could you make simple ICs based on germanium instead of silicon earlier than the mid 1930s? I don’t know what additional complications the germanium path might have. Maybe it’s impractical for reasons other than material purity.
I'd disagree -- but I think an important question is whether the goal is to create an industrial base that can make a chip with similar methods to the 1980s at scale, or whether they just need to create a single chip as the culmination of all their work. It also depends on how slow you're willing to go -- with enough RAM, you could emulate the 8086 on something like a 4004 at a slower but still usable speed. (C.f. ARM Linux running on an 8-bit micro[1]) If it's a single chip, they can do things that don't scale. Using a simpler processor increases yield dramatically, making it easier for them to get a working processor later. Corrosion might be a problem if they take a long time to build things, but they can use gold wiring for everything despite the cost. If you imagine them as monk-scribes, I think a story could be made of them practicing and honing their craft 12 hours a day until they can hand-etch circuits using a microscope and mechanical tools to downscale each movement they make (Sidestepping the UV source for photlithography). The RAM requirements can be lowered by micro-weaving readonly data with rope-core memory in a tiny package. Humans are surprisingly good at fine and accurate work. This would be an illuminated Bible or sand art, but at an unprecedented scale. The biggest hurdle, I think, is the energy required for getting chemicals at high purities and performing vapor deposition. Maybe they could harness hydro power to generate electricity? Maybe they can burn coal or charcoal for heat? The wear on such a system might be too much to keep up with for them.

[1]: http://dmitry.gr/?r=05.Projects&proj=07.%20Linux%20on%208bit

This reminds me of Riverworld. (Working from memory here - it's been a while since I read it) In the civilization that Sam Clemens created/participated in, they basically did this - recreated an industrial society which had basic, but workable computers.
If anyone actually goes to the trouble of doing all this, please make it use \n for line endings instead of \r\n.

Future generations will thank you.

Nah, fuck 8 bit code pages in general.

have it use Unicode line endings (or, if Unicode has to be recreated, do IT right, and have it use 28 bits for codepoints and 2 bits describing the format).

"describing the format"?
the code unit size, byte order, and how many code units are in that codepoint.

you can fit all of that information into 4 bits when you just care about minimizing the size of that mini header.

I know that, because I got bored and made up a quick proposal on it, not that I expect anyone else to even look at it.

If you don't know code unit size and byte order up front, how do you even find the header?

But I'm not really seeing the value. This is a variable-length format that isn't self-synchronizing, right? And if the header is fixed-length, then won't Latin letters require at least two bytes?

It seems like it just loses to UTF-8 (which can support 31 bit code points, too).

because it's the top 4 bits... you read that as a byte, then read X bits more to get the rest of the code unit.

yup and yup.

UTF-8 is capped at 21 bits, theoretically it can support up to 6, but it's not allowed to because of UTF-16.

This format would allow 28 bits to be encoded as 8, 16, and 32 bit code units.

There would be no surrogate pair nonsense, simply write all the non-leading-zero bits into as many code units you need as well as the 4 bit header, and you're good.

I'm not saying it'll ever happen, I know it won't, but if we could go back in time...

If there's unknown byte order, then bytes might go 21436587 and you won't know if you're actually reading the byte that has the header.

If we could go back in time, the important thing would be killing UCS-2, and the false idea of all code points fitting into 16 bits. The encodings with 8 bit and 32 bit code units are just fine, and don't encourage terrible assumptions.

I'd definitely suggest a variable-width header, though. If you remove the extra bits that UTF-8 uses to be self-synchronizing, then your header is a fixed 1/8 overhead, which means you can fit 28-bit code points into four bytes while also fitting ASCII characters into one byte.

That's precisely what I meant with your UCS-2 comment.

What do you mean by variable width? the 4 bit header would be limited to the first code unit, the following ones would just be pure codepoint values.

and that's a good point, I as picturing it as the top 4 bits that describe the format, so the header's byte order would be field, but the actual codepoint value would be encoded with whatever byte and bit order the header indicated.

Oh, so it's a BOM? Why integrate it into the code unit if you're only going to have one of them?
> Oh, so it's a BOM?

Kinda? It isn't limited to just the byte order tho, but I can see it.

> Why integrate it into the code unit if you're only going to have one of them?

There would be multiple code units, just 1 of the mini headers/BOM.

With that comment I was trying to contrast it to UTF-8 which has those 2 leading bits of the continuation code units set to `0b10`, it wouldn't have that.

Oh, the first code unit of each code point, not the first code unit of the text. That's how I had originally understood you until I got confused by the talk of byte order.

I have to say I really don't see the value of being byte-order flexible, but always requiring the header be in the "first" byte, because that makes it so big-endian and little-endian formats are packed completely differently. 2 and 4 byte code units will be misaligned all the time too, might as well just use a series of bytes in fixed order.

> What do you mean by variable width?

Make the first byte be like UTF-8 (so a prefix of 0, 10, 110, or 1110), and the following bytes be raw data. It compacts a lot better than a fixed-length header, with roughly the same level of complexity.

But now that I think about it a continuation bit is probably the best option here because it regains some ability to self-synchronize.

Mildly interesting literary reference: In Seveneves by Neal Stephenson (light spoiler), in the orbital world, they never, after 5,000 years, get to refined microelectronics. It's not an important plot device, so I wonder how gamed out that idea is, but it's remarked by Kath that their computers are nowhere as refined as those they had before the hard rain.
It's very plausible. Most answers are concerned with the technical side, but the real difficulty is achieving a stable society with a continued interest in science and research. Organized civilizations have existed for millennia but war, religious zealotry and social uprisings have been resetting scientific advances every so often.

The unknown Greek engineer who built/programmed the Antikythera Mechanism in the 2nd century BC could have worked with Babbage in his 19th century Difference Engine. Add the steam-powered Aeolipile of 1st century AD and the basic technical ingredients for the industrial revolution were already present in classical Greece. However, the proper social factors that allowed the exponential growth in science and research that resulted in the development of microelectronics and the information society are extremely difficult to achieve, more so than the merely technical ones.

Interesting thought experiment, although, as others have pointed out, a huge section of industrial civilization would be required to get to the point of producing CPUs.

A more interesting question would be how many volumes the build instructions would comprise.

A human brain can be used as a general purpose computing device. Invent and produce low tech stuff like paper, pencils and an eraser and use your humans to execute instructions and check each other for errors. Alternatively use sticks and sand. The computer would run very slowly but it would run. 8 bit assembler for windows 1 code is not that difficult to get your head around, its just tedious. I recon you could do this inside a year.
I’d say rendering screens could be epochal
Develop mentat skills.
I see a fallout reference, I upvote
A Dune reference originally :)
Indeed. I've never played Fallout. Are there many Dune concepts used in other works?
On the next episode of Primitive Technology. On a more serious note, IT MIGHT be doable for a 20-ish DIYers with current technology and some resources. Setting a limitation, of course, to not have them use any of the PCB workshops or foundries. PCBs are doable at home, ICs still aren't-ish. I expect a revolution on home-made ICs in the next few decades.
ICs need very difficult to handle chemicals like hydrofluroric acid to manufacture though. That kind of stuff will never be DIY.
From the premise of the question on SO:

> For convenience, we assume that the humans would not age or die during their participation in this experiment.

Not dying will come in very handy when handling the chemicals.

They'll realize not dying or aging is more useful than running Windows 1.0 and drag out the process forever.
Yes, but two things := DIYers on another level, not 'lemme watch some youtube tutorials, I can build this in a weekend' and second thing - alternative methods might be developed in the (near) future. To do what is proposed here (and for a bunch of other goodies) you would be able to do A LOT of things on a micron level. It would be a great start and a revolution of sorts.
I have distilled HF out of powdered fluorspar and sulfuric acid in a home lab, from a lead tube I rolled out of sheet. I was borrowing steps described in an industrial chemistry encyclopedia from the 1860s. (All I did with it was conclusively etch/dissolve the glass receiving vessel. I didn’t have a proper receiver made of lead or paraffin-coated glass.)

This sort of thing is admittedly quite hazardous. But if you look at older chemistry publications, you might be surprised what is possible with relatively crude equipment.

It takes one DIYer about 2-3 months to build CPU from scratch today. BMOW, Gigatron, Magic, a handful of 74 series TTL chips and some dedication is all you need.
The hardest technological barrier to overcome is production and casting of high grade metals at scale. All the primitive tech guys on youtube have an easy time with everything until it gets to making a furnace capable of smelting iron. That's difficult as all hell and then building all the parts and the ore supply chain to scale that up is a very long process. Once scalable metals production gets going, one can progress to chemicals and then to electricity and to optics to semiconductors eventually.
One of the points everyone ignores is agriculture.

If you're going to have a bunch of humans in a small area (civilization), it's going to be a requirement. Until you have mechanized/highly productive agriculture, more than half of your population's job will be food production.

You dont need optics to make semiconductors. You can make transistors in your garage without microscope.
I forget the name of the paradox, but the gist is: we cannot recreate our current technology from scratch with our current technology. Because many intermediate layers have between removed and made obsolete.
island that contains all necessary resources as they would appear in a natural environment

This is the problem, if civilisation collapsed it's never coming back because all those easy to access resources we relied on in the past are gone. It all requires advanced technology to access now.

There will be so much stuff left over from our civilization that it should be pretty easy to scrounge and scrape together stuff, Mad Max-style. Access to a landfill, steel, copper, other metals and some working electric motors/generators, and you're off and running. Heck, to make a generator all you need is a permanent magnet, some copper wire, and some mechanical energy, like maybe hydro or a bike crank.
You won't have much luck extracting shale oil with a couple of bike chains and an old washing machine motor :)
Is it possible that there could exist a tool such that would make this task possible? What would it need to be capable of? Very precise manipulation of matter?
This is why I say the first people on mars will need local copies of wikipedia. It's hard enough to bootstrap civilization without having to relearn everything and have enough people to have experts in all areas.
Wikipedia doesn't contain nearly enough knowledge. It tells you what a CPU is, not how to build one. It tells you some of the chemical properties of certain common chemicals, but not the millions of reactions, or thousands of entries in databases giving their exact physical and chemical properties, etc. Wikipedia would be a useful tool for bootstrapping, but is clearly a tiny, tiny fraction of human knowledge. It's short on a lot of technical details which fill the shelves and databases scientists, engineers, etc. depend on. It's also missing the living knowledge, that is passed from generation to generation as we teach people how to do the thousands of jobs that are necessary to keep modern society running.
>> Wikipedia would be a useful tool for bootstrapping, but is clearly a tiny, tiny fraction of human knowledge.

I completely agree with you. Wikipedia would be just a start. Having an electronic library with high quality texts (and videos) from all areas would be even better. Whatever information they bring, it will be best if it's free to anyone and everyone there.

I would say the most useful thing when we get close to it is a general purpose robot capable of jumpstarting civilization.

We need a few of those in bunkers around the solar system.

I don't fully understand what single machine could do to "jumpstart" civilization. Does the robot focus on agriculture, medicine, education, culture, or industry? If it is "general purpose" it could work on all, but it's only one machine, and there is too much to do for just one agent.

When you say robot you imply that the robot would do the world of building the civilization. We'd need dozens to "jumpstart" a civilization. Maybe a single machine could act as a library of knowledge to teach people how to create a civilization. I'm doubtful people would be willing to follow such a machine long enough to generate 8086 CPUs.

It's important to consider that the workers wouldn't have to replicate the tech tree of the past. With access to all industrial expertise, as assumed in the question, what could be done more efficiently, or what could be done to better suit the ergonomics of a 20 person team?

I think the inverse question is also interesting. What technology have we lost, because our current infrastructure has negated our need for it?

Great idea for a TV show.
Reminds me of WaitButWhy's iPhone thought experiment[0], where the entire world reverts to a pre-human state and humans have to construct a functioning iPhone to break the spell. There's some interesting discussion on how long that would take, or if it would ever happen.

[0]: https://waitbutwhy.com/table/iphone-thought-experiment

Mildly related, I was reading this day about busy-beaver function. It jumps suddenly from n=7 because 7 states seems to be enough to do exponentiation.

Apparently it is claimed that no person today knows all the steps required to build a pencil from scratch. It's overwhelming to think further to a Win 1 capable machine.

That's a lot of bugs to recreate. Maybe blockchain AI can help generate the needed bugs :-)