GNU ed 1.6 released
GNU ed 1.6 released
Posted Jan 4, 2012 2:38 UTC (Wed) by tialaramex (subscriber, #21167)In reply to: GNU ed 1.6 released by cmccabe
Parent article: GNU ed 1.6 released
In practice, I can't think of any languages like that. Many of them are built by people who at best assumed other writing systems are just like Latin except with differently shaped squiggles. They often mandate that "text" means "UTF-16 strings" and then blunder into all sorts of problems with filenames, URLs, streams of bytes some idiot stashed in a "text" field on a database, and other things that definitely aren't UTF-16 strings. There may be built-in assumptions about writing direction, the meaning of "character" (a very, very tricky issue) and so on.
As a rule of thumb if the language claims to be "high level" and yet it has a "character" data type that's distinct from a string, or can be treated meaningfully as an integer, or it has the same data type for binary data and text, then either they're yanking your chain or they had no idea about Unicode. C has the excuse that Unicode literally didn't exist back then. Languages like Python will have to provide their own excuses.
Some more bad signs:
• Mentions of the "length" of a string that don't either include or point at a multi-paragraph discussion of what "length" means in this context.
• Discussion of collation or "sorting" strings that doesn't mention locale.
• A string equality operator or comparison method that doesn't come with a multi-paragraph discussion of Unicode equivalence.
Of course a lot of this stuff can be /fixed/ in theory. But fixes after the fact are often messy. The can involve things like deprecated methods on core objects, parallel APIs replacing every mention of character with "string", or even inventing another type "Unicode string" and then going around replacing all the other APIs in the system with Unicode-friendly ones, leaving maintenance programmers to handle the debris.
Posted Jan 4, 2012 16:33 UTC (Wed)
by cmccabe (guest, #60281)
[Link]
GNU ed 1.6 released
