Building Blocks: 1 – Data

Data is everything (and everything is data).

For a long time I had a fundamental misconception about programming.  I believed that systems were walled off from each other, isolated, each an independent functioning whole and that achieving communication between systems was difficult or impossible if the systems were not built of a common architecture.

The gap in my knowledge was the understanding that all systems are built of a series of message exchanges – and the content of each message is data.  All that happens in any information system is the continuous exchange of data, between components, between systems, between users and between human and computer.

So the big question is then: What is data?  Well, like I said at the top – everything is data and data is everything.  To be most accurate, the content of every message is data.  In our human world we exchange data on a massive scale everyday – every word, gesture, facial expression, printed or digitised word and image, taste, aroma, sound and texture becomes data that we readily exchange.  In human:computer interaction, the palette of datatypes is much smaller – basically every message consists of text.

My misunderstanding grew out of the semantic and syntactic differences between each of the programming languages I learned – knowing that, for example, I couldn’t mix .asp and .php in a webpage how could a system built with .asp communicate with a system built with .php? But humans have built computers and have modelled their own behaviour. An English speaker can communicate with a French speaker despite having different languages – they just need to standardise the messages they exchange into a mutually intelligible format.

Messages exchanged between computers must be structured to obey expected and consistent rules.  The same conventions apply to human language and structured text formats:

It seems incredible to be able to define communication with only three rules but that’s about it – think of something you’d say to somebody in English – you can classify it using just those three rules.

There are a handful of structured text formats in common use:

So, equipped with a standardised way of structuring a message, as long as the sender and recipient apply the same rules to parse the message, the systems can communicate, whatever their architecture.

It comes almost as a disappointment to discover that really there is no magic to it, that it’s not a complex and arcane art to make an Actionscript component talk to a Java component all we need to do is provide a common means of communication.

All information systems are built on this basic premise; the world wide web is just the post office that routes data from server to client, the cloud is just an internet of systems exchanging messages and instructions.

Three simple rules have defined human communication – that’s the magic.

Posted on September 28, 2011 at 3:51 pm by Alex · Permalink · Comments Closed
In: Building Blocks, Programming · Tagged with: , , , , , , , , , , , , , , , , ,