

Happstack 0.5.0 released (Innovative web application server written in Haskell) - alrex021
http://www.haskell.org/pipermail/haskell-cafe/2010-May/077218.html

======
yummyfajitas
I'm glad to see a haskell web framework. I'd be very happy to use Haskell
rather than Python.

But, why pair Happstack with Macid, some haskell serialization format that
appears to not work very well?

<http://tutorial.happstack.com/tutorial/why-happstack-is-cool>

<http://tutorial.happstack.com/tutorial/macid-stress-test>

It's not a major issue, since it looks like you don't need to use it. However,
once Happstack gets a few batteries included (e.g., authentication), I don't
want them to be tied to Macid.

~~~
alrex021
_you're not locked in to using Happstack's state management system, MACID, for
everything._

~~~
yummyfajitas
I realize that. What I said: "It's not a major issue, _since it looks like you
don't need to use it._ "

My issue with MACID is that when Happstack starts including features like
authentication, I don't want them to be tied to MACID.

------
pohl
This is very cool, and it brings a question to mind:

I've been using GWT a lot lately, and thought to google around to see if
anybody had done a Haskell-to-JavaScript compiler:

[http://haskell.org/haskellwiki/Yhc/Javascript/Programmers_gu...](http://haskell.org/haskellwiki/Yhc/Javascript/Programmers_guide)

While GWT is independent of what you have on the back-end, a lot of good comes
from being able to use java objects as shared currency between the client &
server over the RPC mechanism.

So, as an OO practitioner who is curious about better languages, I have a
question: If one were to have haskell on the server side, and haskell as a
source language on the client side, how would an RPC mechanism look for
communicating between the two?

In GWT, the object serialization and Command Pattern works very nicely. What
would you do in the purely functional world?

~~~
jamii
Ocaml has ocamljs and orpc:

<http://code.google.com/p/ocamljs/>

Haskell has a couple of haskell->js compilers but I'm not aware of any rpc
mechanisms.

Clojure has clojurescipt:

[http://github.com/richhickey/clojure-
contrib/tree/master/clo...](http://github.com/richhickey/clojure-
contrib/tree/master/clojurescript/)

Presumably rpc would be easy given the mostly uniform data representation.

~~~
jamii
Also check out Nitrogen which is an interesting approach to the problem:

<http://nitrogenproject.com/>

------
shrikant
XKCD is powered by Happstack - <http://dynamic.xkcd.com/comic/random>

Back when I submitted <http://news.ycombinator.com/item?id=1186025>, you could
insert any path any level deep inside dynamic.xkcd.com and it'd take you to a
random comic - looks like that's changed now :-|

------
alrex021
site url

<http://happstack.com/index.html>

~~~
uggedal
What's up with the rendering of html on said site:

    
    
      ><head
        ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
          ><link rel="stylesheet" type="text/css" href="/theme/default.css"
          ><title
          >Happstack - Frequently Asked Questions</title
          ></head
        ><body
    

Is the reason for this behavior to make markup like:

    
    
      a
      <a href="#">
        link
      </a>
      .
    

to render as "a _link_." in stead of "a _link_ ."? Either way, it looks awful.

~~~
jmillikin
It prevents spurious whitespace from showing up in text nodes.

------
jamesbritt
Is there anything that actually explains what it is and does?

What exactly is MACID? Can I swap in my own preferred DB? What does it use for
templating? Do I have a choice of template tools? Does it work with Hack? Can
I add in middleware?

