The British Museum is one of my favourite places because it forces me to take on a perspective of 5000 years or more. Take the Mesopotamian clay tablet shown below: it records the allocation of beer by administrators in the city of Uruk. The symbol representing beer is apparently an upright jar with a pointed base, amounts are notated by circles and semi-circles and, at the bottom left, there is a figure drinking from a bowl.
It's about 5100 years old. Now, pause for a moment to consider its age.
The difference in time between today and the era of Julius Caesar and Cleopatra is 1000 years less than the period between the creation of the Mesopotamian tablet and the era of Caesar and Cleopatra. Put simply, Caesar and Cleopatra are closer in time to us (by 1000 years) than they are to the Mesopotamian scribe who recorded the allocation of beer to citizens of Uruk.
It is intriguing that the tablet is political in nature, an instance of a new technology and of economic interest. Not only is it evidence of the machinations of the state in Uruk but it demonstrates how a new technology (writing) changed the capabilities of such a state: for the first time it was possible to keep records and thus run a bureaucracy on a large scale. Furthermore, it records receipt of payment requiring concepts such as balance, debt and a measure of value (in beer).
Such concepts (writing, state bureaucracy and fundamental economics) are unremarkable in today's world, making it difficult for us to appreciate how important, strange or unusual they must have seemed when they first appeared. I wonder what important, strange or unusual aspects of our time will be unremarkable to our descendants. Furthermore, what aspects of our lives that seem fixed today will be completely different 5000 years hence?
Guessing the future is a fool's game. As Alan Kay famously stated,
"The best way to predict the future is to invent it."
Something from today that "invents the future" is programming, and I'm guessing the Lisp program from 1960 copied below is our Mesopotamian tablet for future generations:
(shadow '(trace untrace)) (defun trace (functions) (eval `(cl:trace ,@functions))) (defun untrace (functions) (eval `(cl:untrace ,@functions))) (defun define (definitions) (dolist (def definitions) (eval (if (and (consp (second def)) (eq 'lambda (car (second def)))) `(progn (defun ,(first def) ,@(cdr (second def))) (defparameter ,(first def) ,(second def))) `(defparameter ,(first def) ,(second def)))))) (defun stop (arguments) (throw 'driver-end-of-deck nil)) (defun fin (arguments) (throw 'driver-end-of-deck nil)) (defun test (arguments) (princ arguments) (terpri)) (defun driver (path) (with-open-file (cards path) (catch 'driver-end-of-deck (loop (let ((first-char (read-char cards))) (if (char= #\* first-char) (read-line cards) ; comment (progn (unread-char first-char cards) (let* ((command (read cards)) (arguments (if (member command '(stop fin test)) (list (read-line cards)) (read cards)))) (print (apply command arguments))))))))))
Despite this code being more than 50 years old, it is still understandable to anyone who has read my recent Lisp article. Furthermore it forces me to wonder what the computational world will be like in 5000 years. I hope the world wide web will be long gone and replaced with something much more capable and better engineered and I guess that new computer architectures will arise to replace the Von Neumann / Harvard based models in current use.
Perhaps the final word should be another Alan Kay quote:
"I believe that the only kind of science computing can be is like the science of bridge building. Somebody has to build the bridges and other people have to tear them down and make better theories, and you have to keep on building bridges."
Image credits: Mesopotamian tablet © Trustees of the British Museum