http://pycon.blip.tv/file/1957071/ watched on April 18, 2009 abstraction as leverage by alex martelli ======================== abstraction is something you can't avoid abstraction is leverage - by working at the higher level you can do a lot with so little (layers & layers) leverage can crush you if things go wrong so if you need care to USE abstraction, you need double layer of care to PRODUCE abstraction all abstraction's leak (spolsky's law) -- where you must get to some of the level below often you sometimes want abstractions to leak! (like distributed filesystems) abstractions can slow you down -- latest research: "to abstract is to procrastinate"; more abstract the "todo" is, the more the students will procrastinate things way in past are more abstracted that more recent ones to achieve, think Concrete: what's the next 1 thing, i'm going to do interaction design: "Joe Blow" vs "the user" 37signals: prefer action over abstraction all abstraction leak because: "the map is not the territory"; before you can abstract, you must see the details; before you can withdraw, you must stand close; abstract only you know all the details (which won't be possible), so be flexible and humble! TCP/IP abstraction leak: designed in an era when everyone was friendly Need to understand several layers below and above (Filesystem: below layers => device drivers, above layers => how are other programmers consume the apis) Knuth: programmer is mostly to shift levels of abstraction from low to high; see things simutaneously at both low & high level Jason Fried: copying skips understanding; understanding is how you grow; you have to understand why something works or why something is how it is; when you copy you miss that; (You just copy the high level abstractions blindly) Jeff Atwood: don't reinvent the wheel unless you plan of learning more abt wheels Bottleneck -- if you remove it you have a glass! Google App engine -- counting how many reads & writes Find bottleneck (where everything must go thru) and monkey patch that; problamatic App Engine provide hooks to do same thing! (Q&A: answer: focus on making things easier to recover when they break, instead of trying to protect everything)
18 April 2009
Notes from Alex Martelli's talk @ Pycon 2009
My notes from Alex Martelli's talk @ Pycon 2009: video here.