I too would like such a tutorial. There is a lot of good material explaining certain concepts, and complete examples doing some real-world task. I've read RWH and LYAH and browsed quite some sources from packages from hackage. I understand what I read and I'm able to re-use that knowledge. But I too still feel uncertain about overall application design. Most stuff on hackage are libraries. Binaries are mostly examples or some small wrapper around a library. My OOP background might be causing me to keep thinking that certain parts (model, controller, storage layer) of an application talk to each other by sending messages (method calls). When just trying out something, this thinking leads me to applications that have a lot of funcionality in IO. Sure there are lots of pure functions as well and I occasionally lift them into Monads or Applicatives. Even transformers are becoming less scary as of late. But the parts that tie everything together are IO, they feel very imperative, and I feel this isn't necessary. I can think of some ways to make it better, so sure, by trial and error I learn and indeed it's fun. But I would have a lot more confidence if I knew that there's a certain workflow that's generally considered the right thing to do. Some default ways to organize code (like the MVC pattern), and for tying things together.
It's indeed hard to really explain what I feel is missing. The examples you mention, and some examples I know of (like the blog app in 15 minutes ruby on rails demo) are more like a top-down approach. Most haskell tutorials and libraries are bottom-up. While I like "building" stuff brick by brick to make it really steady, I still feel that first putting up some steady scaffolds are great to give me some boundaries while building. I know what point to build towards, and gives me some insights into progress. In the end ofcourse the scaffolds will be taken away, when the bottom-up brick-laying is complete enough. Don't get me wrong, I'm not asking for a full-blown framework. I know there are specialized frameworks for many things (especially webapps as of late), many of which have some tutorials. I'm asking for something more generic. How do you start, where do you place things, what type of things are usually around, how do you bind them together and most importantly: why. On Fri, Dec 17, 2010 at 12:49 AM, __kaveh__ <kaveh.shahbaz...@gmail.com> wrote: > > Is there a (or more; the more, the better) tutorial for Haskell, > developing a whole application (of any kind: web, windows, console)? > > I mean something like NerdDinner or MVC Music Store for ASP.NET MVC; > Or those whole applications in "in Action" books. > > Thanks > > Edit 1: Thanks to all for your replies. I just wanted to insist on > "step by step developing a whole application" aspect of what I want; > not those tutorials that teach Haskell (they are not bad - They are > not this). I believe if one could understand Haskell well and even > understand it's underlying mathematical foundations, that (absolutely) > does not mean "he can develop an application in Haskell". The problem > with Haskell is not failing to understand it (I can use LINQ and even > developed a DSL based on LINQ - a LINQ provider - and see how it makes > composition tidy) but failing to understand the context (system > thinking). I can use same concepts in C# because I "know" the context > and it is easy to "feed in" new tools/concepts. In Haskell, one can > understand every bit of it (well almost) but there is no context there > to fit in! So (I might not be wrong - but who knows!) there is an > absolute need for this kind of "tutorial" (I wish there was a better > name for this). > > Edit 2: I believe there is a way to learn and teach Haskell in a neat > and straight way (That does not mean I think Haskell is a pragmatic > programming language - don't get me wrong; I appreciate it; but start- > up barrier with Haskell it too high; It has still a long way ahead to > be considered as a common purpose programming language and may never > does. But Haskell is definitely father of future programming languages > - and also not so future ones!) > > Note: I have asked this question on stackoverflow (http://goo.gl/ > bCFf7) and I will try to sync useful information as much as possible. > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe