[web-devel] Re: consolidating Haskell's web-framework scene

Michael Snoyman michael at snoyman.com
Mon Mar 15 11:10:35 EDT 2010


Alright, so web-devel doesn't seem interested in moderating my message, so
I'll just break it up into two chunks:

I was planning on writing a blog post called "call to arms," which would
have been something similar to what you said. I agree that there is far too
much fragmentation in the community; I debated starting Yesod at all when
there were already a number of frameworks out there (Happs, KIbro,
Turbinado). However, none of them hit the spot that I was aiming for, so I
created it.

At the same time, Jinjing came out with Hack, and I tried to go with that.
Unfortunately, there are some inherent flaws with Hack (you can review the
Hack-discuss mailing list to see some discussions over there), so I started
WAI. So it would seem that so far, I've done more fragmentation than
consolidation :(.

On the other hard, the other frameworks having had much development, Yesod
is still active, and it looks like Happstack will be joining WAI, so not all
is lost. I am very interested in trying to continue consolidation, but I
think aiming for the One True Haskell Framework is a bad idea. Python- the
community known for One Way To Do It- can't even consolidate around a single
framework, so Haskell- the language of We Can All Write A Monad Transformers
Library- doesn't stand a chance.

So where can we consolidate? On libraries. I have purposely released a
number of the components of Yesod as separate libraries that are available
to any framework author (or even someone *not* using a framework). Here are
some in particular to look at:

wai
wai-extra
web-encodings
clientsession
authenticate
data-object, data-object-json and data-object-yaml
failure and control-monad-failure
hack-handler-webkit

Some of these packages have very obvious room for future development, and if
someone (like Gour) is looking for somewhere to start contributing to the
Haskell web community, I would recommend one of the following:


authenticate currently supports OpenId 1 and RPXnow. I would like to have
authenticate itself support *all* sites that RPXnow does. The first step in
that process would be to get authenticate to use the openid package and
determine whether a server support openid 1 or 2. From there, Twitter,
Facebook, Windows Live support would all be nice.


hack-handler-webkit is, IMO, a really cool idea. It allows you to convert
any Hack application into a desktop app. It runs simpleserver and then opens
up a Webkit window that connects to it. This is much better than simply
running the simpleserver and then opening up a webbrowser, because:

1) The program terminates automatically when the web browser closes.
2) You can control menu bars, title bar, etc completely, making it *feel*
like a desktop app.
3) You can ensure that all of the functionality you want is present in
webkit.

Unfortunately, hack-handler-webkit has two problems:

1) It's written for hack instead of WAI. However, this should take all of 5
minutes to fix.
2) It only works on Linux, and even there I don't have any documentation on
setting it up.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/web-devel/attachments/20100315/42b783b1/attachment.html


More information about the web-devel mailing list