Hacker News new | ask | show | jobs
by gcb0 2848 days ago
I love how everyone spends years drawing diagrams with mouse torture in visio, OmniGraffle, licid, etc.

eventually everyone will find out about plantuml (puml) which generates diagrams of all kinds via a simple source file and wonder how they could ever live without it.

5 comments

Pros:

+ It's all plaintext. I love working with plaintext for all the usual benefits, so this fits.

+ PUML renderer is technically a free-to-download JAR, so it can presumably[0] integrate well with my Org-mode life.

Cons:

- Try to draw anything more complicated than three boxes and an arrow, and you'll be spending 90% of the time fighting the layout engine.

- It's even worse when you have your own opinion about the desired layout. No way to do that reliably, the result is very brittle.

I generally like it, but I'd like it 100x more if there was a way to explicitly pin some component to absolute coordinates. Or at least a better way for giving layout hints than soft constraints introduced through invisible links.

--

EDIT: A random idea if anyone is developing something PUML-like:

How about separating out layouting a bit, and letting me type in something like that:

  A     F    G
  B  C  D
           E H
And then continue with regular PUML code:

  package "core" #A {
     [something]
     [something-else]
  }

  ...

  [some-component #D]-->[some-component #E]

  ...
Basically, I wish I could draw a picture representing the rough layout of key image components, and have this as a hard constraint on positioning other elements.

--

[0] - Presumably, because I gave up on it after couple large-ish diagrams, just before my use has reached the threshold above which I consider Emacs integration.

This is my main gripe with plantUML as well. It's an awesome tool, but you either have to surrender to the layout engine or lose your sanity.

It is especially frustrating when you add one item to a diagram and ALL the items shift around to completely new places.

I hope you don't mind, but I submitted your excellent idea to the Mermaid diagram folks: https://github.com/knsv/mermaid/issues/270#issuecomment-4170...
I don't; in fact, I very much appreciate it. This is a kind of thing I'd pursue if I didn't already have higher-priority work and personal projects, so I'd love if someone else could try this out.
Mermaid js does that though, and many notetaking apps integrate with it

Personally Draw.io is the best freeapp already out there (online based or desktop), but lucidchart for paid is great too (much better print capabilities)

Mermaid.js is excellent, and takes very little time to learn. The quick render is VS Code is super useful for throwing together diagrams quickly
Let me help you with that…

http://plantuml.com

I agree the diagrams from text is what's needed, since they can be maintained in version control, or even just maintained. Since so many diagrams I look at are produced to share a message and become out of date almost instantly. Developers work in text, so should the visualization tools.
Also https://www.planttext.com/, which is a website with a text field linked to a PlantUML instance somewhere. It's what I use when I'm too lazy to install PlantUML locally.
Not so sure about that - I spent a few weeks this spring trying to badger PlantUML into generating the diagrams I wanted to include in a piece of documentation, and I'd much rather have used an ordinary mouse-based graphics tool where I could have simply put things where I wanted them to go.
Is it possible to have best of both worlds, not having to worry about layout engines. But you can check into version control
Back in my day, everyone just used graphviz. Heck, OmniGraffle's diagram support was (is?) based on graphviz. Have things gotten much better since then? Graphviz was always hard to beat.