<div dir="ltr"><div><div style="background-color:transparent"><font face="verdana, sans-serif">Hello Everyone,</font></div><div style="background-color:transparent"><font face="verdana, sans-serif"><br></font></div><div style="background-color:transparent">
<font face="verdana, sans-serif">Tonight's presentation will be "Good enough" is good enough! by Alex Martelli.</font></div><div style="background-color:transparent"><font style="background-color:transparent;font-family:verdana,sans-serif"><br>
</font></div><div style="background-color:transparent"><font style="background-color:transparent;font-family:verdana,sans-serif">The meeting will begin at </font><span style="background-color:transparent;font-family:verdana,sans-serif">7:30PM and </span><font style="background-color:transparent;font-family:verdana,sans-serif">the presentation will commence at </font><span style="background-color:transparent;font-family:verdana,sans-serif">7:40PM</span><font style="background-color:transparent;font-family:verdana,sans-serif"> after the usual announcements. </font><span style="background-color:transparent;font-family:verdana,sans-serif">See: </span><a href="http://www.baypiggies.net/" target="_blank" style="background-color:transparent;font-family:verdana,sans-serif">www.baypiggies.net</a><span style="background-color:transparent;font-family:verdana,sans-serif"> for more details.</span></div>
<div style="background-color:transparent"><font face="verdana, sans-serif"><br></font></div><div style="background-color:transparent"><font face="verdana, sans-serif"><b>Location:</b></font></div><div style="background-color:transparent">
<b><font face="verdana, sans-serif"><br></font></b></div><div style="background-color:transparent"><font face="verdana, sans-serif"><b>LinkedIn Corporation<br>2061 Stierlin Ct (aka Bldg 6)<br>Room - Neon Carrot<br>Mountain View, CA 94043</b><br>
</font></div><div style="background-color:transparent"><font face="verdana, sans-serif"><b><br></b></font></div><div style="background-color:transparent"><b><font face="verdana, sans-serif"><br></font></b></div><div style="background-color:transparent">
<font face="verdana, sans-serif"><b>Abstract:</b><br></font></div><div><div><font face="verdana, sans-serif">Our culture's default assumption is that everybody should always be striving for perfection -- settling for anything less is seen as a regrettable compromise. This is wrong in most software development situations: focus instead on keeping the software simple, just "good enough", launch it early, and iteratively improve, enhance, and re-factor it. This is how software success is achieved!</font></div>
<div><font face="verdana, sans-serif"><br></font></div></div><div><font face="verdana, sans-serif">In a 1989 keynote speech at a Lisp conference, Richard Gabriel had a "light relief" section where he caricatured a SW development approach he called "worse is better" (AKA "New Jersey approach") and contrasted it with what he called "the right thing" (AKA "MIT/Stanford approach")... and despite the caricatural aspects reluctantly concluded that NJ was the most viable approach, identifying several of the actual reasons (speed of development, less monolithic designs, systems more easily adaptable to a variety of uses [including changes in the underlying requirements], ease of gradual incremental improvement over time, ...).</font></div>
<div><font face="verdana, sans-serif">The debate hasn't died down since (Gabriel himself contributing richly to both sides (!), sometimes under the pseudonym "Nickieben Bourbaki"). My favorite Gabriel quote is "The right-thing philosophy is based on letting the experts do their expert thing all the way to the end before users get their hands on it [snip] Worse-is-better takes advantage of the natural advantages of incremental development. Incremental improvement satisfies some human needs".</font></div>
<div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">However, while the debate is still raging, reality has steadily been shifting away from "the right thing" (inherently "Cathedral"-centralized, with "Big Design Up Front" a must, conceived with academia and large firms in mind, and quite unsuited to always-shifting real-world requirements) and towards "the NJ approach" (suited to "Bazaar"-like structures, agile and iterative enhancement, dynamic start-ups and independent developers, in a world of always-shifting specs).</font></div>
<div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">In this talk, I come down strongly on the side of "the NJ approach", illustrating it and defending it on both philosophical and pragmatical grounds.</font></div>
<div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">I draw technical examples from several areas where the systems that won the "mind-share battles" did so by focusing on pragmatic simplicity ("good enough") to the expense of theoretical refinement and completeness (the quest for elusive perfection), leading to large ecosystems of developers bent on incremental improvement -- the TCP/IP approach to networking contrasted with ISO/OSI, the HTTP/HTML approach to hypertext contrasted with Xanadu, early Unix's simplistic (but OK) approach to interrupted system calls versus Multic's and ITS's perfectionism.</font></div>
<div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">Within Python, I show how metaclasses' quest for completeness yielded excessive complexity (and 80% of their intended uses can now be obtained via class decorators for 20% of the complexity), and how well incremental improvement worked instead in areas such as sorting, generators, and "guaranteed"-finalization semantics.</font></div>
<div><font face="verdana, sans-serif"><br></font></div><div style="background-color:transparent"><font face="verdana, sans-serif">The talk is not about lowering expectations: our dreams must stay big, bigger than we can achieve. It's about the best practical track towards making such dreams reality -- think grandiose, act humble. "Rightly traced and well ordered: what of that? // Speak as they please, what does the mountain care? // Ah, but a man's reach should exceed his grasp // Or what's a heaven for? All's silver-grey // Placid and perfect with my art: the worse!"</font></div>
<div><font face="verdana, sans-serif"><br></font></div><font face="verdana, sans-serif">This talk is probably not perfect, but I do think it's good enough.<br><br><b>Bio:</b><br></font><div><font face="verdana, sans-serif">Author of "Python in a Nutshell", co-author of "Python Cookbook", frequent speaker at Python conferences, once-prolific contributor to StackOverflow, and recipient of the 2006 Frank Willison Memorial Award for contributions to Python, Alex currently works as Senior Staff Engineer at Google.</font></div>
</div><b><font><div><br></div></font></b></div>