Mermaid vs PlantUML vs HackerDraw: Which One Is Best For You?

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 พ.ย. 2024

ความคิดเห็น • 64

  • @ArjanCodes
    @ArjanCodes  ปีที่แล้ว

    💡 Get my FREE 7-step guide to help you consistently design great software: arjancodes.com/designguide.

  • @alexanderkorn2009
    @alexanderkorn2009 2 ปีที่แล้ว +15

    I can't describe how much times is better to watch your videos instead of reading about the same things in books or manuals, etc. Just great!

    • @ArjanCodes
      @ArjanCodes  2 ปีที่แล้ว

      Thanks so much Alexander, happy you find the videos helpful!

  • @timoreichl5533
    @timoreichl5533 2 ปีที่แล้ว +3

    About plantuml: Just run the official docker container locally and forward port 8080 to the host. Done. :)

  • @codeshowbr
    @codeshowbr 2 ปีที่แล้ว +10

    excalidraw is my preference

  • @jdlopez131
    @jdlopez131 หลายเดือนก่อน

    Min 11:50 is all I needed to hear. Only Mermaid integrates nicely into VS Code

  • @CheckeeAintAmused
    @CheckeeAintAmused 2 ปีที่แล้ว +4

    I like mermaid for simple tasks that I know aren't going to become any more complicated in the future, however it has a number of shortcomings that make it simply impossible to use for anything more professional.
    In short, it's good for basic flowcharts, but almost every other type of diagram is broken or doesn't have pretty fundamental diagram features implemented.
    Here are a few serious shortcomings I can think of off the top of my head:
    1) The function duration markers on interaction diagrams are essentially broken (and I think the problem is with the way the syntax is structured so it's not even easily fixable). Go try and implement an action that happens within the time that another action is happening (e.e try making a diagram for the observer pattern). You can't do it.
    2) For a number of diagrams, certain labels are required to be single words which has caused me some headaches.
    3) There's no "subgraph" type feature implemented for class diagrams, (as there is for flowcharts,) so it's hard to show how a group of classes (eg a module/package) interacts with another.
    4) There's no option to add code snippets within class diagrams.

  • @virtualraider
    @virtualraider 2 ปีที่แล้ว +8

    I find that for higher level diagrams Mermaid is the way to go. Drawing tools are much more flexible, but that's also a disadvantage because we have to waste time selecting and placing the shapes, connectors, spacing, etc, all of which are unrelated to the end goal.
    I only use drawing tools sparingly. By the way, you can use CSS to prettify Mermaid, but again, consumes time away from what we usually want: coding 😅

    • @ArjanCodes
      @ArjanCodes  2 ปีที่แล้ว +3

      Same here. I do like Mermaid as a part of a design/feature document, but really aimed at high-level descriptions that are quicker to see in a diagram than inferring it from the text.

  • @ffvbnbvxdvhggb
    @ffvbnbvxdvhggb 2 ปีที่แล้ว +13

    I found Mermaid thanks to you Arjan, but I eventually tried using it for a project using mypy typing and I couldn't find a way to have it show the type of non-primitive typed objects. I ended up finding PlantUML as a way to still have the benefits of Mermaid but with that additional functionality (and I was surprised at how little work was required to reformat the markdown to switch.)

    • @ArjanCodes
      @ArjanCodes  2 ปีที่แล้ว +5

      You're right - they're pretty similar in terms of syntax, except PlantUML has a lot more functionality than Mermaid indeed.

  • @gtd9536
    @gtd9536 2 ปีที่แล้ว +1

    At every company I've been to that has confluence, also has Plant UML plugin. However, it's not enabled by default for everyone. You need to create a page, select insert macro, select additional macros and somewhere under there, you insert plantuml macro. Once you do that, the PlantUML plugin is installed.
    You can write and render diagrams.
    However, everyone else will NOT see your PlantUML diagrams. They will see your code. So in order for consumers to see your diagrams, they will have to go through the same awkward process. So they will have to create a dummy page, and insert macro.
    PlantUML is likely disabled by default because rendering PlantUML diagrams is probably (a relatively) expensive process on the server side. It's possible that admins might not have the plugin installed for you to enable.
    I hope that helps.

  • @MattiasLarsen-no1xj
    @MattiasLarsen-no1xj 5 หลายเดือนก่อน

    Thanks! Great job explaining the pros and cons with these tools. I was looking to learn more about mermaid and you also got me intrigued about HackerDraw.

    • @ArjanCodes
      @ArjanCodes  5 หลายเดือนก่อน

      I'm glad you enjoyed the video!

  • @Methodician
    @Methodician 9 หลายเดือนก่อน

    Thank you this was super helpful! I have been deliberating on which diagram-as-code tool to use and you helped clear it right up. I'll be using PlantUML because I work for a corporation that likes old things and may request levels of customization beyond my expectations or wishes 😀Also - I found it pretty straight-forward to do the rendering locally within VSCode.

  • @KosmoKot-q2e
    @KosmoKot-q2e ปีที่แล้ว

    WOW PlantUML available for JSON, thanks for that news, I missed that! Great

  • @michaelpiefel8149
    @michaelpiefel8149 2 ปีที่แล้ว +2

    Nice video, and thank you. However, I notice that most of the disadvantages you note for PlantUML are actually shortcomings of the VSCode plugin. For other environments the experience here may be quite different. Perhaps you can mention that in your description, so the baseline is clear.

  • @gtd9536
    @gtd9536 2 ปีที่แล้ว +2

    Community version of pycharm has plant UML plug-in that does not require setting up a server.

  • @RageOrangeBG
    @RageOrangeBG 2 ปีที่แล้ว +6

    Kroki is the best!

    • @TauvicRitter
      @TauvicRitter 6 หลายเดือนก่อน

      I love their chips

  • @patytrico
    @patytrico 2 ปีที่แล้ว

    You could always activate Ghostery to kill the ads :) Thank you for the analysis.

  • @RobertHana
    @RobertHana ปีที่แล้ว

    Thanks for these videos! I wanted to add that you can start up a Docker container with a rendering server for Mermaid and/or PlantUML, I think.

  • @mlenox
    @mlenox 2 ปีที่แล้ว

    Please! A video about packaging and virtual environment tools, how to make them work with VSCode and concerns about them stepping on (or bypassing) each other.

  • @mrgyani
    @mrgyani 8 หลายเดือนก่อน

    HackerDraw looks really neat. Love it.
    Thanks for the resources.

    • @ArjanCodes
      @ArjanCodes  8 หลายเดือนก่อน +1

      Glad you found it helpful!

  •  ปีที่แล้ว +1

    Great content. Useful!!!

    • @ArjanCodes
      @ArjanCodes  ปีที่แล้ว

      Glad it was helpful!

  • @universecode1101
    @universecode1101 2 ปีที่แล้ว +3

    thanks for sharing 😊

  • @dagsonntag
    @dagsonntag 5 หลายเดือนก่อน

    Would love for you to revisit the topic with any new libraries you use to make architectural visualisations. I am thinking on for example "diagrams" and your take on that library...

    • @ArjanCodes
      @ArjanCodes  5 หลายเดือนก่อน

      Thanks for the suggestion!

  • @_baco
    @_baco 2 ปีที่แล้ว +2

    Do you know about C4 model diagrams? Does Mermaid have a way (plugin or native) to generate those diagrams?

    • @phuongthaonguyen8571
      @phuongthaonguyen8571 2 ปีที่แล้ว +1

      Yeah Mermaid does have C4 model diagram but those are in experimental phase.

  • @awunnenb
    @awunnenb 2 ปีที่แล้ว +1

    Thanks. Is it possible to use Material Icons instead of FA in mermaid?

  • @SaidElnaffar
    @SaidElnaffar ปีที่แล้ว +1

    Very useful!

  • @brianpack369
    @brianpack369 ปีที่แล้ว

    I use PlantUML with some bash scripts to compile and view the models in VIM. It kind of sucks, tbh. The compiler doesn't tell you why your code failed, only where, and there are syntactical inconsistencies: like how code blocks are sometimes defined with curly braces, keywords preceded by @, or keywords not preceded by @. It's also hard--but not impossible--to manipulate the layout of the model. The tool defiantly needs some work, but there's nothing better that I've found.

  • @muamel1
    @muamel1 ปีที่แล้ว

    It's better to create CD inside visual studio if u working on it that will reduce a lot of time.

  • @GoogleUser-ee8ro
    @GoogleUser-ee8ro ปีที่แล้ว

    which tool integrates the best (easiest to use) with chatGPT?

  • @agar.iodestiny8677
    @agar.iodestiny8677 2 ปีที่แล้ว

    once again great content

  • @TomatePerita
    @TomatePerita 2 ปีที่แล้ว

    Hi Arjan, Do you think you'd be able to make a video on snakemake? It's a great system for developing pipelines but fairly hard to get into with the available documentation / tutorials. Big fan of your videos!

  • @BhargavSushant
    @BhargavSushant ปีที่แล้ว

    Miro is well suited for our needs

    • @a0um
      @a0um 9 หลายเดือนก่อน

      Does Miro have a textual notation for diagrams?

  • @RicardoSoeAgnie
    @RicardoSoeAgnie 8 หลายเดือนก่อน

    What do you tink of diagrams from mingrammer?

  • @DuniC0
    @DuniC0 2 ปีที่แล้ว

    In my company the've PlantUML integrated with Confluence.

  • @xseman
    @xseman 2 ปีที่แล้ว

    GitLab support Plantuml out of the box

  • @xtrailz
    @xtrailz 2 ปีที่แล้ว

    Why do you not use an adblocker? there's no reason to see ads at all

  • @whkoh7619
    @whkoh7619 2 ปีที่แล้ว +1

    Mermaid!

  • @falsedragon33
    @falsedragon33 2 ปีที่แล้ว +1

    Like asciidoc, I wish plantuml had more rendering support.

    • @vb9950
      @vb9950 2 ปีที่แล้ว

      me too...

  • @snakedoc9533
    @snakedoc9533 9 หลายเดือนก่อน

    HackerDraw looks like someone just forked Excalidraw

  • @danielcrompton7818
    @danielcrompton7818 7 หลายเดือนก่อน

    What about GraphViz?

  • @oumardicko5593
    @oumardicko5593 2 ปีที่แล้ว

    Drawio does pretty much anything you want

  • @SUGATORAY
    @SUGATORAY 2 ปีที่แล้ว

    Lol 😂 best joke: “corporate, for really corporate people” 👏👏

  • @opodendorf
    @opodendorf 8 หลายเดือนก่อน

    Not a good comparison, Hackerdraw is the pear among two apples here.
    Unfortunately, Mermaid doesn't have a diagram type for Objects.The fact that you criticize the different syntaxes (in Mermaid) for the arrows in the different diagrams and call them inconsistent shows that you don't seem to have much knowledge of the different diagram types.

  • @cesaregb
    @cesaregb หลายเดือนก่อน

    Holly bias.

  • @donwald3436
    @donwald3436 2 ปีที่แล้ว

    Well if you're using macroshitCode then that's your fault.

  • @ari_archer
    @ari_archer 2 ปีที่แล้ว +1

    Dot, like the dot graphics language
    Wikipedia ID: DOT_(graph_description_language)

    • @ArjanCodes
      @ArjanCodes  2 ปีที่แล้ว

      Thanks for sharing!

    • @90hijacked
      @90hijacked 2 ปีที่แล้ว +1

      My first thought, Why not just use graphviz...

    • @ari_archer
      @ari_archer 2 ปีที่แล้ว

      @@ArjanCodes :)

    • @michaelcorvin1129
      @michaelcorvin1129 2 ปีที่แล้ว +1

      @@90hijacked PlantUML is built on top of graphviz & just adds markup syntax for UML.