3 ms·
Exactly. This is why all the UML-mania is b.s. A UML diagram of the high level classes in a project? Yes that is useful. And guess what? You can generate t
by phaedrus 18y ago
Exactly. This is why all the UML-mania is b.s. A UML diagram of the high level classes in a project? Yes that is useful. And guess what? You can generate that automatically from the code. But doing the entire app in UML, as some people would have us do? Yeah you can generate code from a UML diagram, but it is infinitely faster to type code than it is to dink around with funny Visio widgets and try to click inside tiny text boxes & select types from a drop down.
My college recently dropped Java from CS 1 and 2; instead they decide to use Alice (a graphical toy language) to teach all CS concepts. You want a loop? You drag a loop block on to the page. Need a condition on the loop? Select it from the drop down. Sounds neat and it is an interesting concept, but ultimately it's just a pain in the ass. Once a method gets bigger than a few lines, it's almost impossible to position the mouse to make the item drop in the right place. And writing a complex loop condition can be a tedious maze of drop down menus.
Purely visual code input methods are just not an efficient way to enter code. It's as hard to use as trying to crack eggs to make an omelet while only touching the eggs with a pair salad tongs.
These environments don't even address the central issue. Changing the representation of the code is just lipstick on a pig; the real problem is that software is hard. There is an essential something to a program (like QWAN) that can't be reduced. Wrapping it in goofy modeling doesn't change the essential difficulty.
In fact, software modeled graphically is actually harder to understand than the text version, because software is full of relationships that are semantic not spatial. The relationships are not 3 dimensional or 2 dimensional and trying to squish that onto a visual representation just makes things worse. On the other hand, humans have this wonderful ability to comprehend nuances of semantic meaning in prose. The textual representation of software is the "right" model for it.