1. 18
  1. 14
    1. It was designed not to build and maintain software, but to sell consultant services and expensive tooling, and to a lesser degree, placate various committees
    2. the software it was tied to was immensely expensive, and mind-bogglingly terrible. And as HWayne has mentioned, even the most expansive version of Rational still had a lot of gaps when it comes to keeping things in sync. And nobody could afford the most expansive versions of Rational.
    1. 2

      The bullet point of “no roundtripping” is really a big gut shot, I think.

      Also I see a lot of people just using Google Slides instead.

      1. 1

        Why? It was associated “en masse” primarily with “class diagrams” and to a much lesser degree “sequence diagrams, both largely associated with OO. Object orientation has been (without real justification) going out of fashion for some time. It is increasingly becoming a meme today that it is simply bad, obsolete, a mistake or a corporate conspiracy. One used by the ignorant who knows not the wonders of functional or procedural programming.

        1. 4

          Sequence diagrams are great. I’ve used them in a number of ways outside OO, as well.

          1. 2

            Sequence diagrams might be the only formal diagram I still use. They’re especially helpful for explaining/documenting how several distinct systems interact.

            1. 2

              They can form the basis of a nice “fractal” / “zooming” exposition of how systems work, too. Sequence diagrams for the high-level system components, all the way down to API calls.

              Years ago (2006?) I prototyped a thing that hooked .NET CLR debugging APIs to generate Visio sequence diagrams from running code. Even back then they were one of the few formal diagrams I used.

          2. 2

            Object orientation has been (without real justification) going out of fashion for some time. It is increasingly becoming a meme today that it is simply bad, obsolete, a mistake or a corporate conspiracy. One used by the ignorant who knows not the wonders of functional or procedural programming.

            Citation needed.

            I don’t doubt that people on programming forums often say things like that. I do doubt very much that their statements are actually representative of programming as a field.

            1. 5

              The statement is a bit too broad. A lot of OOP is conflated with inheritance.

              In Java, unnecessary inheritance has been demonized as lasagna code, e.g., enterprise fizzbuzz. Java developers have been generally moving toward favoring composition over inheritence.

              The Go programming language doesn’t support inheritance, and has poor (imo) support for polymorphism. The fact that Go has become fairly popular is probably the strongest evidence that OOP is in decline. Likewise, Rust has been the most loved programming language for several years in a row. Rust also has negligible support for inheritance (albeit great polymorphism).

              As far as I can tell, the only OOP pillar that remains unassailed is encapsulation. Popular languages that lack strong support for encapsulation (e.g. Python) are generally criticized for this point.

              1. 3

                JavaScript has been eating the world lately, and I don’t think anyone would deny that it’s an object-oriented language, despite its lack of traditional inheritance. Go is popular, but I think it’s debatable whether Go’s popularity is attributable to rejection of object-oriented programming.

                And most of your example links are, again, from the relatively insular world of things written on/by/for programming forums, which I continue to claim are not representative.