comp.lang.ada
 help / color / mirror / Atom feed
From: Shark8 <onewingedshark@gmail.com>
Subject: Re: Strange crash on custom iterator
Date: Wed, 4 Jul 2018 12:53:19 -0700 (PDT)
Date: 2018-07-04T12:53:19-07:00	[thread overview]
Message-ID: <c95a071c-3555-4ac0-abb3-75a4904676ea@googlegroups.com> (raw)
In-Reply-To: <phj5b0$b0n$1@gioia.aioe.org>

On Wednesday, July 4, 2018 at 12:57:40 PM UTC-6, Dmitry A. Kazakov wrote:
> On 2018-07-04 20:01, Shark8 wrote:
> > On Wednesday, July 4, 2018 at 10:55:08 AM UTC-6, Dan'l Miller wrote:
> 
> > As an example, the sentence "The Hebrew word for 'man' is 'אדם' (Adam)."  is *NOT* merely a sequence of graphemes, codepoints, and/or bytes. It is a semantically meaningful text consisting of multiple languages... and *this* is what Unicode discards.
> 
> And rightly so. Like 91093835.6 is just a number instead "meaningful": 
> the mass of a stationary electron.
> 
> One fundamental principle of software design is abstraction in the sense 
> of throwing away unnecessary information. A printer may know nothing 
> about Hebrew.

Interesting how you're ready, willing and able to conflate all portions of data-storage/-management into a single operation: printing.

But let's take a step backward; what about displaying the text? One certainly could argue that Unicode is a good solution in this arena, after all havng the ability to encode all of human language is it's stated design-goal, so surely it must be well-suited to that, right?

Not really.
The mere fact of "combining characters" makes unicode no more suited to textual display than a sort of hypothetical Forth/PostScript where each word/token/character is processed by the display driver and rendered appropriately. (The aforementioned Lisp-like structure being executed is the procedure: "painting/displaying the english text, switch-to-hebrew, print/display hebrew text, switch-to-english, print/display english text", which of course can be further decomposed to "print 'T' [horizontal-stroke, vertical stroke] print 'h' [vertical stroke, curved stroke, vertical stroke] print 'e' [horizontal stroke, curved stroke] ....")

This is the essential idea behind PostScript printers; and it works well. (The same/analogous procedure must be executed in SW and transmitted to the printer in non-PostScript printers; usually using some proprietary printer-control-language, which is essentially what printer-drivers *ARE*.)

So, even working backward from your example of printing, where you claim that "knowledge of Hebrew is unneeded" is... well dubious. It's certainly needed  somewhere along the line for this example. My contention that "sequence of codepoints + font" is flatly stupid for a multi-language system.

Arguably it's stupid for a single-language system, too. As an example we could use paths: "root\projects\x\source" is flatly moronic*, and we can see this by how it pops up in multi-platform development: should there be a terminal '\'? do those '\' characters need escaped? do they need to be replaced with '/'? What we have is a sequence (root, projects, x, source) which corresponds to a path down a tree, but the common "industry practice" is to think of this as a string of characters and "parse/reparse/regex/reparse/whatever" textual manipulations to read what the structure is rather than sensibly save the structural information.

* forced upon us by stupid, thin APIs to the OS.


  reply	other threads:[~2018-07-04 19:53 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-30 10:48 Strange crash on custom iterator Lucretia
2018-06-30 11:32 ` Simon Wright
2018-06-30 12:02   ` Lucretia
2018-06-30 14:25     ` Simon Wright
2018-06-30 14:33       ` Lucretia
2018-06-30 19:25         ` Simon Wright
2018-06-30 19:36           ` Luke A. Guest
2018-07-01 18:06             ` Jacob Sparre Andersen
2018-07-01 19:59               ` Simon Wright
2018-07-02 17:43                 ` Luke A. Guest
2018-07-02 19:42                   ` Simon Wright
2018-07-03 14:08                     ` Lucretia
2018-07-03 14:17                       ` J-P. Rosen
2018-07-03 15:06                         ` Lucretia
2018-07-03 15:45                           ` J-P. Rosen
2018-07-03 15:55                             ` Lucretia
2018-07-03 17:00                               ` J-P. Rosen
2018-07-03 15:57                             ` Dmitry A. Kazakov
2018-07-03 16:07                               ` Lucretia
2018-07-03 16:36                                 ` Dmitry A. Kazakov
2018-07-03 16:42                                   ` Lucretia
2018-07-03 16:45                                     ` Lucretia
2018-07-03 20:18                                     ` Dmitry A. Kazakov
2018-07-03 21:04                                       ` Lucretia
2018-07-04  1:26                                         ` Dan'l Miller
2018-07-04  1:59                                           ` Lucretia
2018-07-04  7:37                                             ` Dmitry A. Kazakov
2018-07-04 12:46                                             ` Dan'l Miller
2018-07-04 13:37                                             ` Dennis Lee Bieber
2018-07-04  7:21                                         ` Dmitry A. Kazakov
2018-07-03 18:54                                   ` Dan'l Miller
2018-07-03 20:22                                     ` Dmitry A. Kazakov
2018-07-04  7:33                                   ` J-P. Rosen
2018-07-04  7:53                                     ` Dmitry A. Kazakov
2018-07-04  9:55                                       ` J-P. Rosen
2018-07-04 10:01                                         ` Dmitry A. Kazakov
2018-07-04 11:30                                           ` J-P. Rosen
2018-07-04 13:27                                             ` Dmitry A. Kazakov
2018-07-04 14:37                                               ` Dan'l Miller
2018-07-04 14:43                                                 ` Dan'l Miller
2018-07-04 14:57                                                 ` J-P. Rosen
2018-07-04 15:41                                                 ` Lucretia
2018-07-04 16:55                                                   ` Dan'l Miller
2018-07-04 18:01                                                     ` Shark8
2018-07-04 18:57                                                       ` Dmitry A. Kazakov
2018-07-04 19:53                                                         ` Shark8 [this message]
2018-07-04 20:05                                                           ` Lucretia
2018-07-04 22:04                                                             ` Shark8
2018-07-05  0:12                                                               ` Dan'l Miller
2018-07-05  1:46                                                                 ` Shark8
2018-07-05  2:07                                                                   ` Luke A. Guest
2018-07-05 16:47                                                                     ` Shark8
2018-07-05 17:19                                                                       ` Dan'l Miller
2018-07-05 19:14                                                                         ` Shark8
2018-07-04 20:43                                                           ` Dmitry A. Kazakov
2018-07-04 17:51                                             ` Jacob Sparre Andersen
2018-07-04 18:06                                               ` Shark8
2018-07-04 18:59                                                 ` Dan'l Miller
2018-07-04 19:01                                                 ` Dmitry A. Kazakov
2018-07-05 18:08                                                   ` Randy Brukardt
2018-07-05 19:41                                                     ` Dmitry A. Kazakov
2018-07-04 21:00                                                 ` Jacob Sparre Andersen
2018-07-05 18:06                                               ` Randy Brukardt
2018-07-04 19:02                                       ` G. B.
2018-07-04 19:16                                         ` Dmitry A. Kazakov
2018-07-04 20:40                                           ` G. B.
2018-07-04 20:55                                             ` Dmitry A. Kazakov
2018-07-04 21:21                                               ` G.B.
2018-07-05  7:55                                                 ` Dmitry A. Kazakov
2018-07-06  8:28                                                   ` G.B.
2018-07-06  8:57                                                     ` Dmitry A. Kazakov
2018-07-02  8:31               ` Lucretia
2018-06-30 14:34       ` Lucretia
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox