On Sun, 19 Sep 2010 00:35:14 +0000, Seebs wrote: > On 2010-09-19, AK <andrei....@gmail.com> wrote: >> Funny that you should say that, because I thought quite a few times >> that it would be really awesome if some texts in English had syntax >> highlighting. Obviously, not Brothers Karamazov, but something like a >> tutorial, or a manual, or an online article. If key words were >> highlighted, I'd be able to quickly glance over parts that are not >> useful to me at the time, and find the interesting bits. > > That wouldn't be *syntax* highlighting, that'd be *semantic* > highlighting. > > Which people often do -- notice that I did it twice in that paragraph. > But that's the point -- you need to know what it *means* to make > sensible decisions about what to highlight. Syntax highlighting is > precisely the opposite, highlighting things for reasons that have > nothing to do with their semantic content. It distracts from the actual > meaning of the code.
I'm not entirely sure I agree with you here... you can't ignore syntax in order to understand the meaning of code. Unless you understand the syntax, even a simple line like: x = y is impossible to understand. Is it an assignment? If so, which way (does it assign the value of x to the variable y, or y to x)? Or is it a comparison? The term "syntax highlighting" for what editors I've seen do is actually misleading -- they don't highlight *syntax*, they try to highlight *semantics*. When your editor highlights the function len() in the expression "x = len(y) + spam(z)" but not the function spam(), you know it has nothing to do with syntax. len() is singled out because of its semantics, namely the fact that it's a built-in. In English, the meaning of the some sentences do benefit by syntax highlighting, and in fact that's partly what punctuation is for: English partly uses punctuation marks as tags to break the sentence structure into sub-sentences, clauses and terms (particularly when the sentence would otherwise be ambiguous). An extreme example is the infamous "buffalo" sentence, which is grammatically valid and semantically meaningful but rather difficult to decipher: http://en.wikipedia.org/wiki/Buffalo_buffalo_Buffalo_buffalo_buffalo_buffalo_Buffalo_buffalo Of course this is an extreme example, but English is often ambiguous, and some sort of syntax highlighting could potentially be useful: "Woman shoots man with crossbow" Was it the man armed with a crossbow, or the woman? If we could somehow group the clause "with crossbow" with "woman" or "man" by something *other* than proximity, we could remove the ambiguity. In ordinary English, not only does punctuation sometimes play the role of syntax highlighting, but so do otherwise meaningless words like "the", "a", "which", "that", "also", and so forth. Bringing it back to Python, that's why punctuation like : are useful. They're syntax highlighting. -- Steven -- http://mail.python.org/mailman/listinfo/python-list