The practice of putting wrappers around paradigms, API's, etc. that we don't like to deal with directly. Whether this is a good thing or bad is subject to debate. While few dispute wrapping lower-level operations, sometimes high-level API's or paradigms are also wrapped to give us the view or paradigm we want to see. Example of OO wrapping SQL: method getAllSmallPinkScarves() { sql = "select * from products where product='scarf' and color='pink' and size='small'"; return(qr = new database.query(sql)) } (See NoStrings for more on this practice.) Example of procedural wrapping OO to privide a shorter print call: function print(myString) { system.io.output.writer.print(myString); } How about wrapping procedural, with functional to escape low level loops function forEach(aList, aFunction){ for(var i=0;i