home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / std / internat / 1122 < prev    next >
Encoding:
Text File  |  1993-01-09  |  10.8 KB  |  208 lines

  1. Newsgroups: comp.std.internat
  2. Path: sparky!uunet!gatech!usenet.ins.cwru.edu!agate!dog.ee.lbl.gov!hellgate.utah.edu!fcom.cc.utah.edu!cs.weber.edu!terry
  3. From: terry@cs.weber.edu (A Wizard of Earth C)
  4. Subject: Re: Dumb Americans (was INTERNATIONALIZATION: JAPAN, FAR EAST)
  5. Message-ID: <1993Jan9.230114.27491@fcom.cc.utah.edu>
  6. Keywords: Han Kanji Katakana Hirugana ISO10646 Unicode Codepages
  7. Sender: news@fcom.cc.utah.edu
  8. Organization: Weber State University  (Ogden, UT)
  9. References: <1993Jan7.033153.12133@fcom.cc.utah.edu> <1993Jan9.024546.26934@fcom.cc.utah.edu> <24579@alice.att.com>
  10. Date: Sat, 9 Jan 93 23:01:14 GMT
  11. Lines: 195
  12.  
  13. In article <24579@alice.att.com> andrew@alice.att.com (Andrew Hume) writes:
  14. >In article <1993Jan9.024546.26934@fcom.cc.utah.edu>, terry@cs.weber.edu (A Wizard of Earth C) writes:
  15. >~ In article <1993Jan8.092754.6344@prl.dec.com> boyd@prl.dec.com (Boyd Roberts) writes:
  16. >~ >Using Plan 9 utf you know the maximum size in bytes that a Rune can
  17. >~ >be encoded into.  Fixed fields only have to be a multiple of this value,
  18. >~ >defined to be to be UTFmax.  So where's the problem?
  19.  
  20. [ ... ]
  21.  
  22. >~ A good question.  The answer is fourfold:
  23. >~ 
  24. >~ 1)    The field length is still not descriptive of the number of
  25. >~     characters a field may contain; you have only set a minimum
  26. >~     "maximum character count".  It is still possible to enter
  27. >~     in more characters in a non-maximally encoded character set
  28. >~     than this value, unless you adopt the abstraction of a
  29. >~     maximum character count seperate from the maximum necessary
  30. >~     storage length.  The maximum character count is what we
  31. >~     would normally think of as the displayed field length (ie:
  32. >~     what you see as the size of an input box).  If my field
  33. >~     length is 6 bytes times the maximum record length for 31
  34. >~     bits (as with UTF encoding), would I not be better off using
  35. >~     raw 32 bit encoding, yielding only 4 times the maximum
  36. >~     record length for the same data (or only 2 times for 16 bit
  37. >~     data)?
  38. >
  39. >        what objective function are you maximising? frankly,
  40. >    if i were doing fixed records, i would keep char/byte counts.
  41. >    the reason to use UTF is precisely system-independence (see below).
  42. >    if density is an issue (it rarely is for us), then i agree --
  43. >    16bit encodings save you space for kanji.
  44.  
  45. One objective is flat file databases with a direct correlation between
  46. seek offset into the file and record boundries.  COBOL and FORTRAN data
  47. files are notorious in this context.  I realize that there are indexing
  48. mechanisms for COBOL, but there's a lot of old COBOL code out there, and
  49. I'd probably argue that's why COBOL is still out there at all.  The problem
  50. isn't one of new code.
  51.  
  52. If the database contents are shared between systems at the file system
  53. level (via NFS and remote locks, etc.) rather than at a client/server
  54. level, then theres no means of user space translation of data in a
  55. server for the non-internationalized clients.
  56.  
  57. With all due respect to DMR, FORTRAN is terrible at stored data manipulation
  58. in anything other than flat files.
  59.  
  60. My main issue is grandfathering old code and gradual rather than catastrophic
  61. update of older systems.  Until all older systems are replaced, I think
  62. interoperability will be an issue.  With a large distributed system like the
  63. Internet, this is even more of a problem.  Imagine NetNews going UTF a
  64. piece at a time with no interface mechanism.
  65.  
  66. I think density is a problem, at least in the small systems arena.  Remember
  67. that the reference target that I began with was 386BSD; in the 386BSD
  68. community, the average hard drive size is 80-100M.
  69.  
  70. [ ... possible problems with using UTF internal to applications ... ]
  71.  
  72. >        as it turns out, MANY (but not all) applications can
  73. >    work quite well on the UTF-encoded text. mostly, apps search
  74. >    for literal strings, and all that happens is that their length
  75. >    increases a little. our experience in plan 9 is that relatively
  76. >    few applications do enough that it is more efficient to convert
  77. >    to Runes before processing.
  78.  
  79. I'll agree with this for small glyph-set languages (those which can be
  80. represented normally in an 8-bit clean environment), although the further
  81. the differentiate from ASCII, the less true it is.  For large glyph-set
  82. languages, like Japanese or Chinese, this is less true.  I think Vadim
  83. pointed out that the waste for non 7-bit ASCII test is about 12.5 percent
  84. with the "best" encoding scheme (he wasn't referring to UTF, and he
  85. didn't give a reference; sorry).  If I were a 7-bit ASCII user who was
  86. only concerned with the the US, this my be sufficient argument.
  87.  
  88. [ ... conversion and application size problems if UTF isn't universal in
  89.   an application ... ]
  90.  
  91. >        ahhh, therein lies the nub! Plan 9 is UTF all the way
  92. >    through. by and large, the problem with this approach for
  93. >    unix systems should only be in the moral equivalent of teh tty driver.
  94. >    once characters are entered, everything is just UTF. the OS
  95. >    and libraries and compilers and ... all need to be recompiled
  96. >    with care. this is not as bad as it seems but is a lot of fussing.
  97. >    on the other hand, ascii systems are there already!
  98.  
  99. Conceded.  I wasn't thinking that applications would be doing processing in
  100. UTF.  Given that, what you say is true.
  101.  
  102. >~ 4)    Backward comatability with existing systems requires the ability
  103. >~     to crossmount using existing mechanisms (NFS, RFS, etc.).  How
  104. >~     can this be supported without kernel code, when the remote
  105. >~     system is ignorant of UTF deencoding?  With kernel code, what
  106. >~     is the purpose in using the UTF encoding as the native processing
  107. >~     mode in the application?
  108. >
  109. >        well, if the existing remote systems are just ascii,
  110. >    then you have no problem. by and large, everything just works
  111. >    (if your system is 8-bit clean). if the remote systems are
  112. >    (and remain) non-ascii, then you have problems. the purpose
  113. >    (at least in plan 9) of teh kernel using UTF is that the entire
  114. >    system uses UTF -- all text strings are 10646 chars UTf encoded into
  115. >    a byte stream.
  116.  
  117. Here's the major sticking point for me.  I can conceive of updating all
  118. software on an enterprise-wide basis without a great deal of kicking,
  119. scratching, and bleeding all over.  Even when users want to update, there
  120. are problems.
  121.  
  122. Even on an 8-bit clean remote system, you may be able to store UTF encoded
  123. data, but you will only be able to use it locally on the storage system
  124. (assuming it's older) if it's 7-bit US ASCII.  This works well in the
  125. international market only in those countries where 7-bit ASCII variants
  126. are used (an NRCS -- "National Replacement Character Set") which are
  127. stored as if they were simply 7-bit ASCII.  This is really
  128. internationalization.
  129.  
  130. I think to work, there has to be some way to make older 8-bit clean
  131. internationalizations (ie: ISO 8859-x character sets) for small glyph-set
  132. languages interoperate with the newer machines as they are brought on line;
  133. this pretty much rules out any form of variant encoding.
  134.  
  135. >~ There are workarounds to these, but they are much uglier than compact
  136. >~ storage processing, where storage is done in a locale-specific set if
  137. >~ possible.  This would also allow a business to convert relatively
  138. >~ painlessly by leveraging current investments in prior localization
  139. >~ technology.
  140. >
  141. >    i'd be the first to admit the plan 9 approach has its
  142. >difficulties. however, there is a nice coherence to the system
  143. >that applies to everything it connects to. i am unimpressed with
  144. >the alternative you suggest (although i admire the length and thoroughness
  145. >you have shown in discussing it) because it seems to me like
  146. >``here is an island, there is an island, interchange is a bitch''.
  147. >all interchange must be explicitly typed and converted on system
  148. >boundaries. and i have no idea how you do that. you can't convert
  149. >binaries, just text; but how do you tell the difference? and how
  150. >do you recognise system boundaries? (for example, when i mount
  151. >a remote system's files, i may be getting several systems' files;
  152. >how doe sthe file server know which ones to convert and how?
  153.  
  154. I think this is only an issue if you use "compact storage", as I have been
  155. calling storage in 8-bit character sets if the data fits.  Even then, it's
  156. quite possible to arrange interchange problems so that they are taken care
  157. of during initial configuration.
  158.  
  159. Machine boundries for NFS wouldn't be necessary; by definition, "compact
  160. storage" presents the localized data in the format expected by the remote
  161. machine.  For Multilingual files, it's not possible to use them on a
  162. remote system in any case; if there is truly a need, an internationalized
  163. application on the localized machine could be made to understand the
  164. compound document format.
  165.  
  166. In the case of NFS mounts on an internationalized system of localized
  167. data on an older machine, you could always attribute the mount point
  168. with the attribute indicating that all files below that point be
  169. considered to have that locale attribute in their localized vnode for
  170. remote files.
  171.  
  172. Or, if it were too difficult, throw out compacted data entirely (I would
  173. probably be loathe to do this, now that I talked about it enough for it
  174. to go from "idea" to "really neat idea"  8-)).  The potential for a
  175. compression of data where a given 8 bits are always the same value for
  176. the entirety of the file is real, real high.  Storage could be at nearly
  177. the 8-bit level.  For a UNIX system (I am at a disadvanted when it comes to
  178. Plan 9 internals!), this could be handled at the device level (ie: bread,
  179. bwrite).  The savings for UTF storage over and above this type of encoding
  180. would probably be minimal enough that the only locales that would feel it
  181. would be 7-bit ASCII and close variants thereof.
  182.  
  183. I don't think any of this results in an island where interchange is not
  184. possible.  I think UTF encoding results in the same problems in interchange,
  185. since most of them arise from (to continue the analogy) "an island with
  186. different natives".  Already there are inherent difficulties for attribute
  187. relay over data-stream technologies, and attribution is mandatory in-band
  188. for multilingual data, and either in-band or out-of-band (if we can find
  189. a way to overcome the obstacles caused by out-of-band) for locale-specific
  190. monolingual data stored using Unicode.  I think the "island" problem is
  191. smaller than a lot of people have presented it (ie: it *is* soluble),
  192. but I think it's shared by any approach requiring data above and beyond
  193. that communicated by the character set itself.  This is the primary
  194. objection voiced to Unicode and Unicode-based systems (ie: 10646).
  195.  
  196.  
  197.                     Terry Lambert
  198.                     terry@icarus.weber.edu
  199.                     terry_lambert@novell.com
  200. ---
  201. Any opinions in this posting are my own and not those of my present
  202. or previous employers.
  203. -- 
  204. -------------------------------------------------------------------------------
  205.                                         "I have an 8 user poetic license" - me
  206.  Get the 386bsd FAQ from agate.berkeley.edu:/pub/386BSD/386bsd-0.1/unofficial
  207. -------------------------------------------------------------------------------
  208.