Schlemiel the Painter's algorithm: Difference between revisions

Content deleted Content added
m Spolsky's analogy: m generalize
No edit summary
Line 1:
In software development, a '''Schlemiel the Painter'''['s]<!-- Spolsky uses it both with and without the possessive 's -->''' algorithm''' denotes any methodology that is inefficient because the programmer who wrote it had an incomplete understanding of basic issues at the very lowest levels of [[software design]], or because those basic issues were overlooked. The term was coined by software engineer and essayist [[Joel Spolsky]].
 
__TOC__
==Spolsky's analogy==
The term ''Schlemiel the Painter('s) algorithm'' was coined by software engineer and essayist [[Joel Spolsky]], who used a [[Yiddish]] joke to illustrate a certain poor programming practice. In the joke, Schlemiel (also rendered Shlemiel) has a job painting the dotted lines down the middle of a road. Each day, Schlemiel paints less than he painted the day before. When asked how that could possibly be, Schlemiel complains that it is because each day he gets further away from the paint can.<ref name="basics">{{citation|last=Spolsky|first=Joel|title=Back to Basics|date=December 11, 2001|series=Joel on Software|url=http://www.joelonsoftware.com/articles/fog0000000319.html|publisher=joelonsoftware.com}}.</ref>
 
The inefficiency Spolsky was drawing an analogy to was the poor programming practice of repeated [[concatenation]] of [[C (programming language)|C]]-style character arrays (in general computing parlance known as "[[String (computer science)|strings]]")&mdash;the length of the string has to be recomputed each time because it is not carried over from a previous concatenation.