home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / std / internat / 1091 < prev    next >
Encoding:
Internet Message Format  |  1993-01-07  |  5.6 KB

  1. Path: sparky!uunet!not-for-mail
  2. From: avg@rodan.UU.NET (Vadim Antonov)
  3. Newsgroups: comp.std.internat
  4. Subject: Re: Dumb Americans (was INTERNATIONALIZATION: JAPAN, FAR EAST)
  5. Date: 7 Jan 1993 14:48:06 -0500
  6. Organization: UUNET Technologies Inc, Falls Church, VA
  7. Lines: 115
  8. Message-ID: <1ii1dmINNcu6@rodan.UU.NET>
  9. References: <1993Jan5.090747.29232@fcom.cc.utah.edu> <id.EAHW.92A@ferranti.com> <1993Jan7.033153.12133@fcom.cc.utah.edu>
  10. NNTP-Posting-Host: rodan.uu.net
  11. Keywords: Han Kanji Katakana Hirugana ISO10646 Unicode Codepages
  12.  
  13. In article <1993Jan7.033153.12133@fcom.cc.utah.edu> terry@cs.weber.edu (A Wizard of Earth C) writes:
  14. >Consider a newline terminated text database containing fixed length lines,
  15. >or consider a database consisting of variant text records in fixed fields.
  16.  
  17. Databases with fixed-length fields deserve to loose.
  18.  
  19. >In either case, the amount of data per field is now variant on Runic encoding.
  20.  
  21. In either case, the amount of data per field is now variant on ASCII encoding.
  22. I can store 'Terry Lambert' next to the 'Thelma Louis Maria Anna Bertran'.
  23. I alwasys thought that wizards think before speaking.
  24.  
  25. >Now consider a database, one of the primary methods of implementation being
  26. >memory mapped files.  Thus the storage and the in core representation must
  27. >be the same.
  28.  
  29. You can as well keep your stuff in runic encoding in memory. If you
  30. didn't know the virtual memory is the same ol' disk.
  31.  
  32. >Now consider the mapping, which, by definition, must be done in the kernel,
  33.  
  34. Ever heard of user-lever file system servers?
  35.  
  36. >(without proposing a localized per user or
  37. >per language file system view -- both Ohta and Vadim abhor "locale").
  38.  
  39. I do not abhor locale -- i flatly state that it is not sufficient for
  40. multilingual environments and Unicode/ISO10646 is too much for localizing
  41. where you can do everything *with* locale and 8-bit encoding (16 bit
  42. for Oriental languages using existing standards).
  43.  
  44. >Further suppose a distributed application with clients for the database
  45. >running on old and new hardware.  Only those datum with the same localization
  46. >as the (non-updated) client machine's software will be usable remotely.  A
  47. >potential example of this is available in OLTP for ticketing and reservation
  48. >systems for international airlines.
  49.  
  50. Now tell us how will you sort data from various locations with *local*
  51. sorting algorithms?
  52.  
  53. >Any COBOL program stores data in this fashion,  Many other programs store
  54. >data in this fashion to avoid a direct wire-translation of important values
  55. >by character encoding them in the files.  This allows a direct record seek
  56. >based on offset.  Many Ada programs also take advantage of this.
  57.  
  58. And some people never grow out of BASIC.
  59.  
  60. >Consider that Runic encoding is antithetical in terms of single character
  61. >changes for fixed record length files by virtue of it's ability to either
  62. >change record size (destroying the seek-offset record addressing) or by
  63. >changing the amount of data representable in a field (destroying the
  64. >ability to use fixed-length fields for input in the front end client).
  65.  
  66. I do not see why s/A/B/ should be different from s/A/AAA/.
  67. Fixed-length fields impose upper bounds on the length of the text;
  68. if you wan to be sure that every string contaiting N characters will fit
  69. into the field just reserve N*K bytes where K is the maximal length of
  70. rune. The field remains fixed-size.
  71.  
  72. >Consider the program that performs a fast record count based on a division
  73. >of the number of characters in a file by the *fixed* record size.
  74.  
  75. And what? You can do it with runic encoding as well.
  76.  
  77. I'll discard the rest of the babble about fixed-sized fields for
  78. its obvious meaninglessness.
  79.  
  80. >There are a great many reasons to avoid Runic encoding, not the least of
  81. >which is that storage requirements are diminished to current levels for
  82. >all small glyph-set languages (<=256 characters) at the cost of local
  83. >attribution. 
  84.  
  85. >We must accept partial locale information for the input
  86. >mechanisms if nowhere else, and this provides a promiscuous tagging for
  87. >us at nearly 0 additional cost.
  88.  
  89. You'd have to change the semantic of Unix first. What do you think 
  90. cat of two files created within different locales should produce?
  91. If you have a single locale for entire system the problem is non-existent
  92. as well as any necessity to use Unicode.
  93.  
  94. >Attributed non-Runic encoding also buys us 2 bytes rather than 2-5 bytes
  95. >per glyph for large glyph-set languages (ie: Japanese).
  96.  
  97. The best runic encoding wastes 12.5% of space but wins over fixed-size
  98. characters on European languages greatly.
  99.  
  100. UTF is space-inefficient for everything above ASCII.
  101.  
  102. >Runic encoding has too many significant drawbacks, and the only penalty
  103. >on non-Runic encoding is +17% of disk space on an average UNIX system
  104. >(20% of the files on an average UNIX system are text files)
  105.  
  106. Even with that we have 3.4% (17%*20%) average wasted space.
  107.  
  108. >for 16-bit
  109. >encoding, or +35% for 32-bit encoding,
  110.  
  111. Don't use UTF for 32-bit encoding, period.
  112.  
  113. >or 0% (with a space reduction and
  114. >a restoration of meaning to file, field, and record lengths for all
  115. >non-7-bit ASCII languages) with the assumption of a "locale" mechanism.
  116.  
  117. >PS: I notice that you, as well as Vadim, are dragging me from 386BSD
  118. >localization (in comp.unix.bsd) into a discussion of multinationalization
  119. >(in comp.std.internat).  It was not my intent to be involved in the
  120. >now distorted scope of this discussion when I started the news thread
  121. >"INTERNATIONALIZATION: JAPAN, FAR EAST" in comp.unix.bsd for discussion
  122. >of OS localization issues.  I hope you know what you are letting me in for.
  123.  
  124. OS *localization* does not require Unicode -- it was proven in practice
  125. many many times. The real issue is multinationalization.
  126.  
  127. --vadim
  128.