Hints and Principles for Computer System Design
- 👤 Speaker: Butler Lampson - Microsoft Research + MIT
- 📅 Date & Time: Tuesday 26 May 2015, 16:15 - 18:30
- 📍 Venue: Lecture Theatre 1, Computer Laboratory
Abstract
I have many hints that can be helpful in designing computer systems, as well as a few principles. Two ways to organize them are:
Goals (What you want)—simple, timely, efficient, adaptable, dependable, yummy.
Methods (How to get it)—approximate, increment, iterate, indirect, divide and conquer.
Of course the goals are in conflict, and engineering is the art of making tradeoffs. Some simpler oppositions are:
For adaptable systems, between evolving and fixed, monolithic and extensible, scalable and bounded.
For dependable systems, between reliable and flaky, consistent and eventual.
For incremental methods, between indirect and inline, dynamic and static, experiment and plan, discover and prove.
It also helps to choose the right coordinate system, just as center of mass coordinates make many dynamics problems easier. For example, you can view the system state as a name→value map, or as an initial state and a sequence of operations that transform the state. You can view a function as code or as a table or as a sequence of partial functions. In the complex process of designing systems, both principles and hints can only be justified by examples of what has worked and what has not.
Series This talk is part of the The Wheeler Lectures in Computer Science series.
Included in Lists
- All Talks (aka the CURE list)
- bld31
- Cambridge Centre for Data-Driven Discovery (C2D3)
- Cambridge talks
- Chris Davis' list
- computer science
- Department of Computer Science and Technology talks and seminars
- Graduate-Seminars
- Guy Emerson's list
- Interested Talks
- Lecture Theatre 1, Computer Laboratory
- Martin's interesting talks
- ndk22's list
- ob366-ai4er
- rp587
- School of Technology
- se393's list
- Trust & Technology Initiative - interesting events
- Wednesday Seminars - Department of Computer Science and Technology
- yk449
Note: Ex-directory lists are not shown.
![[Talks.cam]](/static/images/talkslogosmall.gif)

Butler Lampson - Microsoft Research + MIT
Tuesday 26 May 2015, 16:15-18:30