On Sun, 15 Jul 2018 11:43:14 +0300, Marko Rauhamaa wrote: > Paul Rubin <no.email@nospam.invalid>: > >> Marko Rauhamaa <ma...@pacujo.net> writes: >>> I have similar feelings, except that I'm not convinced Go is the >>> answer. >> >> I don't think Go is the answer either, but it probably got strings >> right. What is the answer?
Go strings aren't text strings. They're byte strings. When you say that Go got them right, that depends on your definition of success. If your definition of "success" is: - fail to be able to support 80% + of the world's languages and a majority of the world's text; - perpetuate the anti-pattern where a single code point (hex value) can represent multiple characters, depending on what encoding you have in mind; - to have a language where legal variable names cannot be represented as strings; [1] - to have a language where text strings are a second-class data type, not available in the language itself, only in the libraries; - to have a language where text characters are *literally* 32-bit integers ("rune" is an alias to int32); (you can multiple a linefeed by a grave accent and get pi) then I guess Go got it right. > That's the ten-billion-dollar question, isn't it?! No. The real ten billion dollar question is how people in 2018 can stick their head in the sand and take seriously the position that Latin-1 (let alone ASCII) is enough for text strings. [1] Go identifiers are Unicode. Go strings are not. Go figure. -- Steven D'Aprano "Ever since I learned about confirmation bias, I've been seeing it everywhere." -- Jon Ronson -- https://mail.python.org/mailman/listinfo/python-list