When designing software, we used to be concerned with data structures and algorithms, or ways of understand data organisation and methods of processing which acted like chemical formulae. For example recursion. In a few lines of code a function that calls itself. A classic example is factorials.
5! === 1 * 2 * 3 * 4 * 5 === 120
In Javascript:function factorial(n) {
if (n === 0 || n === 1) {
return 1;
}
return n * factorial(n - 1);
}
It is recursive, as the factorial function calls the factorial function. Who know programming languages could be self-obsessed?
Then we become more concerned with tying data to functionality and making some data private.
We became concerned with weird ideas like ‘Encapsulation’ and ‘Inheritance’ and if we were really up to it, ‘Abstraction’ and ‘Polymorphism’.
The age of Object Oriented programming took over as ‘The Right Way’ to think, and do stuff with our programming language. Championed by Java and C++.
Software development accelerated and then the Web was added to the picture, and client-server models and network sockets became derigueur.
Keep reading with a 7-day free trial
Subscribe to Echos of Reason to keep reading this post and get 7 days of free access to the full post archives.