3 ms·
Interesting that he comes down in favor of Snap. I've been looking at the Snap vs. Yesod question for my own projects, lately, and there's interesting arguments
by thurn 15y ago
Interesting that he comes down in favor of Snap. I've been looking at the Snap vs. Yesod question for my own projects, lately, and there's interesting arguments both ways. Yesod is big and comprehensive, with four or five custom DSLs that have compilers implemented in Template Haskell. Snap is tiny, really just a routing engine and server with a small template library tacked on.
Yesod reminds me of Rails, while Snap reminds me of Servlets + JSP.
- Periodic 15y agoYesod is a web framework. It is designed to display web pages with some sort of datastore backing them. If you had a CRUD-type app with a few different data models then Yesod will make it really easy to generate the appropriate HTML and forms and make them type safe. It extends the Haskell all the way down to the application layer, assuming standard HTML as your primary response and a certain data representation and persistence layer. Snap (I have only looked at it. Please correct me) seems like it only goes as far as the HTTP layer. It's designed so you can implement web services. Those services might return HTML, but they might return JSON or XML. It doesn't care or help you with your data representation. You have to do your own data persistence and display layers.