[Haskell-beginners] happstack versus yesod

Michael Snoyman michael at snoyman.com
Tue Apr 5 20:59:37 CEST 2011

I'm not sure where you got that implication from. Happstack is a good
framework, and using it will definitely help you learn Haskell. But the same
is true of Yesod or Snap. I guess you might say that if your goal is to
learn Haskell, and not to create websites, then you shouldn't be using a
framework at all, and should be writing code that reads/sends ByteStrings
over sockets. You'll definitely learn more Haskell that way...


On Tue, Apr 5, 2011 at 9:50 PM, Ramy Abdel-Azim <ramy.abdelazim at gmail.com>wrote:

> well, i'll add my $.02 here (hopefully without throwing fuel on the fire)
> and say that - without knowing much about either, I asked the question for
> pete's sake! - is that from what you're saying, if I'dlike to use one of
> these frameworks to not only build my website but to also solidify what
> knowledge of haskell i've acquired, I should go with Happstack.
> On Tue, Apr 5, 2011 at 2:32 PM, Michael Snoyman <michael at snoyman.com>wrote:
>> This probably isn't the right forum for expressing this thought, but here
>> goes anyway:
>> What exactly is the freedom that Yesod takes away from you? I know this
>> idea gets passed around a lot: Yesod isn't "really" Haskell, Yesod is its
>> own language, etc. But all of that is really just talking about some sugar
>> that Yesod puts in place for you: under the surface, it's just functions,
>> data types and type classes. You can go ahead and write a complete Yesod
>> application without using Template Haskell of QuasiQuotation.
>> So what's the restriction that Yesod has that Happstack/Snap don't? Yesod
>> requires you to provide some datatypes. That's it. What's the purpose of the
>> datatypes? Mostly, it's about type-safe URLs. I'm not exactly sure why the
>> term "restriction" or "freedom" even applies here: Yesod has a *feature*
>> that Happstack/Snap do not include out of the box.
>> Let me phrase this in a different way: "But I don't like Haskell, because
>> the idea of Python in more interesting for me. Python gives you some
>> freedom." I really do see this as the same argument. You can go ahead and
>> right some code without static type checking in Python, and you might even
>> write it faster than you would have in Haskell. But go ahead and start
>> making changes, and unless you have some very good unit tests, you're in for
>> a world of hurt. In Haskell, often times the compiler will save you from
>> yourself.
>> The same is true in Yesod. I've refactored incredibly large codebases,
>> with hundreds of different resource patterns, and *never* had to worry about
>> 404s. Maybe some people consider that giving up freedom. I consider it
>> giving up the freedom to shoot yourself in the foot.
>> Oh, and if you are absolutely dependent on the idea of getting rid of this
>> data-type requirements, and want all the freedom of dynamic routes, you can
>> try out a 44 line module[1] that I mentioned recently[2].
>> OK, enough of this rant. I'm not trying to attack you, I'm just tired of
>> this notion that Yesod is a ball-and-chain around your ankles. People can
>> have legitimate reasons to prefer Happstack or Snap to Yesod, I've never
>> claimed that it was a perfect framework for everyone. I just don't think
>> this is one of those legitimate reasons.
>> Michael
>> [1] https://gist.github.com/884802
>> <https://gist.github.com/884802>[2]
>> http://osdir.com/ml/general/2011-04/msg02160.html
>> On Tue, Apr 5, 2011 at 8:35 PM, Alexey G <kreed131 at gmail.com> wrote:
>>> Hello. It's very interesting theme for me and I want to express my
>>> opinion.
>>> Yesod - very fast web-framework(
>>> http://www.yesodweb.com/blog/preliminary-warp-cross-language-benchmarks
>>> ).
>>> But I don't like Yesod, because idea of Happstack more interesting for
>>> me. Happstack gives to you some freedom.
>>> I trying to use Snap Framework now. And it's very good for me. Try it
>>> http://snapframework.com/!
>>> Sorry for my english.
>>> 2011/4/5 Ramy Abdel-Azim <ramy.abdelazim at gmail.com>
>>>> I already posted about this a little bit but i think i should let the
>>>> old thread get back to it's regularly scheduled conversaion. on to my
>>>> question:
>>>> So I know there are a million easier ways to createa  blog (wordpress,
>>>> django, drupal, etc. etc.) but which would you recommend I use to build a
>>>> beginner website that is simliar to a blog: happstack or yesod?
>>>> _Ramy
>>>> _______________________________________________
>>>> Beginners mailing list
>>>> Beginners at haskell.org
>>>> http://www.haskell.org/mailman/listinfo/beginners
>>> _______________________________________________
>>> Beginners mailing list
>>> Beginners at haskell.org
>>> http://www.haskell.org/mailman/listinfo/beginners
>> _______________________________________________
>> Beginners mailing list
>> Beginners at haskell.org
>> http://www.haskell.org/mailman/listinfo/beginners
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20110405/3f11a114/attachment.htm>

More information about the Beginners mailing list