5 ms·
This article could do with a modern retrospective and update. Who refers to "expert systems" now?
by nuc1e0n 4y ago
This article could do with a modern retrospective and update. Who refers to "expert systems" now?
- 082349872349872 4y agoOn the contrary, I found the juxtaposition of archaic vocabulary alongside propositions which were not only true then but are still true today to be the most compelling part of his argument. (Brooks, who referenced Goldstine/von Neumann and even Aristotle, certainly would not mind if we enjoyed his article in its context) "ὥσπερ τὸ πῦρ καὶ ἐνθάδε καὶ ἐν Πέρσαις καίει"
- nuc1e0n 4y agoBut would those Persians know what a fire extinguisher is for today?
- pm215 4y agoBrooks wrote a retrospective on it 9 years later, _"No Silver Bullet" Refired_, which appears as a chapter in the 20th anniversary edition of _The Mythical Man-Month_. Of course that is still 25 years ago now, so perhaps we should have a retrospective of the retrospective :-)
- dcminter 4y agoRefined rather than "Refired" ... though your version would make a very good title for the next retrospective IMO!
- pm215 4y agoOops, yes. I couldn't quite remember the title (my copy of the book is at home), and googling found people claiming both Refired and Refined, so I made my best guess...
- deleted 4y ago[deleted]
- ncmncm 4y agoOne thing he got very, very wrong: technological advances -- faster computers, better languages, better compilers, better editors -- have blown programmer productivity through the roof. Another is that "object-oriented" programming turned out not to be very important, and rather a distraction.
- the_af 4y agoI think you're being unfair. Brooks did mention those kinds of advances, he just didn't consider them magical. For example, from Wikipedia's summary (which aligns with what I remember from my own reading): > "While Brooks insists that there is no one silver bullet, he believes that a series of innovations attacking essential complexity could lead to significant improvements. One technology that had made significant improvement in the area of accidental complexity was the invention of high-level programming languages, such as Ada." The core of "essential" vs "accidental" complexity remains very insightful. If, like Brooks argues, we are mostly hitting essential complexity now, no single programming language or IDE is going to provide a radically large improvement anymore. "Productivity" is a tricky beast. What does it even mean? Programmers typing fast and getting code into production quickly? But what about the success and correctness of the systems they write? What about bugs and performance problems? What about incorrect or misunderstood requirements? Have we solved those?
- taffer 4y ago> like Brooks argues, we are mostly hitting essential complexity now I'm a bit skeptical about this. If you look at random backend code, you'll find lots of boilerplate, control structures, error handling, dealing with different data structures, performance optimizations. All of that I would consider random complexity. All of that is there only because computers can't figure these things out on their own.
- beckingz 4y agocontrol structures and error handling sound like essential complexity to me, as that's effectively business logic / system requirements.
- Spooky23 4y agoThey still exist in rules engines. Plenty of bullshitty “AI” features are more like expert systems.
- MarkSweep 4y agoThere is at least one that I know of: https://danluu.com/essential-complexity/ https://danluu.com/essential-complexity/ For my own contribution, I think machine learning may be a good refutation of No Silver Bullet. It removes the need for the “essential complexity” of solving a problem. Like imagine trying to make GitHub copilot before machine learning. In Brooks’s world, the essential complexity of designing algorithms and data structures would indeed make this very difficult to do. But by using machine learning, you just let the neural net figure out the problem.