[Haskell-cafe] Haskell, Step by Step, Tutorial, Developing a Whole Application

Mathijs Kwik bluescreen303 at gmail.com
Fri Dec 17 08:13:37 CET 2010

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.shahbazian at 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 at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

More information about the Haskell-Cafe mailing list