The fundamental concept here is the monad, and Greg has a novel and conceptually simplified explanation of what a monad is and why it matters. This is a very important and required first step in the series since the whole of it is about the application of monadic composition to real world web development.

In part 2, Greg continues to take us on a monadic journey, en route to the design a composable web system from client to database and back. Tune in. Learn.

@intelman: You could try the html5 "support" but to not waste your time i can tell you that it doesn't work, shocking ! right Only there so they can say that they have "support" for it. yeah right...Silverlight was bad from the start and has only gotten worse by being adopted by naive developers

Oh, an intro to comonad, yeah. but IIRC Bart refers monad as 'get stuff out' and comonad 'put stuff in' while Greg used the terms in a different direction, kinda confusing.. Now looking forward to the technical stuff !

On the silverlight-fullscreen thing I have had same problems on my firefox, silverlight pops a dialog asking for permissions of fullscreen viewing but the dialog is not clickable somehow, then I can't switch to the video nor the browser, the process is blocked and can only be killed. then the video started play on is own ! magic ! OK maybe that's because plugin-container.exe is still running or something. but the thing can actually hose a system.

@Mr Crash: Whatever... There isn't a single ignored item in the Feedback forum. Duncan and team, between writing code, designing features, prioritizing bugs and feature requests, answer most if not all of the feddback posts (assuming they warrant a reply. Sometimes, Duncan et al just fix or add without responding).

With monads we can shape, wrap and roll computational complexity, making complexity composable. Monads are the ilk of complex categorical mathematics, but they mean something tangible (more than abstract) and most importantly they are fundamentally useful.

I love this series and sitting in the room when Greg delivers the monadic news is priceless.

Thank you, Greg. We're so fortunate to get to have you on Channel 9. You're always welcome here.

It seems that Greg is a propnent of Scala and it is one of the languages on my list to learn.

The major issue with Scala is that the JVM does not support tailcall optimization (the CLR does).

Not having tailcall optimization is a serious limitation for functional languages. Scala does create loops out of simple recursive calls but in complex composition it can still run into stack overflow issues.

I've got to be honest, I didn't really get any of this. And I do functional programming (although not in Haskell). Maybe these days I have my "how does this help me exactly" hat on a bit too often, but I didn't see anything helpful in this or the previous video.

@rhm: That's your right! Don't watch the series anymore then It's OK. Others find this quite educational. Not every one of the lectures on C9 will be 100% pertinent to everybody out there... I think that's fine. We have something for most all developers and technophiles out there, so I know you can find content that is pertinent to your wants and needs. As always, we welcome your suggestions and will do our best to act on them.

@rhm:At first glance I didn't see practical application either. I've been viewing a few monad articles and find that I learn something from each one. If you're doing functional work my best guess is that monads are very applicable. For a different perspective that helped me tie this to "something useful" check out http://james-iry.blogspot.com/2007/09/monads-are-elephants-part-1.html.As for this series, I think Greg is great! It's a bit mind bending and I think it will take multiple viewings to get my mind around much of what he is trying to communicate. Monads are like drugs, you take some and everything feels really different, but is a bit blurry;)

my crazy thought is, maybe one day webservices like WCF can expose services not as a single layer of calls and callbacks but a whole network of of composable actions, and client can put a serie of calls into a monad and execute in the server, maybe acrosee many layers or services, then take the return value back from an async callback ... just random thoughts

This is interesting, but I don't really understand why the lengthy explanations of monads are really necessary, with all the vague comparisons and such. We got this stuff in one lecture during functional programming classes (CS). It's not simple but not extremely difficult either. I personally am more interested in uniqueness typing, something not mentioned at all on this site. It is supported in concurrent clean: http://wiki.clean.cs.ru.nl/Clean

Concurrent Clean also has a library for web development which essentially uses a Task monad for workflows. In Clean, monads can be implemented using uniqueness typing. The library is called iTasks and utilizes the composition of the Task monad to create complex workflows.

It would be nice if the language examples were in C#..I guess you could ask why I am asking to play to the audience in a language that they already know, but normally "general acceptance" is the best way to get the point across.

It would be nice if the language examples were in C#..I guess you could ask why I am asking to play to the audience in a language that they already know, but normally "general acceptance" is the best way to get the point across.

charles in the next video would it be possible to either do a split screen of the slides and greg or just make the slides a download and only show greg (id prefer the later). this popping back and forth between slides and greg is very confusing.

charles in the next video would it be possible to either do a split screen of the slides and greg or just make the slides a download and only show greg (id prefer the later). this popping back and forth between slides and greg is very confusing.

Noted (but the next one is already produced - sorry...). Are the slides out of sync or something? Can you elaborate on what's confusing you?C

Remove this comment

Remove this thread

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums, or
Contact Us and let us know.