Udacity has a free course called Build Native Mobile Apps with Flutter. It’s a fairly comprehensive course, but it starts out with the assumption that the viewer is already steeped in the development world. Within the first 20 seconds, you will hear the words, “Modern, reactive framework.” What is that?
Modern: this word is not helpful. It assumes that the viewer is starting at some “now” that is not defined.
Reactive: this little word is a peephole into a whole alternative, development universe. It’s a change in the way we think about how websites should be delivered. Like a new role-playing game, the familiar characters have new descriptions, powers and limitations. Watch for further posts about the word “reactive”.
Framework: to a new developer, this means that it comes with a lot of stuff already built.
According to Wikipeida, Reactive Programming is “In computing, reactive programming is a declarative programming paradigm concerned with data streams and the propagation of change.” Oh, dear, that is quite an incomprehensible mouthful! Explaining big words with more big words. Well, let’s treat this like an algebra problem and deal with one piece at a time!
Declarative Programming vs. ???
We seem to have quite a lot of programming descriptors here. And, I bet it’s not a nice neat hierarchy. It’s probably more like the photo on the right.
But, digging in, if there is declarative programming, there is also programming that is not declarative. And, indeed that seems to be the case. This set has two items: declarative programming and imperative programming.
The comparisons for declarative and imperative programming tend to run to telling you that with declarative languages you program WHAT to do and with imperative languages you program the steps to do something. These descriptions overlook the fact that, at some point, there have to be specific instructions for the computer to follow. So, instead of one or the other, they should be discussing what level of programming you want to do. Declarative programming is just another level of abstraction. I’m sure that the machine coders and assembly language coders looked at C, Pascal, Fortran and all those other languages as getting away from the “real” programming too.