Remix.run Logo
zmmmmm 9 days ago

It's definitely much needed.

I use PlantUML for most diagramming but for anything with more than about 5 components in it I'm spending 20-30% of my time desperately trying to tweak the layout with hints.

It's an interesting approach to embed comments and then build that into the layout engine. I've always thought it would solve a lot of my issues if I could just lock the coordinates for certain components and then let the layout engine do the rest with those as hard constraints. This looks like something similar to that approach.

I really want this because the alternative is to spill over to completely manually maintained diagrams using GUI tools which then can't be easily integrated with source control - I want the same commit that changes the code to also change the architecture diagram for that code. Then it is part of code review and integrates to the whole process well.

Anduia 9 days ago | parent [-]

I use PlantUML because it renders in GitLab's markdown, including wikis, MD docs and even PR comments. However, I have to use Mermaid for projects hosted on GitHub.

The hassle of tweaking the layout in puml, such as pairing elements with an invisible connections and groups, adding or removing dashes from the arrows in class diagrams... is gone because Mermaid is simply inferior in that sense.

Mermaid always feels like it's in beta and I don't understand why GitHub ignores the request to support puml (1). It seems that adoption of diagrams as code is tied to what is supported by major vendors and they don't care enough. Or maybe it is because mermaidchart made an official vscode plugin, who knows.

While I agree that improvements are needed, I'm not convinced that creating a third standard is the answer. What I would like is to be able to assign weights to my elements and let the renderer do the work (not set x and y coordinates like in oxdraw).

[1] https://github.com/orgs/community/discussions/10111

zmmmmm 8 days ago | parent [-]

Oh yes I'm completely with you on wishing Github would support PlantUML. It's almost trivial implementation wise, it's highly embeddable.

It's precisely because I do like it that I want it to scale up better to more complex diagrams. I basically can't push it forward as a universal standard in my org because it fails above a certain complexity threshold and I really can't push for teaching everybody a thousand ways to tweak the diagrams to coax it into doing the right thing (and even then, one small change and it may completely rearrange the output).