comp.lang.ada
 help / color / mirror / Atom feed
From: "Yannick Duchêne (Hibou57)" <yannick_duchene@yahoo.fr>
Subject: Re: Why no Ada.Wide_Directories?
Date: Tue, 18 Oct 2011 04:59:28 +0200
Date: 2011-10-18T04:59:28+02:00	[thread overview]
Message-ID: <op.v3i09evqule2fv@index.ici> (raw)
In-Reply-To: j7i6va$nso$1@munin.nbi.dk

Le Mon, 17 Oct 2011 23:33:28 +0200, Randy Brukardt <randy@rrsoftware.com>  
a écrit:
> Say what?
>
> Ada.Strings.Encoding (new in Ada 2012) uses a subtype of String to store
> UTF-8 encoded strings.

*Please, note the following in just personal opinion* (just want to tell  
what I feel, don't expect to hurt any one)

Every one know and noticed, while this is still confusing “bytes and  
character” like C did. Eiffel had an implementation of UTF-8 string, which  
was different than the default ASCII string, and you could not access  
bytes from it, there was proper encapsulation and type check. It happened  
I used a similar abstraction in a tiny Ada application.

Unless it is required there is a BOM at the beginning of each UTF-8  
string, and this BOM is required to always be checked --- will have to  
check the new RM, but feel the answer is No ---, confusing both types into  
a single one is not that clean --- even if the answer was Yes, this would  
only be dynamic check, and not static check. I feel it is more an  
implementation trick (which was indeed intended by the design of UTF-8  
targeting some hardly solvable context), than a clean formalization.

Try to iterate over an element of type String. What did you get if it is a  
proper ISO 8859-1 srtring ? You get Characters. What did you get if it is  
UTF-8 ? You get garbage and “random who-know-what-it-is”, … _and the type  
system does not catch it_ (*), while it is is one of its primarily intent.

By the way, if ISO/ANSI string and UTF-8 strings are the same, then what  
is Wide_Character ? Unicode Basic Plan or UTF-16LE or UTF-16BE or guess ?

This will not break Ada values to the eye of most people (**), but I  
believe these and some other people noticed the same.

(*) Both types are not even structurally compatible.

(**) That's a library design flaw, not a language flaw! The difference  
between both, is that if a library part is not strongly tight into the  
language definition like IO attributes or finalization behaviors are, one  
always has the provision to work it around using its own library. But  
still lost the interest of a standard library.

-- 
“Syntactic sugar causes cancer of the semi-colons.”  [Epigrams on  
Programming — Alan J. — P. Yale University]
“Structured Programming supports the law of the excluded muddle.” [Idem]
Java: Write once, Never revisit



  parent reply	other threads:[~2011-10-18  2:59 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-14  6:58 Why no Ada.Wide_Directories? Michael Rohan
2011-10-14  7:39 ` Yannick Duchêne (Hibou57)
2011-10-14  9:07   ` Dmitry A. Kazakov
2011-10-14 12:48     ` Yannick Duchêne (Hibou57)
2011-10-14 12:54     ` Yannick Duchêne (Hibou57)
2011-10-15  1:06 ` ytomino
2011-10-15  6:55   ` Vadim Godunko
2011-10-15 12:34     ` ytomino
2011-10-15  8:38   ` Dmitry A. Kazakov
2011-10-15 13:12     ` Peter C. Chapin
2011-10-15 13:22       ` Ludovic Brenta
2011-10-15 14:47       ` Dmitry A. Kazakov
2011-10-16  5:48         ` Yannick Duchêne (Hibou57)
2011-10-17  0:15         ` Peter C. Chapin
2011-10-17  3:23           ` Yannick Duchêne (Hibou57)
2011-10-17  7:12           ` Simon Wright
2011-10-17  7:59           ` Dmitry A. Kazakov
2011-10-18 10:55             ` Peter C. Chapin
2011-10-18 12:27               ` Dmitry A. Kazakov
2011-10-16  5:51       ` Yannick Duchêne (Hibou57)
2011-10-17 21:41         ` Randy Brukardt
2011-10-18  7:29           ` Dmitry A. Kazakov
2011-10-18 14:06           ` Pascal Obry
2011-10-18 14:08             ` Pascal Obry
2011-10-19 21:32             ` Randy Brukardt
2011-10-17 21:33   ` Randy Brukardt
2011-10-17 23:47     ` ytomino
2011-10-18  1:10       ` Adam Beneschan
2011-10-18  2:32         ` ytomino
2011-10-18  4:46           ` ytomino
2011-10-18  9:32             ` Yannick Duchêne (Hibou57)
2011-10-18 10:00               ` Dmitry A. Kazakov
2011-10-18 10:06                 ` Yannick Duchêne (Hibou57)
2011-10-18 12:01                   ` Dmitry A. Kazakov
2011-10-18 15:02           ` Adam Beneschan
2011-10-18 15:16             ` Dmitry A. Kazakov
2011-10-18 23:42               ` Adam Beneschan
2011-10-19  8:12                 ` Dmitry A. Kazakov
2011-10-19 21:43               ` Randy Brukardt
2011-10-20  7:37                 ` Dmitry A. Kazakov
2011-10-20 11:04                   ` Yannick Duchêne (Hibou57)
2011-10-20 12:21                     ` Dmitry A. Kazakov
2011-10-20 12:38                       ` Yannick Duchêne (Hibou57)
2011-10-20 14:31                         ` Dmitry A. Kazakov
2011-10-20 15:54                           ` Yannick Duchêne (Hibou57)
2011-10-20 17:35                             ` Dmitry A. Kazakov
2011-10-21 12:53                               ` Yannick Duchêne (Hibou57)
2011-10-21 13:41                                 ` Dmitry A. Kazakov
2011-10-25 19:22                                   ` Randy Brukardt
2011-10-25 19:35                                     ` Dmitry A. Kazakov
2011-10-26 22:41                                       ` Randy Brukardt
2011-10-27  7:43                                         ` Dmitry A. Kazakov
2011-10-27 15:13                                           ` Yannick Duchêne (Hibou57)
2011-10-27 19:39                                             ` Robert A Duff
2011-10-27 21:09                                               ` Yannick Duchêne (Hibou57)
2011-10-28  7:50                                                 ` Dmitry A. Kazakov
2011-10-28  8:45                                                   ` Yannick Duchêne (Hibou57)
2011-10-28 14:59                                                     ` Dmitry A. Kazakov
2011-10-20 17:40                   ` J-P. Rosen
2011-10-20 18:43                     ` Dmitry A. Kazakov
2011-10-21 10:07                     ` Vadim Godunko
2011-10-21 11:25                       ` J-P. Rosen
2011-10-21 12:25                         ` Yannick Duchêne (Hibou57)
2011-10-21 13:13                         ` Dmitry A. Kazakov
2011-10-21 16:03                           ` Yannick Duchêne (Hibou57)
2011-10-21 18:34                             ` Dmitry A. Kazakov
2011-10-21 19:30                               ` Yannick Duchêne (Hibou57)
2011-10-21 20:02                                 ` Dmitry A. Kazakov
2011-10-21 20:36                                   ` Yannick Duchêne (Hibou57)
2011-10-22  7:54                                     ` Dmitry A. Kazakov
2011-10-22 20:28                                       ` Yannick Duchêne (Hibou57)
2011-10-22 22:23                                       ` Yannick Duchêne (Hibou57)
2011-10-23  7:53                                         ` Dmitry A. Kazakov
2011-10-25 19:16                                           ` Randy Brukardt
2011-10-21 18:55                         ` Vadim Godunko
2011-10-21 19:18                           ` J-P. Rosen
2011-10-21 19:41                           ` Yannick Duchêne (Hibou57)
2011-10-18 22:54             ` ytomino
2011-10-18  3:15         ` Yannick Duchêne (Hibou57)
2011-10-18  7:55         ` Dmitry A. Kazakov
2011-10-18  9:41           ` Yannick Duchêne (Hibou57)
2011-10-18 10:25           ` J-P. Rosen
2011-10-18 10:56             ` Yannick Duchêne (Hibou57)
2011-10-18 15:34           ` Adam Beneschan
2011-10-18 17:27             ` J-P. Rosen
2011-10-18 18:33               ` Adam Beneschan
2011-10-18 19:54               ` Yannick Duchêne (Hibou57)
2011-10-18  8:01       ` Dmitry A. Kazakov
2011-10-18  2:59     ` Yannick Duchêne (Hibou57) [this message]
2011-10-18  4:07       ` Michael Rohan
2011-10-18  4:54       ` ytomino
2011-10-18  9:54         ` Yannick Duchêne (Hibou57)
2011-10-18 10:52           ` ytomino
2011-10-18 11:02             ` Yannick Duchêne (Hibou57)
2011-10-18 21:18               ` ytomino
2011-10-18 10:10       ` J-P. Rosen
2011-10-22  6:32         ` Michael Rohan
2011-10-22  7:25           ` Yannick Duchêne (Hibou57)
2011-10-25 19:26           ` Randy Brukardt
2011-10-27 17:40 ` anon
replies disabled

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