Friday, October 21, 2011
The Cup Holder Principle
The story goes that when Toyota engineers started to design the first cup holders in the 80's, they went to a local 7-11 and got every different cup 7-11 had to make sure their design would work on all the cups in current use. These days the cup designers have to make sure their cups will work in today's cup holders.
This is one of the starkest examples of initial Technology for A being driven by B and now the technology for A drives the technology for B.
How much does this happen in theoretical computer science? Do we design algorithms to use an already established data structure? Do we modify our definitions of some object to make it group or a field? Do we create a cryptographic protocol so that some "standard assumption" makes it secure?
Are these good or bad things? Sometimes it is really useful to make square pegs fit into round holes and other times we miss new opportunities.