analogy was the poor programming practice of repeated concatenation of C-style null-terminated strings. The first step in every implementation of the C standard library function for concatenating strings is determining the length of the first string by checking each character to see whether it is the terminating null character. Next, the second string is copied to the end of the first. In Spolsky's example, the "Schlemiels" occur when multiple strings are concatenated together: strcat( buffer, "John" ); // Here, the string "John" is appended to the buffer strcat( buffer, "Paul" ); // Now the string "Paul" is appended to that strcat( buffer, "George" ); // ... and "George" is appended to that strcat( buffer, "Ringo" ); // ... and "Ringo" is appended to that After "Paul" has been appended to "John", the length of "JohnPaul" (or, more precisely, the position of the terminating null character) is known within the scope of strcat() but is discarded upon the end of function. Afterwards, when strcat() is told to append "George" to "JohnPaul", strcat() starts at the very first character of "JohnPaul" (which is "J") all over again just to find the terminating null character. Each subsequent call to strcat() has to compute the length again before concatenating another name to the buffer. Analogous to Schlemiel not carrying the paint bucket (or the string's length) with him, all the subsequent strcat()s have to "walk" the length of the string again to determine where the second string should be copied. As more data is added to buffer with each call to strcat(), that terminating null character also gets farther away from the beginning, meaning that subsequent calls are increasingly slow. The problems illustrated by Spolsky's example are not noticed by a programmer who is using a high-level language and has little or no understanding of how the language implementation works, including some basic knowledge of its underlying principles and functions. Publications See also List of LGBT people from New York City Tech companies in the New York metropolitan area Leaky abstraction References External links Joel on Software 1965 births American emigrants to Israel Israeli bloggers American bloggers Living people People from Albuquerque, New Mexico American computer programmers American software engineers American technology writers American computer businesspeople Israeli businesspeople Microsoft employees University of Pennsylvania alumni Yale University alumni Jewish American writers Jewish bloggers American LGBT businesspeople LGBT people from New Mexico LGBT Jews 21st-century American