Hacker News new | past | comments | ask | show | jobs | submit login
Principles of Reactive Programming (coursera.org)
215 points by steveb on Aug 27, 2013 | hide | past | favorite | 47 comments

I think this course looks like it could be a lot of fun. Erik Meijer is a great teacher with lots of enthusiasm. The introductory video makes it look like we just walked in on a particularly awkward moment, though, like they set the bench they're all sitting on down in a suspiciously bad smelling elevator car.

If you haven't see Erik Meijer's haskell course and are interested in that type of thing, check it out:


It uses this really great book by Graham Hutton called Programming in Haskell.

Programming in Haskell is an excellent book, I liked it a lot more than some of the usual recommendations (Learn You a Haskell, etc).

The course is awesome! Highly recommended.

I don't think I've ever signed up for something more quickly than when I saw this announcement pop up on Twitter. Really enjoyed the Functional Programming with Scala course when it ran last year, and I'm happy to see the sequel come to fruition.

The Functional Programming class I took last year was pretty much as good as the expensive CS courses I took at Big Name U. Oh, and it happened to be taught by the guy that invented Scala. I'll admit it, I'm turning into a Coursera fanboy.

Note that the Functional course is a recommended prerequisite for the Reactive one and the former runs again at the beginning of September, meaning you can do both in sequence.

Is there a place to download coursera videos like you can with Udacity? I'm really interested in the Scala course, but it just kind of sucks that it can only be taken during a certain time frame. I've been working my way through Programming in Scala, but the course seems like it'd be a great compliment for understanding the "functional" style of programming.

As it is now, I feel I'm simply a compiler which translates my imperative Python background into Scala syntax.

While the course is running (at least for the course I'm currently enrolled in) every video has a download icon at the far right.

At times (for me), the time-based nature of coursera is a very good thing. If I know that I need to complete a homework by 1am Sunday night, which means I need to finish watching this week's videos by Thursday night, that means there's a chance I'll actually do so. Without that deadline (and with no money or grade on the line) HN or Reddit or other timewasters are far too tempting.

Me too, a deadline really forces me to get down to studying, it's all too easy to let life get in the way otherwise!

If you go on the course page


You see archives of the two previous iterations of the course. Their material is always available, and you can stream or download the videos from there.

Huh, I don't see any archive links on that page, where are they?

It may just be for people who previously took the class, I haven't taken it and cannot find any of the archives mentioned by modersky, but I can find it on other courses I have taken

It looks like you are right. Only enrolled students can see the material and enrollment is closed for the previous sessions. I'll check whether there's a practical way to make the material available.

That would be great, very likely won't have time to participate in the Scala FP course this session, but would love to see the videos regardless.

Count me in here. Would love access to lectures or videos.

In case you didn't notice, this course is being co-instructed by Erik Meijer, creator of the fantastic reactive extensions for .NET library.

http://msdn.microsoft.com/en-us/data/gg577609.aspx http://msdn.microsoft.com/en-us/library/hh242985(v=vs.110).a...

I encourage anybody who has to write or maintain more than a few lines of C# or .NET code to check them out (and possibly take this class if it turns out to be good).

If you're into FRP in .NET, please checkout the OLINQ project on github. It lets you define LINQ queries against reactive sources and have them update themselves as the sources change, letting you do things like realtime aggregation in a couple of lines of code.

I think it's wickles.


Fantastic! I've been wanting to learn FRP for quite some time. The fact that this is a follow-up to the awesome Scala course is a bonus.

I can't wait for this to begin. =)

EDIT: The syllabus doesn't mention any FRP libs. I'm surprised, especially as one of the professors is the author of RX. Maybe because there isn't a canonical one in Scala?

They don't mention FRP. RX is a subset of FRP oriented around just event streams without continuous signals; think of it as FRP lite. Their actors and futures unit makes me wonder if this is also about concurrency in addition to reactivity. Nothing about state repair at all.

If Conal Elliott ever decides to teach a coursera on FRP...

One of the blog posts[1] I saw announcing it had a few more details than the course page, including a mention of RxJava.

[1]: http://letitcrash.com/post/59504788607/new-coursera-course-o...

Back when Borders was still around I stumbled upon a Functional Reactive Programming book by Paul Hudak. To this day it's still one of my favorites. If you know Haskell and don't want to learn Scala, you might enjoy this as an alternative to the course. The book is called The Haskell School of Expression: Learning Functional Programming through Multimedia.

Amazon link: http://www.amazon.com/The-Haskell-School-Expression-Programm...

As far as I know, Hudak has updated and renamed his book to The Haskell School of Music, and it's available for free from the Yale Haskell Group's website here: http://haskell.cs.yale.edu/?post_type=publication&p=112

The book is a really awesome way to learn Haskell. However, very little of it is actually about FRP; there's one section about GUIs using FRP, and it doesn't go very much in depth.

Pretty sure that's just a different book by the same author. "Updating" a book on graphics to make it about music instead doesn't sound like a second edition kind of maneuver.

... especially true for one dealing with an "immutable" programming language


Typesafe also just announced a tutoring program for this and the intro course.


I haven't taken Odersky's first course, but I'm fluent in Java and Clojure. Do you guys think that would suffice or will Scala knowledge be a prerequisite?

The prerequisite course starts in about 2 weeks [1], so you can still take it if you want before Principles of Reactive Programming starts, you'll be able to see what parts you feel you can skip and which ones are useful. There are other quick introductions to Scala you can take [2],[3],[4] to get a feeling of it.

[1] https://www.coursera.org/course/progfun

[2] http://www.scala-tour.com

[3] http://scalatutorials.com/tour

[4] http://learnxinyminutes.com/docs/scala

It starts in two months so could give Martins books a read. And I think that would be enough. Some of the lectures were based on his book and others on SICP.

If you're well versed in Clojure and FP principles, the only difference for you would be in picking up Scala syntax, in my opinion.

I'd say the type system is a non-negligible difference. Still, knowing Java and Clojure is a good foundation for learning Scala.

you won't have trouble. that said, the first Scala course is excellent independent of its use of Scala because of its fun/challenging homework assignments

This is a follow on course to Functioal Programming with Scala, and led by Martin Odersky, Erik Meijer and Roland Kuhn. Signed up

This is the most awkward introduction video Ive seen so far. I really enjoyed Erik's introductory course on haskell so really looking forward to this course.

Yes, sorry for the video :-) We had just 1 hour in the same place together, and that was in a hotel conference room and we were all tired from our respective conferences. We'll shoot another one when we meet next and will replace the video then.

