Good riddance. UML is part of the infinite-complexity infinitely-layered culture around the Java language in the late 90's and early 00's. Where OO-supremacist "system architects" were trying to split software development into the first-class flying, conference-attending chosen few who could do modelling, and the unwashed masses who were to be replaceable, underpaid, be-glad-you-earn-more-than-minimum-wage outsourced code monkeys.
Mentally I have this bundled in with 4GLs and the perennial visual programming environments, revolving around the idea that the act of coding was the expensive part rather than the application complexity.
I understand the appeal of saying you can ship the diagram rather than writing code based on it but it’s always felt like the kind of thing which leads to a demo cliff where the simple parts are appealing but anything non-trivial becomes unmanageable.
> revolving around the idea that the act of coding was the expensive part rather than the application complexity.
I just can’t wrap my head around this idea. If the act of coding isn’t the expensive part, then why should I have to spend so much effort coding and why can’t my effort be focused on the application complexity?
I agree that UML and past visual programming environments weren’t doing a good job of splitting these concepts, but I don’t buy that this means it’s impossible to split this.
There’s definitely room to shift the work but I think it’s really easy to look at the amount of time spent writing code after the specification is “done” and say that it’s overhead without questioning how much of it was really due to errors, gaps, or misunderstandings in the spec (thinking memorably of a couple of projects “overruns” where the managers who thought the plan was done were wildly out of touch with their direct reports who’d been excluded from the planning process).
I think a lot of business people also liked the idea of having one expensive architect giving diagrams to cheaper coders (probably in a different county), avoiding needing to give higher pay and social status than they needed to offer to be able to hire decent programmers. Something like UML is appealing if you want something you can look at to say it’s ready to hand over to be implemented and the numbers salespeople toss around for projected cost savings can make it appealing to pretend really hard that it’s that simple.