Programmability refers to the ability to control and operate a system using programs.
This has been one of the major areas of innovation during the last few decades.
We can now program various systems which are part of daily life. This appears to be the next stage of evolution following the digital transformation.
For example, phones and cars now run programs and programs in turn can control them.
The next step appears to be programming the devices which underlie the internet and web.
With the invention of packet switching, it was possible to capture data into discrete blocks of bits and send it over a computer network. It is quite fascinating to think about how a packet travels from a source to a destination.
For example, the source may be a computer where you may be searching something on google.com, and the destination may be a server.
The search request on your computer is first encoded into a packet. A packet consists of your search request (which forms the core data portion), and various other information (which forms the peripheral control portion) about the source of the packets and its destination.
As a packet descends and ascends through various intermediary computers and switches, information gets added to or removed from the peripheral portion of the packet.
Finally, the packet arrives at its final destination, where the server reads it and serves up the appropriate response to your request. This response travels back in a similar way and shows up on your screen.
The interesting thing about all this is that all this happens in a fraction of a second and there are billions and trillions of packets traveling all over the internet every moment.
The idea behind the earliest computer networks was to make machines talk to each other. Today, having these machines talking to each other has enabled people to connect all over the world as if they were next door neighbors.