Posted on 09.11.11
Written for “Snapshots of the future” in the 1500th issue of Felix, Imperial College London’s student newspaper.
New programming languages could lead to advances in synthetic biology.
There’s a lot of speculation about where the future of computing lies. Quantum computers and qubits promise to open up computational problems that are infeasable using bits alone; nanotech materials such as graphene look set to change the fundamentals of computer hardware, replacing silicon as the basis for chip design; and electrons might give way to photons as we strive for higher speeds and bandwidth via optical processors. But perhaps strangest of all is the future envisioned by the fledgling field of computational biology, which aims to make computational devices out of living cells.
Studying how cells process information could help with understanding life itself. Last year, the genome entrepreneur, Craig Venter, famously made the first synthetic cell by copying the genetic code of one species of bacteria and inserting it into another – prompting many questions quite literally about the meaning of life. However, swapping around an existing DNA sequence – or biological program – only goes so far. What if we were to specify arbitrary functionality for cells – or, in other words, write our own biological programs?
That’s just what ex-Imperial student Andrew Phillips is working on. Phillips, who now heads the Biological Computation group at Microsoft Research Cambridge, was recently named one of the world’s top innovators under the age of 35 by Technology Review for his research into programming biology. Typically, synthetic biology involves low-level tinkering and the manipulation of DNA strands directly. By developing a programming language that compiles to DNA sequences instead of machine code, Phillips allows cell behaviour to be specified at a high level of abstraction, making it easier to design biological programs from scratch.
According to Phillips, through collaboration with experts in programming languages, biologists, neuroscientists, and even ecologists, his group at Microsoft Research has “the scope to research and develop what might become the key technologies of the next decade or the decade after that. It’s possible that programming biology may one day surpass the world of programming silicon”.
Posted on 20.10.11
Dennis Ritchie (standing) and Ken Thompson
The world has lost two giants of technology in as many weeks.
The news that Dennis Ritchie died on 12 October, aged 70, after enduring cancer and heart disease for several years, elicited a quiet response. Ritchie was the creator of the C programming language and one of the co-inventors of the Unix operating system, which means we’re living in a world Ritchie helped to invent.
“When Steve Jobs died last week, there was a huge outcry, and that was very moving and justified”, said Rob Pike, a colleague of Ritchie’s, speaking to Wired. “But Dennis had a bigger effect, and the public doesn’t even know who he is.”
Pretty much all of the daily interactions we have with technology owe something to Ritchie’s creations 40 years ago. The internet is built on Unix, from the server farms behind Google and Amazon to the router through which you’re locally connected. Your TV probably runs an operating system based on Unix. As does your Mac, your iPhone, your iPad – OS X and iOS are built on BSD, a Unix variant – and of course any Linux machine and Android device.
Then there’s C, the language in which Unix – and a vast amount of other software from the core of Windows to MATLAB – is written. And when software isn’t written in C there’s a very good chance it’s written in a language descended from, or heavily influenced by, Ritchie’s creation, whether C++, Java, or C#.
Unix was developed by Ritchie and Ken Thompson at AT&T’s Bell Labs in the 60s after the project they had been working on – an ambitious multi-user operating system known as Multics – was dropped by the company for being too complex. Young, idealistic, and stubborn, Ritchie and Thompson decided to build a simpler, streamlined version of the operating system by themselves: Unics – or Unix – a pun on Multics was the result.
C was designed by Ritchie initially as a means to an end in developing his new operating system, but its versatility and ability to be compiled to different computer architectures quickly made it an enormously useful tool. The C Programming Language, the book Ritchie wrote with Brian Kernighan, setting out the standard definition of the C language, has become a classic.
Due to its official status as a telecoms monopoly, AT&T was at first unable to enter the computer industry and thus unable to market this new operating system it suddenly had its hands on. So Ritchie and Thompson simply gave their creations away to friends and colleagues in universities, who used them to teach a generation of programmers, engineers, and computer scientists.
Even more crucially, Ritchie’s initial free dissemination of Unix and C led to the free software movement. When AT&T eventually wriggled itself into a position where it could make money from Unix, MIT researcher Richard Stallman started making a free version of Unix under the GNU (Gnu’s Not Unix) umbrella. GNU – along with its Linux kernel and myriad satellite utilities – is at the core of everything open source.
It’s so easy to forget about the countless, unsleeping machines behind the slickness of today’s interactions with technology, but Ritchie lives on in the hearts of most of them. Now’s a good time to spare a thought for both them and him.