<div><span class="gmail_quote">On 8/8/07, <b class="gmail_sendername">Brian Hulley</b> &lt;<a href="mailto:brianh@metamilk.com">brianh@metamilk.com</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">In contrast, all the pure functional GUIs that I&#39;ve seen are just<br>wrappers around someone else&#39;s imperative code, and moreover, they
<br>exchange the simplicity of the object oriented imperative API for a<br>veritable mindstorm of unbelievably heavy, clunky, slow, inefficient,<br>inextensible, hard to understand encodings that seem to me to have the<br>
effect of turning a high level language into some kind of circuit board<br>(I&#39;m thinking of arrows etc).<br><br></blockquote></div>
<div>In defense of Haskell (wow!), note that imperative languages are not without problems in GUIs.&nbsp; In a multithreaded environment, typically only one thread is allowed to manage the GUI, and then you typically need to set up some sort of message-passing system to communicate between this thread and the others AFAIK?&nbsp; This is a total PITA, so if someone has a solution for this that would rock :-)
<br>&nbsp;</div>
<div>Question: to what extent do the Haskell wrappers around gtk and wxWidgets suffer from this problem?&nbsp; I mean, I havent tried them, so it&#39;s a genuine question.</div>
<div>&nbsp;</div>
<div>(Note: off the top of my head, in an imperative language, I guess one could use some sort of generator to take an interface and generate the message classes, and marshalling classes automatically)</div>
<div>&nbsp;</div>
<div>(Disclaimer: I havent really searched very hard for ways to handle threading in GUIs in imperative languages, since mostly I either use web pages as the visual interface, which&nbsp;avoids around the problem, or use a single thread, which also avoids the problem)
</div>
<div>&nbsp;</div>