[HN Gopher] I wrote a tool in Go to write Sequence Diagrams in Go
___________________________________________________________________
I wrote a tool in Go to write Sequence Diagrams in Go
Author : icemanx
Score : 54 points
Date : 2023-04-27 12:38 UTC (1 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| pachico wrote:
| I use PlantUML every single day. It can be embedded in Markdown
| docs and even Confluence (which I hate but I'm forced to use).
|
| Diagram as Code is simply awesome. My only issue is how ugly it
| looks, even using themes.
|
| I wish an application managed to be a drop in replacement that
| looked like it wasn't drawn in MS Paint in 1996.
| huydotnet wrote:
| There's an AI solution for this https://chatuml.com/
|
| OK, I know the author are against AI, but just in case anyone
| want to see an AI solution.
| fleur-de-lotus wrote:
| Wait, they ask for your api key and they promise not to store
| it !
| huydotnet wrote:
| Other OpenAI-based projects does that too, and there's an
| option to not provide your API key as well
| https://chatuml.com/early-bird
| cle wrote:
| The author explicitly discusses requirements:
|
| > You don't need to download any dependencies such as plantUML
| or Graphviz, which is what most of the tools out there require
| and what was also my motivation to start this project. go-uml
| is using a 2D graphics engine written 100% in Go
| https://github.com/fogleman/gg
|
| This is not a solution for these requirements.
| alecnotthompson wrote:
| According to author, they're either fat or have never ridden in a
| car.
| Xeronate wrote:
| Nice work, but seems like WSD accomplishes the same with a nicer
| syntax and hosted interface https://www.websequencediagrams.com/
| Veuxdo wrote:
| I'm a bit biased, but I feel diagrams-as-code should use a
| stateless, declarative language (like json or yaml) and not a
| programming language. Programming languages have so much
| functionality that just doesn't apply to the output you're
| generating.
|
| I guess the argument is "I already know Go" (or Python etc.). But
| you probably already know json (yaml), too. And if not, it won't
| take long to learn.
| sn9 wrote:
| I've used python for graphviz just because I wanted some
| looping for many-to-one or one-to-many relationships and the
| auto-complete that comes from anything with an LSP or Python
| mode.
|
| Honestly I'd use it just for the auto-complete.
|
| (Admittedly, I didn't look too hard for dedicated editing
| environments that could do it for DOT files specifically. I
| just wanted to make something real quick.)
| datadeft wrote:
| Like D2? I love it.
|
| https://play.d2lang.com/
| taeric wrote:
| Depends heavily on the diagram?
|
| I go farther, all told. I think any sort of diagram should
| almost certainly be process/pipeline based. Parts can be
| generated by a declarative markup, certainly. But you need a
| pipeline to "hand tune" things or you will end with diagrams
| that are clearly generated by a program. Fine for some things,
| sure. But there is a reason most of the diagrams that you
| remember the looks of were bespoke authored in a much more
| graphical environment.
| smoyer wrote:
| If this was used as a generator, you could include actual
| type names, godoc comments (on mouse over for smarter image
| formats), etc. In this case, it's the fact that the rest of
| the code could provide context.
| maister wrote:
| > Warning - AI not welcome here
|
| > Because of my own personal philosophy regarding technology and
| AI, all the code in this repository that was written by me - I
| wrote 100% on my own. There is and will be no usage of Github Co-
| Pilot or any other AI tool. I became a software developer because
| of my passion for our craft - Software Engineering. I build this
| tool because I enjoy programming. Every single line of code
| you'll read in this repo, that was written by me, is produced
| first in my mind and then manifested into reality through my
| hands. I encourage any contributor to follow the same principle,
| though I can't and don't want to put any restrictions on this.
| Just like people stopped walking because they commute by cars and
| trains, which caused an increase in obesity and illness, I
| believe that the massive usage of AI will cause people to stop
| thinking and using their minds and the resulting havoc is
| unthinkable.
|
| AI Gatekeeping... What a time to be alive!
| mevric wrote:
| Love the thought mentioned the warning section
| https://github.com/MrIceman/go-uml#warning---ai-not-welcome-...
| warent wrote:
| I don't. It's fine making a personal choice to not use AI, but
| to go on to just openly insult anyone who uses AI is absurd and
| too far. Everyone is allowed their choices and we should
| respect that. The doom-whispering is not charming or
| insightful, good grief.
| robbywashere_ wrote:
| This is a typical Ai-ist stance, us warm blooded norm-coders
| are absolutely sick of this rhetoric!
| kitd wrote:
| I didn't read any insult. I don't agree with the author but
| all I perceived was encouragement against using AI, not
| personal denigration for doing so.
| [deleted]
| mevric wrote:
| Agreed. I use AI to speed up my work and love the process of
| discovering new ideas.
|
| I was referring to the following line.
|
| "Just like people stopped walking because they commute by
| cars and trains, which caused an increase in obesity and
| illness"
| tester457 wrote:
| If LLMs are transportation, here's to hoping we have a
| Netherlands like solution, with lots of bicycles and trains
| for longer distances, meaning lots of healthy people.
|
| Instead of "car-dependency" we should try to use LLMs as
| bicycles for the mind, still putting effort into every
| mental pedal.
| IshKebab wrote:
| But people didn't stop walking...
| cirrus3 wrote:
| It seemed pretty cringy to me
| marcc wrote:
| The "AI Not Welcome Here" is interesting at the bottom of the
| Readme.
|
| https://github.com/MrIceman/go-uml#warning---ai-not-welcome-...
|
| This is a pretty hard stance to take when creating an OSS
| project. The author made an open source, MIT-licensed repo. Right
| now, the statement reads "I wrote this all myself". Does that
| mean the author is not willing to accept PRs?
|
| Or will we see something like a DCO that developers make an
| attestation that AI was not used in creating the change?
| lib-dev wrote:
| > Right now, the statement reads "I wrote this all myself".
|
| He says, "all the code in this repository _that_ was written by
| me" was, if fact, hand-written by him rather than auto-
| generated by a tool like copilot.
|
| I read it as he is open to contributions and if you want to use
| AI that's allowed but he notes that he does not and he provides
| a rationale to boot. Fine by me.
| kerblang wrote:
| Nice idea.
|
| I think there's an error in the last diagram. The arrow pointing
| at User A should point at User B.
|
| (And look it's possible to say something other than blithering
| about AI controversy. The author doesn't like AI, get over it)
| umvi wrote:
| "Because of my own personal philosophy regarding technology and
| AI, all the code in this repository that was written by me - I
| wrote 100% on my own. There is and will be no usage of Github Co-
| Pilot or any other AI tool."
|
| As a developer that recently went to the dark side with co-
| pilot... all I can say is that from my perspective having used
| AI-augmented IDEs, arguments like this seem to me like a
| carpenter refusing to try power saws and power drills because
| craftsmanship will be lost compared to using handsaws and awls +
| hand drills. In my opinion, AI tools greatly enhance my
| craftsmanship by both saving me time and by suggesting solutions
| I didn't even know existed (most recent example being JS .every()
| and .some() - I was about to roll my own every/some equivalent
| with loops)
| drewcoo wrote:
| > like a carpenter refusing to try power saws and power drills
| because craftsmanship will be lost compared to using handsaws
| and awls + hand drills
|
| Rejecting AI-backed software tooling reminds me more of Amish
| power tools.
|
| https://www.npr.org/sections/money/2013/02/22/172626089/insi...
| umvi wrote:
| Wow... it's like the Law of Moses come full circle (finding
| loopholes in the letter of the law to skirt the spirit of the
| law)
| codegeek wrote:
| Wrong analogy in my opinion. A hand saw vs power saw is like an
| old Pentium Laptop vs M2 Macbook. The latter is just faster and
| better. But both do not tell you how to do something. In case
| of the both the hand and power saw, you need to know exactly
| where to drill/cut without any hint. When coding with AI, you
| are getting actual code snippets and hints.
| umvi wrote:
| I disagree. In my analogy, cutting wood == writing code. You
| can't write code any faster on an M2 Macbook just because the
| CPU is faster. If you are more productive on an M2, it's only
| because you have more intelligent software (re: AI) helping
| you write code faster. But given vi or emacs in both setups,
| they are basically the same from a software dev standpoint
| aside from faster build time as your software gets huge.
|
| > When coding with AI, you are getting actual code snippets
| and hints.
|
| I still know the cut that needs to be made. Say I need a
| function that returns true if an array contains a value.
| Without AI, I would write it by hand, which might require me
| to RTFM. But with AI, I can simply prompt "// return whether
| the provided array contains a given value" and the AI will
| fill in the function. I could have accomplished my goal
| either way. But with AI, I was done and moved on without
| context switching to google or stackoverflow.
|
| I could have sawed the 4x4 in half by hand. But instead I
| buzzed it with a buzz saw and moved on to the next part of my
| project 5 minutes ago.
| deepsun wrote:
| Same thing people said for years about power IDEs vs. advanced
| notepads.
| thunky wrote:
| Oh but you're missing the upside: now we can sell "handmade"
| software and charge extra for it. Just like soap. And even
| better, it can be less effective and have a shorter shelf life.
| CodeWriter23 wrote:
| That's a flawed analogy, a power saw never suggests a cutting
| pattern while the very essence of what copilot/AI etc does is
| suggest coding patterns. Which may or may not be vetted.
|
| Typing manually vs auto-complete is a correct handsaw/power saw
| analogy.
| apgwoz wrote:
| Saws certainly can project a laser beam across the cutting
| surface, and don't get me started about AI powered CNC cuts.
| I mean, just the other day I found the words "WHY ARE YOU
| IGNORING ME?" CNC'd onto a piece of plywood I left in my
| shop. I didn't do that by hand.
| umvi wrote:
| In my experience copilot behaves more like a power tool than
| what you are suggesting. I know the cut that needs to be
| made, and copilot makes the cut faster than it would have
| taken me to make the cut myself via
| RTFM/google/stackoverflow.
| waynesonfire wrote:
| "artisanally developed. all reference material and manuals were
| read from printed text"
| dimator wrote:
| isn't it closer to "a carpenter refusing to offload the design
| of subassemblies to an alien whose understanding of carpentry
| is completely opaque"?
|
| although, i suppose, to your point, even an alien could
| introduce a skilled carpenter to a new table saw technique.
| musha68k wrote:
| "I believe that the massive usage of AI will cause people to
| stop thinking and using their minds and the resulting havoc is
| unthinkable"
|
| Immediate utility aside that's a probable prediction by the
| author though.
|
| Let's hope the optimists will be right...
|
| https://github.com/MrIceman/go-uml#warning---ai-not-welcome-...
| deepsun wrote:
| Was it Homer who said that writing dulls the minds, and real
| poets use their mind to remember everything?
| EFreethought wrote:
| Some of the AI predictions make me think about a quote from
| "Dune":
|
| Once men turned their thinking over to machines in the hope
| that this would set them free. But that only permitted other
| men with machines to enslave them.
| r0l1 wrote:
| I don't use these tools, due to privacy concerns. Once there is
| a capable offline model, I will be open to give it a try.
| vlunkr wrote:
| In my experience power saws and power drills don't steal
| intellectual property without telling you.
|
| On a less snarky note, this seems like a pretty serious
| exaggeration. You could have learned about .every() and .some()
| in many many other ways
| umvi wrote:
| Depends on the granularity of your copilot use. Generating
| entire classes or non-trivial functions from a prompt vs.
| generating just the next few lines at a time. Pretty hard to
| "steal intellectual property" when the comment you wrote as a
| prompt was "// remove all items from myArray that have the
| provided prefix"
|
| > On a less snarky note, this seems like a pretty serious
| exaggeration. You could have learned about .every() and
| .some() in many many other ways
|
| Yeah but I didn't because it was an unknown unknown. How
| would I have learned about .every() when I didn't know it
| existed? Copilot as a discovery engine is a fantastic way to
| learn about language features you didn't know about.
|
| That was just one recent example. Copilot occasionally
| suggests ways of doing things I didn't know about and that
| were even better than my original approach.
| azubinski wrote:
| My respect to the author for the principled position.
| zelphirkalt wrote:
| I do not see any different kinds of edges in the diagram. Is only
| one kind of message supported, or is perhaps the example not
| chosen to include all kinds of message/returns?
___________________________________________________________________
(page generated 2023-04-28 23:02 UTC)