4 ms·
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
by Animats 5mo ago
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.
- teeray 5mo ago> 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.
- hibikir 5mo agoWhen 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.
- nl 5mo ago> Maybe some madman that could explain the initial implementation of the Calendar classes. java.util.Date (which was all there was until I think Java 1.3?) was truly terrible and apparently was written by an intern at Sun. java.util.Calendar was a mess and horrible to use but mostly correct.
- brnt 5mo ago> 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.
- klausa 5mo agoLatin can't be used to express Polish; at least not without extra letters, at which point I think it ceases to be "just" Latin script? But maybe that was also your point.
- brnt 5mo agoLike 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.
- dmantis 5mo ago> 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.
- jrowen 5mo agoCheck and mate, capitalists!
- pjmlp 5mo agoI was certainly fine doing Java with one book + Javadoc. Java Unleashed, first edition 1996.
- geraneum 5mo agoI sometimes wonder if we’re losing HN for good.
- benterix 5mo ago> There will be businesses no human can comprehend or manage. I believe we're getting close to that in pure math.
- musebox35 5mo agoI 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.
- lukeasrodgers 5mo agoDo 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.
- Animats 5mo agoHere'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. [1] https://www.searsarchives.claeys.co/history/history1900s.html https://www.searsarchives.claeys.co/history/history1900s.htm...
- atribecalledqst 5mo agoI 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...
- floxy 5mo agoIf you haven't seen "A Tour of C++": https://stroustrup.com/tour3.html https://stroustrup.com/tour3.html
- atribecalledqst 5mo agoThank 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