Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. Re: Haskell GTK (Krzysztof Skrz?tnicki)
2. Re: Haskell GTK (harry)
3. Re: Haskell GTK (Giacomo Tesio)
4. Re: Haskell GTK (Giacomo Tesio)
----------------------------------------------------------------------
Message: 1
Date: Mon, 10 Jun 2013 12:47:59 +0200
From: Krzysztof Skrz?tnicki <[email protected]>
Subject: Re: [Haskell-beginners] Haskell GTK
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Message-ID:
<cam7aevhrvv-qy1fqzsk7_gxd6nsehevz8+nr0rlzdjqr3ho...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Well, this is just a matter of refactoring some stuff here. You can notice
that most work is defining several small callbacks so its not really that
complex. I tend to use that style of nested let's because it saves the
time: no need to write boilerplate parameter passing, just use what is
defined in scope. If you cut out callbacks and GUI code you are left with
literally 8 non-empty lines. Its not that bad for a main.
Honestly I don't see why do you think Haskell sucks here. This is just
plain GTK. If anything it is better with Haskell thanks to static typing,
higher order functions, great runtime with GC and other stuff. Equivalent
application in plain C would be much longer and carry more bugs, and Python
GTK apps are a mess really.
Can you actually point to any GTK MVP framework out there?
On Mon, Jun 10, 2013 at 12:00 PM, Giacomo Tesio <[email protected]> wrote:
> This is the point: in
> https://github.com/Tener/sheep-transfer/blob/master/src/sheep-gtk.hs the
> main function requires 196 lines!
>
> How can this be acceptable? GTK is a good toolkit by itself. As far as I
> can see, the problem here is haskell: I can't see how I can build a simple,
> basic MVP framework on top of gtk2hs.
>
> Probably I've finally found something relevant at which Haskell sucks.
> Still I can't understand how haskellers code GUI when they really need to.
> Do they use another language and interact with haskell programs via pipes?
>
>
> Giacomo
>
>
>
> On Mon, Jun 10, 2013 at 11:17 AM, Krzysztof Skrz?tnicki
> <[email protected]>wrote:
>
>> If you want a bit more complex GTK programs you can look at these:
>>
>> https://github.com/Tener/spike -- web browser
>> https://github.com/Tener/sheep-transfer -- local network file sharing
>>
>> However, I'm *not* satisfied by the current state of GUI programming in
>> Haskell. Both programs above are using GTK just because there is nothing
>> better. GTK is a pain to install on Windows too.
>>
>>
>>
>> On Mon, Jun 10, 2013 at 10:58 AM, Giacomo Tesio <[email protected]> wrote:
>>
>>> Thanks, but no, it doesn't help... I have to stick with GTK.
>>>
>>> Most of the GUI examples I saw are toy programs.
>>> Leksah is a notable exception, but it's way too complex to be a useful
>>> learning tool.
>>>
>>> In OO languages, I'm used to the MVP pattern which helps to organize the
>>> code.
>>> But I'm finding so complex building GUI in haskell that I'm starting to
>>> think that it's not a good choice for such task.
>>>
>>>
>>> Giacomo
>>>
>>>
>>> On Mon, Jun 10, 2013 at 2:52 AM, Tim Perry <[email protected]> wrote:
>>>
>>>> Did you try this:
>>>> http://en.m.wikibooks.org/wiki/Haskell/GUI
>>>>
>>>> I hope it helps.
>>>> Tim
>>>>
>>>>
>>>> On Jun 9, 2013, at 10:22 AM, Giacomo Tesio <[email protected]> wrote:
>>>>
>>>> I have to write a "simple" GUI that plot some timeseries with a few
>>>> parameterization (dates, times and so on...).
>>>> The task should be simple, but I'm find using the GTK binding quite
>>>> weird.
>>>>
>>>> I'm surprised that nothing better exists for GUI programming in
>>>> haskell. I read a few about FRP but AFAIK it doesn't adress simple desktop
>>>> UI full of input to validate and grid/tree to show.
>>>>
>>>> Any suggestion? I've already read the pages on Hackage without much
>>>> success.
>>>> At least, can someone point me to the right direction for the codebase
>>>> organization?
>>>>
>>>>
>>>> Giacomo
>>>>
>>>> _______________________________________________
>>>> Beginners mailing list
>>>> [email protected]
>>>> http://www.haskell.org/mailman/listinfo/beginners
>>>>
>>>>
>>>> _______________________________________________
>>>> Beginners mailing list
>>>> [email protected]
>>>> http://www.haskell.org/mailman/listinfo/beginners
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Beginners mailing list
>>> [email protected]
>>> http://www.haskell.org/mailman/listinfo/beginners
>>>
>>>
>>
>> _______________________________________________
>> Beginners mailing list
>> [email protected]
>> http://www.haskell.org/mailman/listinfo/beginners
>>
>>
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20130610/b31732a1/attachment-0001.htm>
------------------------------
Message: 2
Date: Mon, 10 Jun 2013 10:53:07 +0000 (UTC)
From: harry <[email protected]>
Subject: Re: [Haskell-beginners] Haskell GTK
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=utf-8
Giacomo Tesio <giacomo <at> tesio.it> writes:
> I have to write a "simple" GUI that plot some timeseries with a few
parameterization (dates, times and so on...).?The task should be simple, but
I'm find using the GTK binding quite weird.
>
> I'm surprised that nothing better exists for GUI programming in haskell. I
read a few about FRP but AFAIK it doesn't adress simple desktop UI full of
input to validate and grid/tree to show.
>
> Any suggestion? I've already read the pages on Hackage without much success.
> At least, can someone point me to the right direction for the codebase
organization??
Why did FRP not work for you? You could try reactive-banana[1], which has
specific support for GUI. If you want something closer to MVP,
binding-gtk[2][3] might help.
If you post more details about your application, someone may be able to
suggest a better way of structuring it. MVP originates from OO, and
OO-centric patterns are usually not the best way to go about something in
Haskell.
[1] http://www.haskell.org/haskellwiki/Reactive-banana
[2] http://code.accursoft.com/binding
[3] http://hackage.haskell.org/package/binding-gtk
------------------------------
Message: 3
Date: Mon, 10 Jun 2013 15:09:13 +0200
From: Giacomo Tesio <[email protected]>
Subject: Re: [Haskell-beginners] Haskell GTK
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Message-ID:
<CAHL7psGP9jPJyCdOEzK8Z9=1bc0jyD=AnzmC8GB=tktpuk+...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
On Mon, Jun 10, 2013 at 12:47 PM, Krzysztof Skrz?tnicki <[email protected]>wrote:
> Well, this is just a matter of refactoring some stuff here. You can notice
> that most work is defining several small callbacks so its not really that
> complex. I tend to use that style of nested let's because it saves the
> time: no need to write boilerplate parameter passing, just use what is
> defined in scope. If you cut out callbacks and GUI code you are left with
> literally 8 non-empty lines. Its not that bad for a main.
>
Don't get me wrong, I appreciated your suggestion. But I can't see how to
apply that code organization to my own project.
>
> Honestly I don't see why do you think Haskell sucks here. This is just
> plain GTK. If anything it is better with Haskell thanks to static typing,
> higher order functions, great runtime with GC and other stuff. Equivalent
> application in plain C would be much longer and carry more bugs, and Python
> GTK apps are a mess really.
>
> Can you actually point to any GTK MVP framework out there?
>
>
In C# I coded a very simple one in few hours (and a more powerful one in a
month). MVP isn't that complex pattern, indeed. I use it to organize code:
View specific concerns (that know about the specific toolkit, GTK, WinForm
etc), a Model that handle business rules and a Presenter that is an adapter
between the two.
Python could be a valid alternative, btw: I'm writing a "simple" plotting
application for financial data and matplotlib is quite flexible.
But since I've found very nice coding the business logic in Haskell, I was
trying to rapidly build a GUI with it.
Giacomo
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20130610/f9f29aad/attachment-0001.htm>
------------------------------
Message: 4
Date: Mon, 10 Jun 2013 15:50:41 +0200
From: Giacomo Tesio <[email protected]>
Subject: Re: [Haskell-beginners] Haskell GTK
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Message-ID:
<cahl7pshtunnkd6tee7bczix3vmo1e3pv53+qxlbrpgrurgx...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
What I'm looking for is a framework that help me to
1) design composable UI abstractions suited to my application needs (eg, a
*CustomerSelector*): let's call these views
2) connect such abstractions to actual implementations (GTK, Wx or anything
else)
3) send userActions to Presenters (one for each view) so that they can
handle them operating with a pure domain model and sending back to views
updates
This is not that complex to achieve in OOP, but I can't see HOW to build an
even basic framework that give me this.
Actually, that's probably my fault.
Giacomo
On Mon, Jun 10, 2013 at 12:53 PM, harry <[email protected]> wrote:
> Giacomo Tesio <giacomo <at> tesio.it> writes:
>
> > I have to write a "simple" GUI that plot some timeseries with a few
> parameterization (dates, times and so on...). The task should be simple,
> but
> I'm find using the GTK binding quite weird.
> >
> > I'm surprised that nothing better exists for GUI programming in haskell.
> I
> read a few about FRP but AFAIK it doesn't adress simple desktop UI full of
> input to validate and grid/tree to show.
> >
> > Any suggestion? I've already read the pages on Hackage without much
> success.
> > At least, can someone point me to the right direction for the codebase
> organization?
>
> Why did FRP not work for you? You could try reactive-banana[1], which has
> specific support for GUI. If you want something closer to MVP,
> binding-gtk[2][3] might help.
>
> If you post more details about your application, someone may be able to
> suggest a better way of structuring it. MVP originates from OO, and
> OO-centric patterns are usually not the best way to go about something in
> Haskell.
>
> [1] http://www.haskell.org/haskellwiki/Reactive-banana
> [2] http://code.accursoft.com/binding
> [3] http://hackage.haskell.org/package/binding-gtk
>
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20130610/b82cb54a/attachment.htm>
------------------------------
_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners
End of Beginners Digest, Vol 60, Issue 18
*****************************************