[web-devel] [Haskell-beginners] happstack versus yesod

James cnjamesdeng at gmail.com
Wed Apr 6 06:04:48 CEST 2011

I agree with vagif' explanation for "freedom". For most people,
especially beginners, their criterion for a framework is like "how can I
learn it easily, or to what extent does it fit my prior knowledge".
According to this criterion, maybe Yesod is harder to learn because of
its more features and less documentations, and harder to feel
comfortable for its TH things.

However, I don't think the above criterion is reasonable. To evaluate a
framework, the main factors are:
* How well and consistent is it designed?
* How KISS(keep it simple and stupid) is it?
* Does it scale well in large projects?

I had used python/django to develop web projects before, it's very easy
to learn and use. But to reduce your repetitive work, you need to write
or use many utils like decorators and generic view.

I really like the haskell language,so I try to use haskell as much as
possible. From last year, I have learnt Happstack, Snap, and Yesod
respectively, and compare their design and features. After reading most
of the haskellers.com's code, I think its codes are very clean and
elegant. So I chose Yesod among the three frameworks.

I think Yesod's design is good, and safe url fits haskell's philosophy.
As for the TH things, they are just the convenient way to reduce
repetitive coding. As one said, "Every large projects to some extent
implement a variant of Lisp." QQ is just the method provides by Yesod to
attack repetitions, if you don't like it, you can bypass it. In a word,
the existence of TH and QQ in Yesod is not that unreasonable.

Although Yesod has the most features in the three, it's still in its
childhood compared to something like django. As mentioned in one thread,
I request the common "join" support in persistent.

Yesod has much work to be done, especially documentations. Nevertheless,
I think it's promising.

On Tue, 2011-04-05 at 12:25 -0700, vagif.verdi at gmail.com wrote:
> I think by "freedom" people often mean "how fast can i be comfortable
> in the 
> framework to start running around and do things." 

More information about the web-devel mailing list