Victor is an Android engineer at Square, where he’s worked on shipping Square Register and Square Terminal over the last 5 years. Previously, he was a Windows Phone 8 developer working on various mobile apps at a consultancy.
Understanding the principles of Rx, Flow, Compose, and more, through Programming Paradigms
14:10 > 40 min
In the last 5-10 years we've seen a meteoric rise in very similar libraries across the industry: RxJava, React, Kotlin Flow, Compose, Workflow. As these libraries have sprung up, we're able to identify some common ideas between them, like uni-directional data flow, but these definitions have been loose and quite unspecific, and it seems few people even today can explain what is reactive programming with much confidence.
In my search to really understand the core principles behind these libraries, I discovered a in-depth trove of programming paradigms and how they applied to our day-to-day work. We've all heard about imperative programming, functional programming, and object-oriented programming, but how much do we hear about relational programming (SQL), continuation programming (coroutines), or concurrent logic programming (Excel)? Different programming paradigms are suited for different problems, so having a vocabulary to explain why we probably wouldn't use MapReduce to write Android UI can be helpful.
This session introduces and then dives into examples of how to use programming paradigms to build stronger abstractions and fundamentally safer code in our day-to-day work. Learning about how the programming model we're working in will give us a different lens to view the rules of the code we work on.