Thursday, May 20, 2010

The Right Tool

The Right Tool is an interesting site that allows developers to rank how well a given statement applies to various programming languages. When I mentioned this to a colleague, he recommended Peter Van Roy's Programming Paradigms for Dummies: What Every Programmer Should Know. I haven't had time to read it yet, but from the abstract it seems to be about choosing concepts that are best suited for a given problem, and then choosing a programming language that best supports those concepts.

Hints for Computer System Design

Butler W. Lampson's Hints for Computer System Design. The slogans are summarized in the table below (Figure 1 in the paper):
 FunctionalitySpeedFault-tolerance
CompletenessSeparate normal and worst caseShed load 
  End-to-endEnd-to-end
  Safety first 
InterfaceDo one thing wellMake it fastEnd-to-end
 Don't generalizeSplit resourcesLog updates
 Get it rightStatic analysisMake actions atomic
 Don't hide powerDynamic translation 
 Use procedure arguments  
 Leave it to the client  
 Keep basic interfaces stable  
 Keep a place to stand  
ImplementationPlan to throw one awayCache answersMake actions atomic
 Keep secretsUse brute forceUse hints
 Use a good idea againCompute in background 
 Divide and conquerBatch processing