Cool, I got a response from Martin Odersky. I really enjoyed your course on scala :) so looking forward to this one.

Signed Up!! The Functional Programming with Scala Course was very good.

Note: this is not about “FRP”

(if you don't believe me — http://www.reddit.com/r/haskell/comments/1l7ru2/principles_o...)

That's a good thing to point out. The "reactive programming" in the course title comes not from the acronym FRP but from this:


This is awesome news. I really enjoyed the Functional Programming with Scala course and can't hide my excitement for this one.

This is also interesting to me because it shows that teaching and learning does not have to be at some big name University.

Can some explain like I'm 5 the tradeoffs between Go/Scala/JS[node.js]? I've been googlin', and there aren't enough articles that compare and contrast the three.

Go is supposed to be a better C.

Scala is supposed to be a better Java.

JS is supposed to be popular.

EDIT: Go is intended to be a systems-programming language with an emphasis not only on runtime efficiency and concurrency, but additionally on such things as compilation speed.

Scala is intended to be a hybrid OO-functional language that is approachable by a broad class of mainstream programmers (i.e., Java programmers), with a type system considerably more sophisticated than Java. The emphasis is, I'd say, on a language that has long-term potential, at the cost of a somewhat problematic toolchain.

JavaScript's enormous advantages are that it is universally available, easy to approach, and flexible enough to support functional techniques.

Without being an expert on any of them:

* Go: statically typed, no type parametrization, good support for CSP-like concurrency, deeply imperative language. Proponents site its speed of compilation, simplicity, and growing community.

* Scala: statically typed, modern and sophisticated type system, supports OO and functional programming, runs on the JVM, has good concurrency support.

I really don't know enough about Node.js to say anything about it. It's Javascript, so it's dynamic typing and a mix of OO and functional programming.

My only complain it's in Scala. I wish there were the same course but in Haskell.

Hm, did Erik left Microsoft for Applied Duality, Inc. ?

Yes, but work continues on Rx with MS Open Tech and Microsoft, especially since it is open source. * Disclaimer * I am an Rx team member

Thanks, as it says, Brian Beckman has also left MS.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact