Published on Monday, April 12, 2021

I'm not a programmer by education. I took one programming course in school, everything else is either self taught or learned on the job. I spend a lot of time reading books and blogs or watching online courses about tools and practices so I can improve. I want to share some of the concepts, either through reading or through work, I've encountered recently. I think these are interesting enough that every programmer should be aware of them.

Reactive programming

The words "data driven" have crept into the vocabulary of every programmer, manager, and business analyst. If you've been writing (or even using) software for any amount of time recently, it's pretty obvious to see why this is the case. Users care about seeing more and more data. They want more data and they want it real time. Users also want to interact with their data, and they want their interactions to propagate at real time.

Reactive programming is, in theory, just a declarative programming paradigm that allows software writers to easily and concisely deal with change to data. Reactive programming libraries, like RxJs, have found themselves at the center of pervasive application frameworks like Angular. That's why I say that every application developer should at least be aware of the concepts of Reactive Programming. I am not an expert (yet), so I will share some links to resources that I've been using to learn the concepts in hopes of helping others:

The introduction to Reactive Programming you've been missing

ReactiveX Introduction

ReactiveX in their own words:

... is a combination of the best ideas from the Observer pattern, the Iterator pattern, and functional programming

So, I think a refresher on the underlying patterns is necessary,

Observer pattern

Iterator pattern