It's illustrative to take your constraint theory and apply it to the press itself. Pi Cheng's press used porcelain type, which required skilled labor to manufacture and wore out quickly. Gutenberg's innovation was to replace porcelain (or wood, which had been used in prototype printing presses in Europe) with lead. Building on this, Gutenberg invented an ingenious system of molds that allowed a single metalsmith to cast a large number of type blocks at once.
Gutenberg's innovations (replacing porcelain with lead and his invention of a system to mass-produce type blocks) relaxed another constraint on the printing press: the availability of letters. These innovations were so successful, printing continued to use variations of lead type all the way into the early '80s, when cast lead was finally replaced with electronic systems.
It's also worth noting that if you want to print a book in Chinese with a printing press, you'll need a lot more than 26 typing blocks.
That's true, but it's not really the limiting factor. If you have lead type, you can make yourself a set of Chinese characters almost as easily as you can make yourself a set of Latin characters. The limiting factor is the fact that porcelain type was a lot less durable in a press and needed more time and skilled labor to make, whereas lead type can be made en-masse by metalsmiths.
Composing Chinese with moveable type is still slower, because you need at least a thousand, maybe several thousand, different characters. Just physically selecting them is time-consuming. Back in the days of mechanical typewriters, attempts were made to design typewriters for Chinese and Japanese, but using them was no faster than writing by hand. A skilled typist on an alphabetic typewriter can go much faster.
Composing is slower, true, but composing a page for a printing press isn't really comparable to typing on a typewriter. The cost of composition on a press is amortized across hundreds or thousands of pages printed, which isn't the case for typing. In fact, we know that composition was worth the cost because the Chinese and the Japanese eventually did adopt the Gutenberg-style printing press in the mid-to-late 1800s as they industrialized and opened up to Western technologies.
Curated (with an eye for curating the entire sequence). I'm not sure how groundbreaking this was, but regardless found it a clear articulation of an important principle, which I appreciated taking some time to think about.
A thousand years ago, books were generally written by hand, on parchment made from sheep skin. I don't have a good source on how long it took a person to transcribe a typical book, so for the purpose of this post let's just call it 30 days. I do know that a typical book required the skins of about 12 sheep (source: Braudel).
We can represent this via two production constraints:
Nbooks≤130NtranscriptionDays
Nbooks≤112Nsheep
... and of course we could add more constraints to reflect all the other inputs to a book. We write it like this, rather than just saying "1 book = 12 sheep + 30 transcriptionDays", to highlight that each input is an independent limit on the number of books produced. If we only have 15 sheep on hand, then we can make at most 1 book, no matter how many bored transcriptionists are sitting around.
Another reason why writing out the constraints is useful: it offers a natural way to introduce technology changes.
Let's consider two possible technology changes:
How do these modify the constraints? Well, paper eliminates the sheep constraint and replaces it with a paper constraint (of the form Nbooks≤CNpaper for some C) - yet the transcription constraint remains exactly the same. Conversely, a press eliminates the transcription constraint - yet the sheep constraint remains exactly the same. The constraint representation is modular with respect to technology changes: introduction of new technology removes/modifies some constraints, while leaving most of them unaltered.
With a little creativity, this representation can be extended to other kinds of technology changes as well:
... etc.
Conjugacy
One of the main lessons of optimization theory - be it linear programming, convex analysis, what have you - is that every constraint has a conjugate "shadow price" (mathematically given by the Lagrange multiplier). The price indicates how "taut" or "slack" the constraint is - i.e. how much more we can produce if the constraint is relaxed a little bit. If we're a medieval book-maker with 15 sheep and a thousand transcriptionist-years on hand, then the sheep constraint is very taut (more sheep means more books), whereas the transcriptionist constraint is very slack (more transcriptionists does nothing). It's like a rope: pulling on a rope won't do anything unless the rope is taut; hiring more transcriptionists won't do anything unless the transcriptionist constraint is taut. The shadow price quantifies this: it tells us how much the book-maker will pay for additional sheep versus additional transcriptionists. With 15 sheep and a thousand transcriptionist-years, the book-maker will happily pay for more sheep, but will offer roughly zero for more transcriptionists.
Quick recap:
If you want to see the math, I highly recommend Stephen Boyd's lectures & book on convex optimization.
So what does all this tell us about technology changes?
Well, new technology removes some constraints and replaces them with new constraints. If the old constraint is slack, then this doesn't do any good. If we already have a million transcriptionist-hours available, and only 15 sheep, then we have no use for a printing press. Consider Pi Cheng: he introduced a movable-type printing press in China around 1045, but it mostly failed to catch on. Why?
Here's one hypothesis: across the board, in many different industries, we see medieval/renaissance China using labor in places where Europe used machines. That suggests that labor, in general, was readily available in China - those constraints were generally slack. Labor in China had a very low shadow price, compared to the shadow price of machinery (i.e. capital goods).
How could we test that hypothesis?
Economic theory provides various conditions under which producers' shadow prices are (roughly) equal to market prices. The simplest such condition is competition, but that assumption usually degrades gracefully: even if competition is less-than-perfect, market prices will still usually approximate shadow prices, with the approximation improving as competition increases. So one rough measure of a shadow price is the market price. (Even when the competition assumption fails completely, we can probe the shadow price in other ways - e.g. by looking directly at producers' records, or by looking at how hard producers try to obtain various inputs.)
If competition among book-makers is even remotely reasonable as an approximation, then the book-makers' shadow prices will be close to market prices of the relevant goods. So, we could (very roughly) test our hypothesis by comparing the price of labor relative to capital in medieval/renaissance China to the price of labor relative to capital in medieval/renaissance Europe. Our hypothesis predicts that labor was much cheaper relative to capital in China.
Generalization & Gears
Of course, there are many other possible hypotheses about why movable-type printing didn’t catch on in China. A similar approach would apply to other possible hypotheses about the adoption of the press.
For instance, in Europe at least the replacement of parchment with paper is often cited as a key factor, suggesting that before the press was adopted, the parchment constraint was much more taut than the transcription constraint - i.e. parchment was a much larger share of the book’s price than transcription. Only after the parchment constraint was relaxed did the transcription constraint become more taut, at which point the press caught on.
Note that, in both the capital/labor hypothesis and the paper hypothesis, we don’t have a root cause. If prices were different, then some upstream factor must have caused the price difference. Rather, constraints/slackness/prices are gears in our model of the world: each constraint/price pair is a gear, which can mediate the causal influence of a wide variety of interventions/root causes.
These gears can interact with each other - the “output” in one constraint may be an “input” in another. For instance, yet another hypothesis for China’s non-adoption of movable-type printing is a relative lack of literacy in China; Europe had a much larger market for books. At an economic level, the supply of books was itself a slack constraint in China - people weren’t willing to pay much for more books. This constraint would interact with both the capital constraint and the paper constraint - e.g. if few people read books, then there would be little demand for more scalable technologies like printing and paper. Book price/constraint would be a separate gear in the model, alongside the capital, labor, and paper prices/constraints.
Summary
In general, we can reason about the adoption and impact of new technology by looking at prices associated with constraints. If a technology relaxes a slack constraint, then it likely won't be adopted at all, and won't have much impact on total output even if it is adopted. On the other hand, technology which relaxes a taut constraint likely will be adopted, and have a large impact on total output - assuming that the technology doesn't introduce an even more restrictive constraint! (Conversely, though, generalized efficient markets says that new technology which relaxes a taut constraint will be harder to discover in the first place - there was already an incentive to pick the low-hanging fruit.)