PlantUML uses Graphviz/DOT to compute node positionning for every UML diagrams (except Sequence Diagrams and Activity Beta Diagrams).
The fact that DOT computes automatically the position of node is a key feature, and algorithms implemented in
DOT usually give very good result.
However, there are some drawbacks of using DOT :
the computation is done by an external program (dot.exe on Windows, dot on linux), and that means that :
- PlantUML has to create a new process for each diagram, (and communication with this new process could be source of bugs).
- Users have to install DOT on their system, in addition of Java.
- PlantUML is not fully portable.
There is a work-in-progress to have
a full Java implementation of PlantUML.
However, even if this is somehow working, this is not finished yet.
Recently, some user points out
another possible solution
(We thank him by the way!).
Using both
VizJs (a port to Javascript of GraphViz)
and
J2V8 (a highly efficient JavaScript runtime for Java), it is theorically possible
to have a (almost) full Java implementation.
With the great help of
Andreas Studer that makes a lot of work to test various JavaScript engine, we are now able to
propose a working version.