Reusing pieces of code is like picking off sentences from other people's stories and trying to make a magazine article.
Early Apple machines - don't know how to answer what it was like since there were so few tools. Just had to keep debugging by isolating a problem, looking at memory in the limited debugging (weaker than the DOS DEBUG and no symbols) patch and retry and then re-program, download and try again. And again.
Patents? Disappointed? Don't think of it that way. Software patents weren't feasible then so we chose not to risk $10,000.
This is an important part of the Internet Dynamic - providing opportunity and not guarantees.