Overview of reactive programming(blog.hackhands.com)
blog.hackhands.com
Overview of reactive programming
http://blog.hackhands.com/overview-of-reactive-programming/
1 comments
After watching the video, I've got more questions than I did before watching the video. This concept of reactive programming seems like something that would have already been thought of; not only that, but it also seems like it'd be extremely difficult to implement, with little benefit. How is something like this implemented? How would it be implemented relative to the language it's written in? Or can it really only be implemented well in certain languages?
I think one of the most important points of Reactive Programming Jafar brings up is that data can be pushed to a consumer and operated on when it is ready, instead of being stored and then fetched by a consumer later. This is important when you are trying to process real-time transactions and analytics; so you can keep data “moving” through its transformation process instead of “pooling” data in different stores (storage is a common point of back-pressure).
Also, as the producer now controls the workflow, the it can determine when to “dial-up/down” resources based on what its latency looks like; as well as better handle supervision of consumers -- if fault-tolerance is your thing ;)
Regarding the concept of Reactive Programming; it is not necessarily new, but more tooling is coming out that makes it easier to build in the general sense. Erlang with OTP has been commonly used in the past; Scala/Akka is becoming quite popular now along with GoLang paired with a queueing system such as 0MQ. In fact using Java with a JMS system such as HornetQ can be quite effective as well.
At the end of the day, think about having work being passed on to someone who can do it when it is ready, instead of placing work on someones desk and waiting for it to be done. With the former example, if no one were available to do the work when it is ready, being able to take an action right then and there (e.g. spin up a new node/actor/goroutine, etc.) when you know you need to can help reduce latency.
Hope that helps.
Also, as the producer now controls the workflow, the it can determine when to “dial-up/down” resources based on what its latency looks like; as well as better handle supervision of consumers -- if fault-tolerance is your thing ;)
Regarding the concept of Reactive Programming; it is not necessarily new, but more tooling is coming out that makes it easier to build in the general sense. Erlang with OTP has been commonly used in the past; Scala/Akka is becoming quite popular now along with GoLang paired with a queueing system such as 0MQ. In fact using Java with a JMS system such as HornetQ can be quite effective as well.
At the end of the day, think about having work being passed on to someone who can do it when it is ready, instead of placing work on someones desk and waiting for it to be done. With the former example, if no one were available to do the work when it is ready, being able to take an action right then and there (e.g. spin up a new node/actor/goroutine, etc.) when you know you need to can help reduce latency.
Hope that helps.
This makes more sense; to me, it just seems like it's not something that's a big discovery in the field of programming; it just seems like a specific paradigm for programming, and not something worthy of note. Maybe I'm still not understanding it well.
Edit: After looking at the other comment, I can see that it is a big paradigm shift. My bad.
Edit: After looking at the other comment, I can see that it is a big paradigm shift. My bad.
Here are some interesting links I found on implementing reactive programming in databases, Javascript, and Android:
http://news.dice.com/2013/12/06/why-reactive-programming-for...
http://modernweb.com/2013/09/30/functional-reactive-programm...
http://mttkay.github.io/blog/2013/08/25/functional-reactive-...
http://news.dice.com/2013/12/06/why-reactive-programming-for...
http://modernweb.com/2013/09/30/functional-reactive-programm...
http://mttkay.github.io/blog/2013/08/25/functional-reactive-...