5 ms·
UML can be a great communication tool in specific situations but when it becomes a religion your organization will suffer. I'm older than most here, drank the
by smoyer 10y ago
UML can be a great communication tool in specific situations but when it becomes a religion your organization will suffer. I'm older than most here, drank the cool-aid that predicted code generation and round tripping but spit it back up before the poison had a chance to set in.
A bonus comment for the youngin's ... When you hear that some new system will allow "the common man" to write his own software without developers, smile and agree with them because they'll come back when it doesn't go as planned and you can charge a higher rate for the resulting expedited project.
EDIT:
I should also admit that I liked (like?) the idea of writing code using diagrams. In the '80s I wrote a program I called "Flo-Pro" in Turbo C that never quite became self-compiling. It wasn't at all OOPsish or FP. In the '90s I wrote several tools in Prograph [0] (now known as Marten) but was stymied by the fact that I was the only one in the company using the tool. In the early aughts, I tried URL tools that promised to write my code from the diagrams - it worked for very simple code but I never saw round-tripping work.
I love drawings in general - my coworkers joke that it's not a meeting unless I have a dry-erase marker in my hand. But those diagrams are invariably system-level, architectural drawings. As others have noted, I also appreciate ERD as a way to visualize relationships in RDBMS. So as much as I like the idea, development stays in the world of text - I'm not holding my breath for some magic bullet.
[0] http://www.andescotia.com/ http://www.andescotia.com/
- JustSomeNobody 10y agoThe youngins say AI will solve this. They're wrong.
- TeMPOraL 10y agoA human-like AI will sure solve this - because the only way for "common man" to make software without developers is to have something to do the work of dealing with complexity - figuring out the precise details, handling edge cases in a way consistent with the original intent, etc. But why wait for a powerful AI, if you can hire / enslave developers today?
- ainot 10y ago> handling edge cases in a way consistent with the original intent, etc. That's where we spend the majority of our time and always where things go horribly wrong in SciFi movies.
- taneq 10y agoAGI will solve it. I think we've got a while yet before that becomes an issue for us devs though.
- ainot 10y agoAGI sounds like fuzzy logic. We know how far that got. It will make some companies money though, it's snake oil. Computers even thousands of years from now will never be able to do what a programmer with 1 year of experience can do today, it's the advantage of being human.
- inimino 10y agoComputers have less than a century of history so far and you're already able to predict the next thousands of years? Sounds like a religious belief to me.
- taneq 10y agoAt the end of 2014, nobody disagreed with this comic: http://xkcd.com/1425/ http://xkcd.com/1425/ Halfway through 2016, "a programmer with 1 year of experience" using nothing by Python, numpy and a couple of spare weeks could roll their own convolutional neural net to identify images with high-90-percent accuracy. I dunno about you but that sounds like a significant advance to me.
- ainot 10y ago
- flukus 10y agoAi is another thing that's always just around the corner, probably the same corner as graphical programming.
- agumonkey 10y agoI drifted on the 2nd uml wave (~profiles, rup, bpmn, mof, you name it). The day I went back to compilation/graph/ml/lisp I cried of hapiness. There's a lot to say about uml and the "model" approach history. One bit of trivia, I did my internship at an old IBM acquisition, that shop had made its own process/modeling philosophy with a dedicated environment in the 80s (the reason it got successul with some big clients thus IBM interest). Coming there I thought it would be yet another rational-like thing. But that old console program had live modeling relationship between layers, the model thang was implicit, a beautiful thing. Now replaced by whatever Eclipse based rational children IBM forced onto the teams now.
- taneq 10y ago> some new system will allow "the common man" to write his own software without developers "The common man" often seems to think that mastering the syntax of a programming language is the hard bit, and that replacing textual syntax with some pretty graphics will magically make software easy to build. Of course, the real challenge is accurately specifying what you're trying to accomplish, and exactly how you want it to happen. Everything else is just window-dressing.
- lostcolony 10y agoAnd of course, the fact that there is always a grammar. That grammar might be images being linked together, it might be text, but it ultimately comes down to learning a grammar, breaking down your problem to fit it, and then building a solution using that grammar. Changing the grammar only really makes the first part approachable, and that's not actually the hard part.
- rbosinger 10y agoPer your bonus comment: Imagine an app where you can fix your own car without any mechanical knowledge. The user simply explains the problem to the app and the app figures it out. In every scenario the app ends up directing you to an actual mechanic. That's my best analogy to "programming without programming".
- smoyer 10y agoyup, because the tools in the drawers of your roll-away have nuances you have to learn - a syntax if you will. And each of the potentially bad parts you need to replace has interactions with other parts of the car (the system). I just changed the alternator on my truck - you have to wait for the exhaust to cool before you do it, disconnect the battery and then punch the security code into the radio when you're done. A business person trying to write their own software (assuming they're not also a developer and that they believe some magic tool will let them complete it) will end up with painfully burned hands in the process and at the end they won't be blissfully listening to music again.
- kevin_thibedeau 10y agoCode generation with 2D diagrams is a productivity killer. There is a reason why digital circuit design has shifted to use of HDLs. You can be far more productive describing behavior in text than shepherding boxes around on a schematic and slavishly working to make the interconnect look nice. With text, it's easy to make modifications. You have the power of VCS tools available to track changes. It's easier to partition work across multiple people. You aren't tied to proprietary storage formats and tooling that could disappear when their creators go under.