The decline of programming books removed a constraint on programming language complexity. At one point, the basic set of books for Java was six volumes. That's when language books broke down from sheer complexity. The combination of Google search and Stack Overflow allowed programming to become more complex than anyone could keep in their head. C++ bloated to the point that people who used to be C++ language lawyers couldn't keep up.
This follows a general trend. Areas which used to be bounded by the limits of the human mind stopped being bounded that way some time back. This first appeared in corporate structure. Through the 1970s or so, there was an upper limit on corporate complexity. Beyond some point, connectivity problems started to choke the organization. There were classic ways around this, mainly dividing companies into sub-companies with their own profit lines. "The Concept of the Corporation" by Peter Drucker describes how General Motors did that. GM was at the time a group of loosely connected car companies under one corporate roof.
A few companies figured out scaling early. Sears was famous for having developed the "Schedule System", which reduced fulfillment overhead from O(N * M) to O(N log M). This allowed Sears to run a giant ordering plant out of Chicago to serve the whole country.
But many companies didn't scale well, and choked as they grew. Westinghouse is a classic example.
As computers came in, the scaling problems receded. Airlines got their reservation systems under control, and seat utilization went up. Logistics went from warehouses to fulfillment centers, with much shorter holding times in inventory. Chains no longer were limited in size - WalMart, McDonalds, and the big banks could expand to planetary scale. The giant corporate paper-pushing plants disappeared.
So did forced organizational simplicity. Companies had, at some level, to be simple. Otherwise they became unmanageable. As computerization proceeded, that constraint was relaxed.
Finance achieved previously unimaginable levels of complexity. Until the 1980s, most financial products were rather simple. Now, there's no limit, and the tail wags the dog. Futures markets are far bigger than the volume in the underlying commodity, and zero-sum activity dominates.
AI will accelerate this. There will be businesses no human can comprehend or manage.
This may not be productive but will be profitable for someone.
When we go back to early Java, the death of books just came from better IDEs, not even stack overflow (which wasn't there) or Google search (which had little to find). Something like IntelliJ made the very large reference section irrelevant, as you got to see source and Javadocs right there. Intellisense also found most of what you needed blindly. That was 90% of those 6 java books. You'd still see a need for specifics good explanations like, say, Java concurrency in practice for all the original low level primitives. Maybe some madman that could explain the initial implementation of the Calendar classes.
Either way, one needed far smaller books the moment all of that came in, especially because in Java, library code is very readable. Compare that to looking inside a C++ standard library: It's not impossible, but it's of a completely different nature of normal C++ we might write for a business.
> Compare that to looking inside a C++ standard library: It's not impossible, but it's of a completely different nature of normal C++ we might write for a business.
C++ isn't a language, it's a script. Like Latin, it can be used to express English, Polish and Indonesian.
Spanish ñ, Catalan or French ç, German ß. Similarly for ł and other Polish letters. It seems strictly speaking the latin alphabet cannot cover many european languages. But mostly we can say latin can express that. You can write "ss" for German and l for Polish, etc, so it can definitely be used. Source: whatssap messages.
Like Latin, C++98 was just a v1. By the way, what we call Latin now is already an evolved version, slightly tweaked from what Romans used. And before that, Latin itself was derived.
My point is that C++ lets you write in very different languages (or dialects your analogy if preference is) that at times appear barely related.
> There will be businesses no human can comprehend or manage. This may not be productive but will be profitable for someone.
Which also means that it will probably outstrip our ability to comprehend whether or not such things are actually crimes or whether they should be considered as such.
I think the complexity issue in science and engineering has also been growing for some time beyond what can be analyzed/designed by a person or a group with conventional software and math. Wolfram argues that some processes are so complex, only a computational method can solve them. If that is the case, AI might be the only path to help us in designing and discovering novel tech / science. It might be the bicycle for the mind that Jobs envisioned.
> There will be businesses no human can comprehend or manage.
If nobody neither fully created nor manages the business, then we probably shouldn't assume any property rights on it by anyone, therefore all the profits must go to the public.
I still find myself hoping (probably futilely) that Bjarne Stroustrop will come out with a new edition of The C++ Programming Language, to help me understand all the features that have been added to it since C++14...
Thank you! I knew that existed, but now that I read the synopsis I'm thinking that the C++20/23 material makes sense in this "tour" book... the C++11 (and earlier) material in The C++ Programming Language is like the basis for the language, and everything that came after is more advanced in usage. I guess.
Anyway, maybe all obvious observations but thank you nonetheless
Do you happen to have any links to more info about this schedule system. If I Google “sears schedule system” I get a bunch of results about vaccines, and if I append “logistics” the top result is your comment.
Here's a brief summary from Sears' archives.[1] I read a much better description in a business book once, but it's not online.
Here's the concept. The simple way to fulfill orders is Doordash Shopping. One person goes to a store and picks the entire order. Performance degrades with the size of the store. This takes O(orders * inventory size) effort.
If too many shoppers are trying to fill orders, they get in each other's way and the building traffic starts to choke. This is why Doordash Shopping has a big markup vs. Amazon.
The classic Sears schedule system takes the incoming order and breaks it down by department and picker. Pick slips are generated, originally by hand, and sent to the various pickers, originally by pneumatic tube. Pick slips have a 45 minute time window and a destination bin number. Pickers get pick slips, all of which are for items in their area, grab the item, and put it on a conveyor with the pick slip attached. The conveyor leads to the destination bin area, where orders are assembled in the bins. At the end of a 45 minute cycle, all bins are sent to order checking and outprocessing, and new empty bins are placed for the next fill cycle.
The order paperwork is already attached to the bin, so the checker checks off the items in the bin vs. the items on the order. Excess items from picker errors become go-backs; missing items are not charged to the customer. The total is computed and billed. The bin and paperwork go off to packing and shipping.
Each picker moves only short distances. No running around the giant warehouse.
That gets the overhead down to O(orders * log(inventory size)). Pneumatic tubes carry the data that drives the pickers, and conveyors do most of the carrying. The system can develop a backlog in the incoming order area, where it's obvious and can be managed. The picking areas don't usually choke, because their load is bounded by the number of bins per cycle.
It was all done with paper, forms, carbon paper, clipboards attached to totes, cash registers,
conveyors, and pneumatic tubes. Julius Rosenwald (1862-1932) designed the original system and became quite wealthy.
Sears should have become Amazon. They had the fulfillment system. They had catalog ordering working well. They never got the online front end right.
This follows a general trend. Areas which used to be bounded by the limits of the human mind stopped being bounded that way some time back. This first appeared in corporate structure. Through the 1970s or so, there was an upper limit on corporate complexity. Beyond some point, connectivity problems started to choke the organization. There were classic ways around this, mainly dividing companies into sub-companies with their own profit lines. "The Concept of the Corporation" by Peter Drucker describes how General Motors did that. GM was at the time a group of loosely connected car companies under one corporate roof.
A few companies figured out scaling early. Sears was famous for having developed the "Schedule System", which reduced fulfillment overhead from O(N * M) to O(N log M). This allowed Sears to run a giant ordering plant out of Chicago to serve the whole country. But many companies didn't scale well, and choked as they grew. Westinghouse is a classic example.
As computers came in, the scaling problems receded. Airlines got their reservation systems under control, and seat utilization went up. Logistics went from warehouses to fulfillment centers, with much shorter holding times in inventory. Chains no longer were limited in size - WalMart, McDonalds, and the big banks could expand to planetary scale. The giant corporate paper-pushing plants disappeared.
So did forced organizational simplicity. Companies had, at some level, to be simple. Otherwise they became unmanageable. As computerization proceeded, that constraint was relaxed.
Finance achieved previously unimaginable levels of complexity. Until the 1980s, most financial products were rather simple. Now, there's no limit, and the tail wags the dog. Futures markets are far bigger than the volume in the underlying commodity, and zero-sum activity dominates.
AI will accelerate this. There will be businesses no human can comprehend or manage. This may not be productive but will be profitable for someone.