1. Can you please briefly introduce yourself.
My name is Jonas Bonér and I am co-founder and CTO of Typesafe. I’m also the inventor of Akka. Typesafe is the company behind the Play Web Framework, the Akka event-driven middleware and the Scala programming language.
2. What is your talk about and what do you hope people will learn?
I will give an introduction on how to build Reactive applications—discuss its underlying core principles; event-driven, scalable, resilient and responsive and show how to connect the dots and use it in practice to build Reactive systems.
3. Why is reactive programming a better programming paradigm?
It is not better for all problems, but it has proved to be an excellent paradigm to solve lots of problems that we are faced with in the enterprise today. Today, applications are deployed on everything from mobile devices to cloud computing architectures, all running multicore processors, serving impatient users that require sub-second response time, zero downtime and rich, collaborative and engaging user interfaces. These challenges, paired with the need for maintainable and upgradable systems that can grow and evolve over time, make it extremely hard to deliver quality software on time. The “traditional” techniques and tools like JEE, app servers etc. simply do not cut it anymore and I believe the applications of today—and the future—must be Reactive to survive.
4. Are there languages and technologies that better suited for reactive programming?
I think you can build Reactive applications in any language since being being Reactive is more about the adhering to the core principles, application design and architecture than specific syntax or language semantics. But certainly, languages or tools that make it easy to work with immutable data and asynchronous computations will make things easier.
Personally, I reach for Scala as my primary language of choice since I think it is an ideal language for building Reactive systems and have worked great as the foundation for both Akka and Play, but on the other hand both Akka and Play provide Java APIs that make it very easy to build Reactive applications in Java as well.
Most Reactive applications today are truly polyglot, so juggling multiple languages and tools is something that developers need to do. But across all of these, the core principles of Reactive remains constant. The important thing is to change the way you think about software design and architecture, then pick the best tools for the job.
5. Where else can people learn about reactive programming?
- A good start is reading the Reactive Manifesto, which describes the ideas behind Reactive programming and its core key traits: http://reactivemanifesto.org
- You should make sure you don't miss the next round of the free 'Principles of Reactive Programming' course on Coursera: https://www.coursera.org/course/reactive
- We are also currently planning for a conference about Reactive applications called React 2014. Join us there for a great 2 days of very practical talks on how to build Reactive applications: http://lanyrd.com/2014/reactconf/
- A good way to get started building Reactive applications is to download Typesafe Activator and browse through all of its runnable tutorials and templates—showing how to build all kinds of Reactive apps: http://typesafe.com/activator. Three templates that are especially helpful are Play + Knockout, Play + Reactive Mongo, and Reactive Stocks (Play, Akka, WebSockets).