Hints for Computer System Design Butler Lampson, 1983 If there's been an unifying theme for The Morning Paper posts over the last couple of weeks, it's probably this: learning from the hard-won expertise of some of the greats in our field. So it seems fitting to end this run of papers with Butler Lampson's "Hints … Continue reading Hints for computer system design
Month: September 2016
The Rise of Worse is Better
Lisp: Good News, Bad News, How to Win Big Richard Gabriel, EuroPal 1990 While John Hughes was lamenting that the world at large didn't understand the benefits of functional programming, Richard Gabriel was considering the reasons for the difficulties within the Lisp community: "Lisp has done quite well over the last ten years... yet the … Continue reading The Rise of Worse is Better
Why Functional Programming Matters
Why Functional Programming Matters John Hughes, Research Topics in Functional Programming, 1990 (based on an earlier Computer Journal paper that appeared in 1989). 1989/1990 must have been a fairly dark time to be a functional programmer. Object-oriented programming was rising in prominence and the dream that industry would pay attention to functional programming looked like … Continue reading Why Functional Programming Matters
Data on the Outside versus Data on the Inside
Data on the Outside vs Data on the Inside Pat Helland, CIDR 2005 Another (modern) classic today, Pat Helland's wonderful 2005 paper on thinking about data in service oriented architectures. Sticking with the contemporary feel I'm going to write SOA as 'microservices' for the rest of this post. Helland shows us that we need to … Continue reading Data on the Outside versus Data on the Inside
On designing and deploying internet-scale services
On designing and deploying internet-scale services James Hamilton LISA '07 Want to know how to build cloud native applications? You'll be hard-pushed to find a better collection of wisdom, best practices, and hard-won experience than this 2007 paper from James Hamilton. It's amazing to think that all of this knowledge was captured and written down … Continue reading On designing and deploying internet-scale services
Reflections on trusting trust
Reflections on Trusting Trust Ken Thompson, 1984 (Turing Award Lecture) Another Turing Award lecture to close out the week, this time from Ken Thompson who asks: To what extent should one trust a statement that a program is free of Trojan horses? Perhaps it is more important to trust the people who wrote the software. … Continue reading Reflections on trusting trust
Computer programming as an art
Computer Programming as an Art Donald Knuth, 1974 Some programs are elegant, some are exquisite, some are sparkling. My claim is that it is possible to write grand programs, noble programs, truly magnificent ones! How do you follow David Parnas, Fred Brooks, and Tony Hoare? Perhaps with a little Donald Knuth... Today's choice is Knuth's … Continue reading Computer programming as an art
The Emperor’s Old Clothes
The Emperor's Old Clothes C.A.R. Hoare, 1981 Today we'll be looking at Tony Hoare's ACM Turing Award lecture from 1980, as published in the CACM in 1981. It's another piece that had a big influence on my professional career with its emphasis on the pursuit of simplicity, the need to tame complexity and ambition, and … Continue reading The Emperor’s Old Clothes
No Silver Bullet – essence and accident in software engineering
No Silver Bullet: Essence and Accident in Software Engineering Fred Brooks, 1987 We hear desperate cries for a silver bullet - something to make software costs drop as rapidly as computer hardware costs do.... Not only are there no silver bullets now in view, the very nature of software makes it unlikely that there will … Continue reading No Silver Bullet – essence and accident in software engineering
On the criteria to be used in decomposing systems into modules
On the criteria to be used in decomposing systems into modules David L Parnas, 1971 Welcome back to a new term of The Morning Paper! I thought I'd kick things off by revisiting a few of my favourite papers from when I very first started this exercise just over two years ago. At that time … Continue reading On the criteria to be used in decomposing systems into modules