Talk:Schlemiel the Painter's algorithm

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Comments[edit]

Folks, I searched wikipedia for "schlemiel the painter's algorithm", and found it listed as a "requested article", so I wrote the article (probably badly, because I've never written an encyclopedia article before), but now it's been flagged with "This article or section may contain material not appropriate for an encyclopedia."

I think this content lives in the category of "special interest encyclopedia". The article covers an "all too common and eminantly avoidable shortcoming" of many software implementations, including Notepad! If you don't believe me then open a 10 meg file in notepad... reboot. I would not expect non-programmers to be interested in the article, but then I wouldn't expect non-programmers to be interested in strcat either, and there's a perfectly good article on that.

Regarding the obtuse title... I can assure you that "a Schlemeil" is the common name for an instance of this problem in my workplace, which houses about 80 programmers. I do not know if it's a common name outside of my workplace, but do know that google finds several hundred hits for "schlemiel the painter", many of which are in the 'edu' domain... unversity lecturers have started quoting this article http://www.joelonsoftware.com/articles/fog0000000319.html in there lecture note.

I think it's safe to say that "a Schlemiel" is a "contemporary name" for an eternal problem, which heretofore has remained nameless, and it's a problem which programmers are wanting to learn and think about... and I submit that on these grounds the topic is worthy of a Wikipedia article.

It is, indeed. And I've been sprinkling /* schlemiel the painter here! */ in comments for inneficient code I cross with ever since I heard the enlightned anecdote from Joel. Let it be known, so it can be sanitized. :) 189.27.24.86 (talk) 06:17, 28 August 2008 (UTC)[reply]

I accept that the style of the article is (in parts) inappropriate for an encylopedia... but I hope that the "under construction" tags buys me a few days to get that sorted out. I'm new at this, and I think I'm doing OK so far, getting some ideas down... could be better, but could be a lot worse.

Cheers. Keith. Wookie2u (talk) 06:34, 11 May 2008 (UTC)[reply]

Had a pop at fleshing out the intro, making the significance of the term clearer to a layman (e.g., me). Hope that helps... only one of the footnotes appeared at the bottom, but I can't see what I've done wrong. If anyone knows how to fix it, that'd be great.Señor Service (talk) 15:56, 26 May 2008 (UTC)[reply]
Something else occurs - the original blog article spelled it "Shlemiel" or something (certainly without a C). Don't know if that means we should use that spelling in the article...?Señor Service (talk) 16:22, 26 May 2008 (UTC)[reply]

Think the new version is on the whole good, but the line at the beginning sounds a tiny bit holier-than-thou. If someone reverts or changes this, I think key points for inclusion at the beginning are:

The widespread nature of the problem (Spolsky saw it as a pandemic), and

The fact that Spolsky blamed poor Computer Science programs for failing to start with the basics.

As it was, it sounded a little bit like "A Schlemiel the Painter algorithm is something that losers do because they're stupid and don't know the first thing about progamming." 81.156.111.254 (talk) 21:46, 30 May 2008 (UTC)[reply]

Even keeping your points in mind, the edit didn't work, and here is why:
  1. The reason the first sentence sounds a bit like "they don't know the first thing about programming" is because (and besides the fact that that is what "improperly-educated" implies) it is what Spolsky says. Explicitly. Compare:
      "... from a weak or broken understanding of a few simple things at the very lowest levels." (Spolsky's own words, and also quoted verbatim in the article)
    with...
      "... having an incomplete understanding of basic issues at the very lowest levels" (article lead)
    There is no functional difference between them, and is actually only paraphrased (instead of being quoted verbatim) because I didn't want to use the same words twice.
  2. That new third para (plus your justification for it above) is called original research, which in this case is reading into the source what is not directly evident in the source. Its a no-no.
    • There is nothing from which to conclude that Spolsky saw 'Schlemiel the Painter' practices as "pandemic" or even "widespread." Spolsky does not use those words. He does not even use the word "common." He does suggest something to that effect in relation to graduates, but thats not the same thing as schlemiels being generally widespread.
    • Spolsky reference to education is mentioned (actually quoted) in the first section, and is properly contextualized there.
      In contrast, the new third para in the lead is out of context, is misleading (if not downright false), and does not have the weight to warrant mention in the lead. Here is why:
      • First, Spolsky did not see "the schlemiel as a pandemic spread by improperly-educated Computer Science graduates."
        'Schlemiel' is Spolsky's word for any kind of inefficient code/coding practice, of which he provides six or seven examples. Lack of understanding of the basics (irrespective of the cause of that lack) causes such poor coding habits. That lack of education in the basics results in lack of understanding of the basics is orthogonal to his point, which is "[Back to] Basics."
        There is also nothing in the essay that suggests that the issue is specific to improperly-educated Computer Science graduates.
      • Also, Spolsky was making a prediction that poor education would lead to inefficient programming. Note the future tense in "this is a pedagogical disaster waiting to happen."
  3. Finally, "[Spolsky saw] the schlemiel as a pandemic spread by improperly-educated Computer Science graduates" is a poor choice of words.
    A 'schlemiel' is an inefficient way to do something. It is not an infectious disease. It does not spread. An 'improperly-educated Computer Science graduate' is not a host of an infection.
    "The 'schlemiel' was identified and named by software engineer ..." is hardly better, but is superfluous anyway since it duplicates the opening words of the very next paragraph.
    A better way to have said all that might have been: "The term 'schlemiel' was originally used to express a dissatisfaction with the beginner-level education of computer science students; <etc>." But as noted in #2 above, it would have still been incorrect. -- Fullstop (talk) 02:02, 5 June 2008 (UTC)[reply]

Hey Fullstop - I'm not going to change it back (or at all), because it's clear from your article that you know more about the subject matter than I do. But for info, "pandemic" doesn't have anything to do with disease or infectiousness per se; it just means general and widespread (literally "of all the people"). It's often used in the context of disease, where it has a specific meaning, but not always.

The specific line that suggested "pandemic" to me was "Generations of graduates are descending on us and creating Shlemiel The Painter algorithms right and left" - which at least strongly suggests that he was alarmed by how common they had become (maybe more a "deluge" than a "pandemic" ;) ) —Preceding unsigned comment added by Señor Service (talkcontribs) 18:46, 5 June 2008 (UTC)[reply]

Forgot to make my other point - think Spolsky should definitely be credited in the intro. Yes, it duplicates the beginning of "Spolsky's analogy," but the key points should be touched on in the opening, and I think "authorship" (for want of a better word in this context) is definitely a key point.

Otherwise, the reader's first encounter with his name is in the section title "Spolsky's analogy". A minor point, but think it's good form to name him in full before we start using his surname alone.Señor Service (talk) 19:13, 5 June 2008 (UTC)[reply]

There - perfection, surely!Señor Service (talk) 19:21, 5 June 2008 (UTC)[reply]
(Think I'm muddying the water by arguing the toss about what "Pandemic" means above - you're right insofar as it's enough of a stretch to be OR - better to focus on why I wrote the sentence in the first place, which was because I thought Spolsky should appear in the first para. I think it works nicely now, insofar as the last lines of the opening lead naturally to the first section heading and make it feel like less of a non-sequitur.) —Preceding unsigned comment added by 86.149.229.25 (talk) 21:54, 5 June 2008 (UTC)[reply]
Right. As I said before... "He does suggest something to that effect in relation to graduates, but [being specific to graduates is] not the same thing as schlemiels being generally widespread."
As for the name in the lead, thats fine. :) Btw, I don't know "more" than what Joel said in his essay. I'm just a close reader. -- Fullstop (talk) 22:02, 5 June 2008 (UTC)[reply]

Doesn't quite work[edit]

strcat() isn't calculating the length: it's merely looking for the terminating NUL. Also, it doesn't have to walk back to the start of the string; at the next call, it's already there. One can only assume that there is some sort of teleportation device in use here… Dsalt (talk) 12:49, 12 December 2009 (UTC)[reply]

uh, dude, you better read Joel again... strcat does indeed start over at the begining with each new request (I'm guessing that you are not actually a programmer?). strcat does not and cannot retain any knowledge about the previous state of the strings that it has been handed, therefore it must start at the begining. IMHO this is a classic example of why C is a very defective language and a blight upon the computer industry. In reference to the debate about about how widespread the problem is, yes, it is indeed a pandemic, strcat is used everywhere, as are c-strings, which is the actual root of this problem, and many other related problems such as the endless number of buffer overflow exploits, all being caused by this fundamental bad design of the C language. P.S. I am speaking from the prespective of someone who has actually designed a computer language, so I do have expert knowledge of this subject. I am not just some blithering idiot with an ego and an opinion to pontificate as so many random commentators tend to be. That comment is not aimed at you Dsalt, but just a general observation about the state of the internet in which everyone on it seems to think that their opinions all have equal merit, they don't. OldCodger2 (talk) 20:48, 3 June 2012 (UTC)[reply]

Can't we take down the notability banner yet?[edit]

We should leave the orphan banner, though. -SM 09:16, 27 June 2011 (UTC)[reply]

This is a notable article in the field of Computer Science, My vote is that the banner should be removed. but since I am not knowledgable of wiki procedures I shall leave it for someone else to do, at least until I become more knowledgable of wiki, in which case I may do it myself, if nobody else has by done it by then. OldCodger2 (talk) 21:17, 3 June 2012 (UTC)[reply]

For completions sake it'd be good to have a code snippet underneath that explains a less expensive way of concatenating those strings together. — Preceding unsigned comment added by 220.245.169.212 (talk) 08:47, 27 September 2013 (UTC)[reply]