<div dir="ltr">For my part, I find that most explorations into *structure* tend to rapidly devolve into discussions about *accuracy* and/or fidelity. This probably has a lot to do with the existing tooling, and I'm not quite sure that there is any way around it...<div><br><div>FWIW, what I try to do when I am in FredHebertMode (circles and arrows on the back of each sheet) is to push myself to recognize that</div><div> 1) What is this supposed to be doing?</div><div><div> 2) Is this doing what it is supposed to be doing?</div><div>are different beasts indeed...</div><div><br></div><div>Cheers</div><div><br></div><div>p.s. For extra credit, there is actually a level -0- consisting of "What is the author trying to accomplish"</div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 2, 2016 at 4:57 AM, Vlad Dumitrescu <span dir="ltr"><<a href="mailto:vladdu55@gmail.com" target="_blank">vladdu55@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Mon, May 2, 2016 at 10:37 AM, Vance Shipley <span dir="ltr"><<a href="mailto:vances@motivity.ca" target="_blank">vances@motivity.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><p dir="ltr">I have long had an interest in visualizing code and a dream of a visual development environment. I've pretty much concluded that a "visual programming language" is a pipe dream for all but trivial use cases however graphical modeling is obvious.</p><span>
<p dir="ltr"></p></span></div></blockquote></span><div>The thing that I found to be most difficult to handle with graphical tools is that if automatic layout is not good enough, then storing the layout is making it very difficult to handle merges and rebases. At my current job, we just switched from a graphical modeling tool (for UML-like state machines) to a text-based representation and rendering with GraphViz.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><span class=""><span><p dir="ltr">On May 2, 2016 1:22 PM, "Vlad Dumitrescu" <<a href="mailto:vladdu55@gmail.com" target="_blank">vladdu55@gmail.com</a>> wrote:<br></p></span></span><span class=""><span>
<p dir="ltr">> Going the other way around, an IDE can make usage of tools easier -</p>
</span><p dir="ltr">I had always wanted to finish that project by going the other way, starting with a graphical editor (e.g. dotty(*)) to create the model of a communicating finite state machine in a graphviz file (foo_fsm.dot) with annotations. Feed that through a utility which created a template gen_fsm behaviour callback module (foo_fsm.erl) with annotations so that it could be read back into .dot for further graphical editing.<br>
</p><p>Another, more generally useful, IDE utility I have always planned is a graphical editor for supervision hierarchies. I would love to start new Erlang applications on a canvas with a palette of application master, supervisor and worker. Drag and drop the supervisors, connect them with lines to their children, annotate with the child specifications and init arguments and save it as a template application ready to call application:start(foo).</p></span></div></blockquote><div>A graphical interface is not the only way to improve this kind of editing. It can be done with a tree view and a form-like interface. Eclipse has for example editors for its configuration files that look like the picture here <a href="https://dl.dropboxusercontent.com/u/2517505/editor1.png" target="_blank">https://dl.dropboxusercontent.com/u/2517505/editor1.png</a>, which is arguably nicer than having to plow through 3-4 files with different formats among which XML is the worst.</div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><p>These aren't terribly difficult projects, trivial really compared to what ROK is talking about, but yet (AFAIK) they don't exist. If one was to contemplate doing such a thing I understand that Eclipse has a Graphical Editing Framework (GEF) which may form a good foundation for the graphical editor. Maybe I'll get around to it someday however it's been on my todo list for 15 years now and yet I still use vim as my "IDE".</p>
</div>
</blockquote></span></div>Yes, GEF is cool, but it has a quite steep learning curve (which might be added to the steep curve of learning Eclipse, and the relatively steep curve of learning Java, depending on one's current knowledge). </div><div class="gmail_extra"><br></div><div class="gmail_extra">best regards,</div><div class="gmail_extra">Vlad</div><div class="gmail_extra"><br></div></div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div style="font-family:Helvetica;word-wrap:break-word"><div style="margin:0in 0in 0.0001pt"><font color="#1f497d" face="Calibri, sans-serif"><span style="font-size:15px"><b><div style="font-style:italic;margin:0px;font-family:Calibri"><b style="color:rgb(17,85,204)"><a href="http://www.gravatar.com/avatar/204a87f81a0d9764c1f3364f53e8facf.png" style="color:rgb(17,85,204)" target="_blank">Mahesh Paolini-Subramanya</a></b></div><div style="margin:0px;font-family:Calibri"><span style="font-weight:normal">That tall bald Indian guy..</span><br></div></b></span></font></div></div><div style="font-family:Helvetica;word-wrap:break-word"><div style="margin:0in 0in 0.0001pt"><font color="#1f497d" face="Calibri, sans-serif"><span style="font-size:15px"><b><div style="margin:0px;font-family:Calibri"><div style="font-family:Helvetica;word-wrap:break-word"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif"><span style="font-size:11pt;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri"><span style="color:rgb(31,73,125)"><span style="color:rgb(1,108,226)"><a href="https://twitter.com/dieswaytoofast" style="color:rgb(17,85,204)" target="_blank">Twitter</a></span></span><span style="color:rgb(31,73,125)"> | </span><b style="font-size:15px;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><div style="font-family:Helvetica;word-wrap:break-word;display:inline!important"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif;display:inline!important"><span style="font-size:11pt;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><b style="color:rgb(31,73,125);font-size:15px;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><div style="font-family:Helvetica;word-wrap:break-word;display:inline!important"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif;display:inline!important"><b style="font-family:Calibri,sans-serif;font-size:15px"><div style="margin:0px;font-family:Calibri;display:inline!important"><div style="font-family:Helvetica;word-wrap:break-word;display:inline!important"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif;display:inline!important"><span style="font-size:11pt;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;color:rgb(1,108,226);display:inline!important"><span style="color:rgb(31,73,125)"><a href="http://dieswaytoofast.blogspot.com/" style="color:rgb(17,85,204)" target="_blank"><span style="color:rgb(1,108,226)">Blog</span></a></span> <span style="color:rgb(31,73,125)">| </span></div></span></div></div></div></b></div></div></div></b><b style="font-size:15px;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><div style="font-family:Helvetica;word-wrap:break-word;display:inline!important"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif;display:inline!important"><span style="font-size:11pt;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><b style="font-size:15px;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><div style="font-family:Helvetica;word-wrap:break-word;display:inline!important"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif;display:inline!important"><b style="font-family:Calibri,sans-serif;font-size:15px"><div style="margin:0px;font-family:Calibri;display:inline!important"><div style="font-family:Helvetica;word-wrap:break-word;display:inline!important"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif;display:inline!important"><span style="font-size:11pt;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><a href="https://plus.google.com/u/0/108074935470209044442/posts" style="color:rgb(17,85,204)" target="_blank">G+</a></div></span></div></div></div></b></div></div></div></b></div></span></div></div></div></b></div></span></div></div></div></b><b style="font-size:15px;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><div style="font-family:Helvetica;word-wrap:break-word;display:inline!important"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif;display:inline!important"><span style="font-size:11pt;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><b style="font-family:Calibri,sans-serif;font-size:15px"><div style="margin:0px;font-family:Calibri;display:inline!important"><div style="font-family:Helvetica;word-wrap:break-word;display:inline!important"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif;display:inline!important"><span style="font-size:11pt;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><b style="font-size:15px;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><div style="font-family:Helvetica;word-wrap:break-word;display:inline!important"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif;display:inline!important"><span style="font-size:11pt;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><b style="font-size:15px;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><div style="font-family:Helvetica;word-wrap:break-word;display:inline!important"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif;display:inline!important"><b style="font-family:Calibri,sans-serif;font-size:15px"><div style="margin:0px;font-family:Calibri;display:inline!important"><div style="font-family:Helvetica;word-wrap:break-word;display:inline!important"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif;display:inline!important"><span style="font-size:11pt;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;color:rgb(1,108,226);display:inline!important"> <span style="color:rgb(31,73,125)">| </span></div></span></div></div></div></b></div></div></div></b></div></span></div></div></div></b></div></span></div></div></div></b></div></span></div></div></div></b><b style="font-size:15px;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;display:inline!important"><div style="font-family:Helvetica;word-wrap:break-word;display:inline!important"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif;display:inline!important"><b style="font-family:Calibri,sans-serif;font-size:15px"><div style="margin:0px;font-family:Calibri;display:inline!important"><div style="font-family:Helvetica;word-wrap:break-word;display:inline!important"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif;display:inline!important"><span style="font-size:11pt;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;color:rgb(1,108,226);display:inline!important"><a href="http://www.linkedin.com/in/dieswaytoofast" style="color:rgb(17,85,204)" target="_blank">LinkedIn</a></div></span></div></div></div></b></div></div></div></b></div></span></div></div></div></b></span></font></div></div></div></div></div></div></div></div>
</div>