<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Gadugi;
        panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.hoenzb
        {mso-style-name:hoenzb;}
p.m6813984153880418754ox-20fc03f0dc-msonormal, li.m6813984153880418754ox-20fc03f0dc-msonormal, div.m6813984153880418754ox-20fc03f0dc-msonormal
        {mso-style-name:m_6813984153880418754ox-20fc03f0dc-msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Thanks Joe.  I appreciate yours (and others) suggestions.  I have actually worked through some wxErlang and agree that WxWidgets can produce a decent user interface but as you said there is a cliff there.  I am trying to avoid getting bogged down in learning wxWidgets.  My preference is a stand-alone application but it looks like that is not really going to be possible.  My genetic programming code is in Erlang and I must say it was a joy to implement it there.  Out of curiosity and for comparison of languages I implemented it in both C++ and Erlang at the same time.  The Erlang was less effort to get right and ended up being a fraction of the code.  The C++ version still has issues (memory issues mostly) and crashes more often than not.  I had originally implemented it in C++ but after getting exposed to Erlang was convinced it would work better.  As I said I implemented it in Erlang and re-implemented it in C++.  Sure the C++ is faster but doesn’t work 100% yet.  Erlang works wonderfully.  A point to note here is that I have been working in C/C++ for both desktop and embedded development for 20+ years and was actually shocked that as a novice in Erlang I was able to implement it better there than in C++ where I am much more experienced.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Sorry for the digression.  Most likely I will end up using C# to implement my GUI and connect to the Erlang using a port or TCP. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Again, my thanks to you and others for your advice.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Alan<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Joe Armstrong [mailto:erlang@gmail.com] <br><b>Sent:</b> Thursday, December 07, 2017 07:50<br><b>To:</b> Alan Gingras <alangingras@comcast.net><br><b>Cc:</b> Sergej Jurečko <sergej.jurecko@gmail.com>; Zachary Kessin <zkessin@gmail.com>; Erlang <erlang-questions@erlang.org><br><b>Subject:</b> Re: [erlang-questions] GUI development with Erlang<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>If you want something that just works and is reasonably simple to implement<o:p></o:p></p><div><p class=MsoNormal>Browser based GUI's are pretty good.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The combination of web sockets + SVG/Canavas/DOM manipulation in JS<o:p></o:p></p></div><div><p class=MsoNormal>is pretty easy to setup and loads of people understand JS/Browser things.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Stand-alone outside the browser is tricky.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>TCL/Tk is really easy to get going and interface (yes it's old but works well)<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Java Swing is what it is - and if you're good at Java might be an alternative<o:p></o:p></p></div><div><p class=MsoNormal>but you'd have to interface it to Erlang.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>QT is brilliant but you'd need to write the GUI in C++ and interface it to Erlang<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>WxWidgets is actually pretty good but has a steep learning curve (a cliff) -<o:p></o:p></p></div><div><p class=MsoNormal>I did actually manage to build some interfaces with it and concluded that<o:p></o:p></p></div><div><p class=MsoNormal>it was pretty good but that it needed a *lot* of examples and getting started<o:p></o:p></p></div><div><p class=MsoNormal>tutorials.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Cheers<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>/Joe<o:p></o:p></p></div><div><div><p class=MsoNormal><o:p> </o:p></p></div></div></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Wed, Dec 6, 2017 at 12:43 PM, Alan Gingras <<a href="mailto:alangingras@comcast.net" target="_blank">alangingras@comcast.net</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><p><span style='font-family:"Helvetica",sans-serif;color:#333333'>Thanks for the suggestion.  I've been trying to keep the work totally in Erlang.  Partly because I am trying to become better with Erlang itself and partly out of stubbornness.  I had looked at using a browser based GUI but for what I'm doing I really don't want (or need) to be too complicated.  One of the other responses suggested using C# to create the front end and communicate with Erlang via TCP.  I had thought of that as well, but decided to pursue using pure Erlang but have become stymied by wxErlang and its difficulty.  Most likely I will end up pursing the C# (or similar) front end.<o:p></o:p></span></p><p><span style='font-family:"Helvetica",sans-serif;color:#333333'><o:p> </o:p></span></p><p><span style='font-family:"Helvetica",sans-serif;color:#333333'>Alan<o:p></o:p></span></p><div><div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal style='margin-bottom:12.0pt'>On December 6, 2017 at 3:04 AM Zachary Kessin <<a href="mailto:zkessin@gmail.com" target="_blank">zkessin@gmail.com</a>> wrote:<o:p></o:p></p><div><p class=MsoNormal>I had thought it would be an interesting idea to build a GUI toolset around Erlang such that each widget on screen was a process. That being said I think to develop such a toolkit would probably cost on the order of $1,000,000 (Total guess on the number).<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>If I had to develop a desktop app with Erlang I would probably use something like Electra to do a virtual browser with an Elm Frontend.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Zach<o:p></o:p></p></div></div><div><p class=MsoNormal><img border=0 id="_x0000_i1025" src="https://mailfoogae.appspot.com/t?sender=aemtlc3NpbkBnbWFpbC5jb20%3D&type=zerocontent&guid=bbf5f505-2549-4a38-a6fd-29b8e0f717f4"><span style='font-size:7.5pt;font-family:"Gadugi",sans-serif;color:white'>ᐧ</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Tue, Dec 5, 2017 at 10:13 AM, Sergej Jurečko <<a href="mailto:sergej.jurecko@gmail.com" target="_blank">sergej.jurecko@gmail.com</a>> wrote:<o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal>What we did when we wanted to ship a GUI app with Erlang was running erl in the background and communicate over stdin/stdout. <o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Regards,<o:p></o:p></p></div><div><p class=MsoNormal>Sergej<o:p></o:p></p><div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><br><br><o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal>On 5 Dec 2017, at 09:07, Alex S. <<a href="mailto:alex0player@gmail.com" target="_blank">alex0player@gmail.com</a>> wrote:<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>For what it's worth, you can always implement your view and controller in something like C#/F#, and your model in Erlang, and hook them up via TCP. Alternatively, there was an Erlang-toF# compiler floating around I believe.<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>2017-12-03 22:43 GMT+03:00 Alan Gingras <<a href="mailto:alangingras@comcast.net" target="_blank">alangingras@comcast.net</a>>:<o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><div><p class=m6813984153880418754ox-20fc03f0dc-msonormal>Has anyone tried using Windows Forms (.net) with Erlang?  This would be in a similar fashion to way Python can use Windows Forms.  On Linux I believe this would be Mono (<a href="http://www.mono-project.com/docs/gui/winforms/" target="_blank">http://www.mono-project.com/docs/gui/winforms/</a>).  Basically I think I’m looking for something similar to Python’s “import” and C#’s “using” features.  If no one has anything, any hints on how a feature like this might be implemented.<o:p></o:p></p><p class=m6813984153880418754ox-20fc03f0dc-msonormal> <o:p></o:p></p><p class=m6813984153880418754ox-20fc03f0dc-msonormal>Basically, I have been working on implementing genetic programming in Erlang and would like to provide a GUI front end.  The WxWidgets front end that comes with Erlang is difficult at best.  I’ve used several different GUI kits on *nix and Windows platforms but WxWidgets seems the most difficult for me.  So I’m trying to see what else is available.  I followed Joe Armstrong’s quest earlier this year and didn’t see where he came up with anything.<o:p></o:p></p><p class=m6813984153880418754ox-20fc03f0dc-msonormal> <o:p></o:p></p><p class=m6813984153880418754ox-20fc03f0dc-msonormal>Thanks.<o:p></o:p></p><p class=m6813984153880418754ox-20fc03f0dc-msonormal>Alan<o:p></o:p></p></div></div><p class=MsoNormal style='margin-bottom:12.0pt'><br>_______________________________________________<br>erlang-questions mailing list<br><a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><o:p></o:p></p></blockquote></div><p class=MsoNormal><o:p> </o:p></p></div></div><p class=MsoNormal>_______________________________________________<br>erlang-questions mailing list<br><a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><o:p></o:p></p></div></blockquote></div><p class=MsoNormal><o:p> </o:p></p></div></div></div></div><p class=MsoNormal style='margin-bottom:12.0pt'><br>_______________________________________________<br>erlang-questions mailing list<br><a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><o:p></o:p></p></blockquote></div><p class=MsoNormal><br><br clear=all><o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal>-- <o:p></o:p></p><div><div><div><div><div><div><div><div><div><div><div><div><div><div><p class=MsoNormal>Zach Kessin<o:p></o:p></p></div><div><p class=MsoNormal><span style='color:#274E13;background:white'>Reduce project risk with training in Elm For web teams</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:9.5pt'>Skype: <span style='color:#274E13'>zachkessin</span></span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:9.5pt'><a href="tel:+972%2054-234-3956" target="_blank">+972 54 234 3956</a> / <a href="tel:+44%2020%203734%209790" target="_blank">+44 203 734 9790</a> / <a href="tel:(617)%20778-7213" target="_blank">+1 617 778 7213</a></span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><p class=MsoNormal>_______________________________________________<br>erlang-questions mailing list<br><a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><o:p></o:p></p></blockquote></div></div></div><p class=MsoNormal style='margin-bottom:12.0pt'><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" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><o:p></o:p></p></blockquote></div><p class=MsoNormal><o:p> </o:p></p></div></div></body></html>