Finnish web specialist Jukka Korpela writes reference pages on HTML, Unicode, character sets, Usenet etiquette, and Finnish grammar, many in English.
HN commenters call it a treasure trove and cite it for Unicode space widths, Usenet laws, Altavista search behavior, and Finnish grammar answers.
I suggested some falsehoods that programmers believe about telephones a while back (https://news.ycombinator.com/item?id=19215636). There is a case for falsehoods that programmers believe about ASCII, starting with:
* It's 8-bit. (It's 7-bit.)
* It is sufficient for English. (Ð ð Þ þ)
* It is sufficient for Modern English. (zoölogy coöperate £ née resumé)
* It at least has everything that one could type on a typewriter. (½ ¼ ¢ , and that's just starting with some contemporary 20th century U.S. typewriters from IBM such as the Selectric)
* It is sufficient for the U.S., at least. (Not for the U.S. Library of Congress in 1969 it wasn't. It needed 174 characters for catalogue cards, per https://link.springer.com/article/10.1007%2FBF02404378 .)
* It was used by Multics. (Multics used a modified version, padded out with leading zero bits and replacing DEL with PAD. See http://web.mit.edu/saltzer/www/publications/multics/bc-2-01.pdf .)
* It does not have broken vertical bar. (It was in the 1968 standard at 124, a broken bar because the PL/I language people did not want their unbroken vertical bar to be in the then "national variant" range. https://groups.google.com/d/msg/comp.infosystems.www.authoring.html/L7rD197ldIw/RdAbL31DjAwJ http://jkorpela.fi/latin1/ascii-hist.html#7C )
* It does have broken vertical bar. (It was replaced in the 1977 standard by an unbroken vertical bar at 124. Then some subsequent 8-bit character sets in the 1980s re-introduced a broken…
Yeah you're right and good point, and my earlier comment was partly misleading anyway, because there isn't much difference even among typographers between "apostrophe" and "right single quotation mark".
A better way of stating it is to start with appearance: people who started with computers where 0x40 ` and 0x27 ' looked symmetric (like ‘ and ’) would likely end up using them as symmetric quotation marks (thus the conventions used in some software like Emacs and TeX), while everyone else, where they were not symmetric (looking slanted and vertical respectively) would likely not be led down that route. It's a bit unfortunate that there was this divergence, and that it wasn't settled early enough.
An interesting example is The TeXbook itself: the 1979 TeX manual (in the "TeX and METAFONT" book), the precursor to The TeXbook and apparently written with mostly the SAIL environment in mind, simply says (early in Chapter 2):
> In the first place, there are two kinds of quotation marks in books, but only one kind on the typewriter. Even on your computer terminal, which has more characters than an ordinary typewriter, you probably have only a non-oriented double quote mark (") because the standard “ascii” code for computers was not invented with book publishing in mind. However, your terminal probably does have two flavors of single-quote marks, namely ’ and ’, which you can get by typing ` and ´. The second of these is useful also as an apostrophe.
While already in 1984, The…
It seems to me that this commentary on Wiio's laws to the effect that all human communication fails except by accident has merit to it although perhaps overstated but I'll not comment it further as it's likely to get into a protracted and complicated discussion that I've not time to argue.
I would however like to draw your attention to one of the links in the article titled English - the universal language on the Internet? https://jkorpela.fi/lingua-franca.html.
This page debates the longterm viability of English as the Internet's lingua franca and discusses alternatives including artificially generated languages that are more suitable to the task.
The argument goes that English although the current lingua franca for the internet isn't really suitable for a number of reasons including its eclectic nature (loosely: many words have essentially the same meaning and whilst native speakers use them to good effect to impart style to their writing, this is very confusing for non-native speakers). Also, English is not suitable because of its huge number of idioms many of which are culturally specific (a problem that can be leveled at any existing native language).
There are many points argued on this page many of which are self evident but they are essentially all there in a well-argued, cogent text.
There are other issues that I'd like to mention but time is of the essence. Instead, I'd recommend you read it.
There are full on character encoding introductions. I think an easy to approach one is:
https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/
Basically, ascii is encoded as integers. '32' represents a space. However, ascii is quite limited and if you want non-US-centric characters, you need to use other character sets. For a myriad of reasons, once you go into unicode (the Universal Character Set) there are lots more options for characters. For example, there are multiple whitespace characters.
http://jkorpela.fi/chars/spaces.html
These exist to give different widths or other adjustments to text that is non-ascii. What likely happened in the post (and what did happen to me) is copy-pasting from some document that changed a normal ascii space (that Ruby would expect and know how to deal with) into a unicode character that Ruby interprets as any other character. It would be like having a stray 'g' in the line, but you, as a developer, don't see it. Fun :)
>> But you cannot write <div id="mydiv" />.
> Sure you can. And exactly as with <br/> the / is ignored.
Obviously, the phrase "you cannot write" has the context "as a shorthand for self-closing the tag", and doesn't deserve some pedantic "of course you can do that, it just doesn't do what you hoped it would" response :/.
To really be pedantic about it: SGML actually had a feature similar to this feature and HTML specified it; however, the syntax "<br/" was a valid way to write that tag (technically an open tag, but due to the DTD it would auto close) and the ">" after would get rendered... not ignored (and in fact might even cause the document to fail if that > was in a disallowed context of a strict document).
https://jkorpela.fi/html/empty.html
Ironically, the W3's comment on this is to discourage its usage "until widely deployed", as they have essentially always specified stuff no one implemented correctly (lol).
https://www.w3.org/MarkUp/html3/HTMLandSGML.html
Note that em (current point size) and en (½ em) spaces are both wider than the regular space character (typically ¼ em). An espace fine insécable (narrow no-break space) is even smaller, usually as small as a Unicode thin space (⅕ or ⅙ em): https://jkorpela.fi/chars/spaces.html
Word, in French mode, inserts regular no-break spaces where narrow no-break spaces would be appropriate. I find this style rather irritating, but then again, I don’t read nearly enough French to get accustomed to it.
However, I do agree strongly with the late Jan Tschichold, who recommended thin spaces before question marks, exclamation marks, colons, and semicolons for other languages, too: https://www.courses.psu.edu/art/art101_jxm22/tschichold.html#:~:text=thin%20spaces%20before%20question%20marks%2C%20exclamation%20marks%2C%20colons%2C%20and%20semicolons