Electronic spread sheets - A quintessential example

Electronic spreadsheets such as Excel software help one to input values in Cells, in a program-specific manner (for example-A7 , B6, and so on). They also allow you to embed computation as a value of a cell (such as =$A7*$B6 ) using formulas. Whenever a value is changed in A7 or B6, the resulting formula will be recomputed. Actually, the change is propagated to cells where there is reference to the cell which changed. This can be called a type of reactive computation. Let's see our Pythagorean triple generation in action on Excel:

Electronic spread sheets - A quintessential example

In the preceding table, you can see that column F indicates (achieved with conditional formatting using icon sets) whether a, b, and c are Pythagorean triples or not.

The hidden columns D and F compute the values of (a2 + b2) and c2 independently, and column F just checks for an equality in order to display a potential match. All these are done, of course, using formulas, and the changes across cells are propagated automatically.

The following screenshot illustrates this:

Electronic spread sheets - A quintessential example

This example should give you an idea of how reactive programming works, and more interestingly, we will use this trivial example to illustrate a deep consequence beyond reactive programming. This spreadsheet program elegantly models the Model-View-ViewModel (MVVM) pattern, an architectural pattern heavily employed in WPF, Silverlight, and now, most of the prevalent HTML UI frameworks (JS-based). The Model in this case would be columns A and B (consider each row as entities and the columns as entity attributes). The View Model would be columns D and E (derived attributes from the model attributes). And column F would be the View which is bound to the View Model (and any change in View Model would be synchronized with the View; as a matter of fact, any changes in the Model would be propagated to the View Model and further down to the View).

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.23.101.60