5 ms·
Did you use a particular framework? I've been greatly enjoying my 4th attempt at learning Haskell (I think only now am I seasoned enough to really get it), and
by Lewisham 11y ago
Did you use a particular framework? I've been greatly enjoying my 4th attempt at learning Haskell (I think only now am I seasoned enough to really get it), and my general proof that I know something and can use it usefully is to develop a web app (as all apps are now anyways). However, I didn't find anything which looked like it had majority community buy-in unlike Rails/Sinatra/Flask et al.
- seddona 11y agoWe use Yesod
- wz1000 11y agoYesod is the most actively developed and popular web framework for Haskell.
- haxeny1 11y agoFor my side project, I use yesod/websockets for the server and haxe for the client. I feel ok with that choice instead using hpaste. Though eventually I would like to see a complete haskell stack. @Lewissham: about the fourth attempt, it just so happens that this was my third attempt at getting something that was right for me as well as maintaining the typesafety. I do realize that code is still not as seamless as I would like. It still lets me understand the overall roadmap that the code needs to take to be usable/maintainable etc.
- psibi 11y agoCan you expand upon what you mean by complete Haskell stack ? What do you feel are currently missing from Yesod ?
- haxeny1 11y agoYesod is awesome I can't see myself going back to less typesafe database schema tools. The choice I made seemed like a safer path, perhaps not ideal. The application that I am trying to put together is a realtime websockets application. Therefore, I am using yesod/websockets for the server. For the client, I chose haxe simply because of the targets available making it simpler to write plugins. On one of my irc chats or somewhere, I did hear good things about haste, though it is primarily a javascript library, therefore I plan to evaluate it later. About the client: it is a single page app to prevent any page refreshes and I am a bit sold on the frp (using promHx). I guess I should have elaborated a bit more about this in my earlier comment, because my choices are not indicative of anything amiss in yesod.
- e12e 11y agoHave you looked at Elm[1]? Is that "too much web" and too far from Haskell for you? https://github.com/elm-lang/elm-platform#elm-platform https://github.com/elm-lang/elm-platform#elm-platform
- haxeny1 11y agoElm was my first choice for a different side project. I went away because then elm did not have, or it was my lack of knowledge,support for crud widgets. I miss the elm signal approach in haxe for one thing. Here is the link to my repo so things are a bit concrete https://github.com/asm-products/ccar-websockets.git https://github.com/asm-products/ccar-websockets.git . Warning: this is still work in progress and there are way too many issues before I can even release this. The elm repo is here: https://github.com/dservgun/elm_projects https://github.com/dservgun/elm_projects . Edit: added some repos to set a context. The original comment about 4th attempt hit home as the latest repo is my 4th(I am going to quickly lose count) attempt to achieve at a model that might work/scale. There are still some issues that I would like to solve: whether to use code generators or not. Code gens will save me some typing, but I found myself tweaking printfs or equivalents to fit it into a narrow model. Edit II: Elm, iirc, is being supported by prezi that also happens to be using haxe quite actively. So I felt a bit more reassured about using haxe.
- codygman 11y agoHave you tried using Purescript for frontend stuff? There is apparently a purescript-websocket library: https://github.com/tekerson/purescript-websocket https://github.com/tekerson/purescript-websocket
- haxeny1 11y agoI will have to take a look if fponticelli: https://twitter.com/jdegoes/status/471319014614892544 https://twitter.com/jdegoes/status/471319014614892544 , thinks it is. My app is not a pure web app, it has some client components such as excel plugins that need to talk to the server. I was therefore looking for something that I can port to other targets with some support from the language, which is where imo haxe/nekovm seem to shine. Yes, there may be some parts missing from haxe, though, it seemed to work ok for my needs and if its good for salesforce or tivo, I thought I may not be a trailblazer afterall.
- psibi 11y agoAlso the nice thing about Yesod, is the freely available online book[0]. [0] http://www.yesodweb.com/book http://www.yesodweb.com/book
- reagency 11y agoHas the book caught up with the software? Last I checked, the book was written in terms of obsolete APIs that didnt match the yesod-geneterated app boilerplate, and Snoyman said that he didn't have time yet to update the book.
- bjterry 11y agoEven though it was at one point a physical book, I think, it's really a regularly updated documentation for the library. Sometimes it's not fully updated because it's written by one guy (Michael Snoyman, who also leads Yesod), but it always gets fully updated for the new version. It's not like a print book where you have to wait for the 2nd edition to come out.
- haxeny1 11y agoI have been using this site for (yesod 1.4) [http://www.yesodweb.com/book/introduction http://www.yesodweb.com/book/introduction] and I found the documentation current. Is there something that doesn't compile?
- psibi 11y agoI have the book print version and that certainly is outdated. But the online version isn't outdated (mostly). The current version of Yesod[0] is 1.4 and according to the book site it targets 1.4. That being said contributing to any of Michael Snoyman's (main yesod developer) project (including the book) is easy and fun. He is very responsive and friendly. :) [0]https://hackage.haskell.org/package/yesod https://hackage.haskell.org/package/yesod
- wyager 11y agoHappstack, Snap, and Yesod are popular. I'm partial to Happstack because it doesn't use any wonky extensions like template Haskell. It's just a very straightforward, very fast webserver. It's also very agnostic of how you actually render your HTML, whether it's static serving or dynamic generation with Blaze-builder or something.
- kyllo 11y agoTemplate Haskell and QuasiQuoters are optional in Yesod too. The project scaffold you get when you run `yesod init` uses TH and QQ by default, but you don't have to use the scaffold: http://www.yesodweb.com/blog/2012/10/yesod-pure http://www.yesodweb.com/blog/2012/10/yesod-pure