„Проблема кодировок“: стечение обстоятельств или стратегический замысел?

„Проблема кодировок“: стечение обстоятельств или стратегический замысел?

Оригинал важной и полезной, не смотря на некоторые недостатки статьи… утрачен (что на фоне наблюдаемой практики указания url'оы в сносках вполне научных печатных книг доставляет отдельно), потому полагаю целесообразным переместить его сюда.

Для должного понимания рекомендуется иметь в виду теорему о том, что Разум суть порождение Языка (в доказательство сейчас не упираюсь, достаточно хорошая и популярная иллюстрация в автобиографической публицистике советского писателя-фантаста Сергея Снегова «Язык, который ненавидит»). Также полезно знание сравнительной информационной ёмкости (на примере решаемости задачи переводимости) европейских языков (курс лекций по русской литературе академика П.А. Кропоткина, вводная лекция).

При наличии должной мотивации в статье можно найти немало технических неточностей. Но если вспомнить о дистанции от теоретического существования технологии, решающей некоторую проблему, до повсеместного распространения достаточно хорошей реализации данной технологии. Да не забывая о сюрпризах, встречающихся при переходе от теории к практике… Современная ситуация конечно продвинулась в лучшую сторону в сравнении с 30 сентября 2002 года. Но окончательного решения проблемы как не было, так и не просматривается.

И это с точки зрения наших «партнёров» правильно: туземцы должны стоять перед «свободным» и демократическим выбором между использованием сигнальной системы белых сагибов (для которых, соответственно, использование результатов труда конкурентов не должно представлять дополнительных усилий) и преодолением поля заботливо разложенных граблей при желании использовать родной туземный язык.

„Проблема кодировок“: стечение обстоятельств или стратегический замысел?

В данном материале будет рассказано об одной из наиболее обсуждаемых как среди специалистов в области ИТ, так среди и рядовых пользователей компьютерной техники, тем — о проблеме представления (кодирования) символов естественных языков в машинно–читаемом виде. В кругах ИТ–общественности она получила название «проблемы кодировок».

Эта проблема состоит в том, что для решения задачи кодирования символов естественных языков в машинно–читаемом виде было предложено и принято множество стандартов, в том числе международных, которые несовместимы между собой и противоречат друг другу. В результате, как несложно догадаться, при работе с компьютерной техникой возникают многочисленные проблемы при обработке текстовой информации на ряде языков. Эти проблемы в значительной степени препятствуют и свободному обмену такой информацией, в том числе через сеть Internet.

В современном мире сложилась ситуация, когда положение той или иной страны в мировом сообществе напрямую зависит от того, какое положение она занимает в мировой сфере ИТ. И понятно, что поскольку участие страны в существующей мировой сфере ИТ в огромной степени определяется тем, как в этой сфере реализована поддержка работы с информацией на национальном языке, на котором говорит народ этой страны, «проблема кодировок» является чрезвычайно, даже стратегически, важной, как будет показано ниже.

К сожалению, в подавляющем большинстве материалов на тему «проблемы кодировок» их авторы (как русские, так и зарубежные) погружаются исключительно в одну тему — в описание многочисленных технических «внутренностей» различных стандартов, из–за которых при работе с тем или иным языком возникают проблемы. Если даже они и предлагают свои собственные варианты решения данной проблемы, то делают это, «не видя за деревьями леса» и не поднимая ряда нетехнических вопросов, которые имеют более глобальный характер. В результате ничего не меняется — несовместимые стандарты лишь продолжают множиться, и «проблема кодировок» остаётся нерешённой.

Для того, чтобы на практике приблизиться к решению «проблемы кодировок», нужно иметь представление о том,

• каким образом она возникла;

• кто её создал и продолжает поддерживать;

• кто несёт от неё наибольший ущерб, а кто — выигрывает.

Собственно, рассмотрению этих вопросов и посвящена статья.

К началу 1960–х годов мировая сфера производства компьютерной техники контролировалась рядом крупнейших транснациональных корпораций, головные отделения которых располагались, преимущественно, в одной стране — США. И сложилась ситуация, когда каждая корпорация в своих устройствах предлагала свою собственную систему для кодирования символов естественных языков, несовместимую с таковой системой конкурентов. Каждая корпорация таким образом хотела заставить покупателей приобретать исключительно свою «линейку оборудования», в рамках которой совместимость различных устройств была обеспечена.

Подобная ситуация не устраивала покупателей компьютерной техники и шла вразрез с национальными интересами США — ведь буквы английского языка в каждой из указанных систем кодировались по–своему, и это тормозило развитие национальной сферы ИТ в США. Поэтому американскому национальному стандартизирующему органу — ASA (позднее — ANSI) — была поставлена задача решить проблему путём разработки единого государственного стандарта на систему кодирования символов естественных языков в машинно–читаемом виде.

Был организован специальный комитет (X3.4 Committee), для работы в котором были приглашены представители крупнейших корпораций–производителей компьютерной техники. Некоторые согласились принять участие в этой работе, поскольку на тот момент путаница в области систем кодирования достигла такой степени, что, очевидно, стала причинять проблемы уже и им самим. Ведь речь шла уже о том, что из–за использования разных систем кодирования символов стал невозможен обмен информацией даже между двумя компьютерами, произведёнными одной и той же корпорацией, но принадлежащих к разным «линейкам» или семействам.

«У нас существовало более 60 различных систем, использовавшихся для кодирования символов естественных языков в компьютерах. Это было самое настоящее „вавилонское столпотворение“» [1] — констатировал в интервью американскому журналу «ComputerWorld» Боб Бемер (Bob Bemer), с 1956–го по 1962–й годы — работник корпорации IBM и один из главных разработчиков системы ASCII, которая в 1963–м году была принята ANSI в качестве государственного стандарта США на кодирование символов естественных языков в машинно–читаемом виде. При этом принята она была в недоработанном виде; окончательная версия системы ASCII была утверждена в 1968–м году.

Заметим, что корпорация IBM — бесспорный лидер в производстве компьютерной техники в 1960–х — 1970–х гг. — тем не менее без каких–либо последствий для себя нарушала государственный стандарт ASCII на протяжении многих лет после его официального принятия (вплоть до августа 1981–го года, когда она выпустила первые компьютеры серии PC). IBM использовала в своих «мэйнфреймах» System/360, которые впервые поступили в продажу в 1964–м году, свою собственную, несовместимую с ASCII, патентованную систему кодирования символов — EBCDIC, — которая существовала в 57 различных версиях, в том числе «национальных». При этом получить от IBM документацию по версиям EBCDIC было чрезвычайно сложно.

В 1967–м году ISO [2] выпускает рекомендацию ISO 646, которая фактически сделала систему ASCII уже международным стандартом. И это при том, что система ASCII заведомо не удовлетворяла самым очевидным требованиям, предъявляемым к системе кодирования символов, пригодной для международного применения.

Как известно, количество одних только ныне используемых естественных языков, используемых в мире, превышает 2500. Общее количество символов, используемых только в одном из них — японском, к примеру, — превышает 65000.

В системе ASCII же для кодирования каждого символа использовалось 7 бит, а её таблица символов содержала 128 позиций (из которых 32 были отведены под управляющие последовательности, а собственно под символы было отведено, соответственно, 96). Среди этих 96 позиций 52 были уже забронированы за заглавными и строчными буквами английского алфавита, 10 — за арабскими цифрами, прочие — за различными знаками препинания и специальными символами. Для изображения символов и букв «всех прочих» национальных языков, кроме английского, ISO определила в этой таблице «открытые позиции», общим количеством… 10 штук.

Чтобы обеспечить «поддержку» работы с другими языками, кроме английского — не «работу», а именно «поддержку», рассматриваемую ISO, таким образом, как нечто опциональное! — предлагалось использовать технические ухищрения — управляющие последовательности (escape–последовательности). После того, как компьютер встречал в тексте специальную управляющую последовательность, считалось, что произошла смена стандартной таблицы символов, используемой в ASCII, на одну из «дополнительных», содержащую символы того или иного «дополнительного» языка. Таких «дополнительных» таблиц ISO было утверждено в общей сложности более 180!

Затем систему кодирования ASCII пересмотрели, и для кодирования каждого символа стали использовать не 7, а 8 бит (этот 8–й бит существовал и ранее, но использовался не для представления данных, а для осуществления контроля чётности). Заметим, что в тексте стандарта ASCII такое «расширение» никак не регламентировано. Это привело к многочисленным проблемам, так как существующее на тот момент ПО работало с ASCII в его оригинальном виде [3] .

Объём таблицы символов возрос до 256 позиций. Это позволяло отказаться от использования управляющих последовательностей для обеспечения работы с некоторыми языками, символы которых можно было уместить в появившееся место [4] . ISO выпускает стандарты ISO 2022 и серию стандартов ISO 8859–X (X — цифра от 1 до 15), описывающие, как следует задействовать новую возможность.

Серия стандартов ISO 8859–X по заказу ISO разрабатывалась с середины 1980–х гг. ассоциацией крупнейших европейских производителей компьютерной техники (ECMA, European Computer Manufacturer's Association). В каждом из этих стандартов были определены 15 разных таблиц символов, каждая из которых содержала 256 позиций.

При этом оговаривалось, что первые 128 символов каждой таблицы должны обязательно быть теми же самыми, что в стандартной 128–символьной таблице системы ASCII (и рекомендации ISO 646). Таким образом, в каждой из этих таблиц вновь обеспечивалась неприкосновенность для символов английского языка. Для представления символов других языков отводились остающиеся позиции, во вторых половинах этих 256–символьных таблиц.

Совершенно очевидно, что определённая в ISO 8859–X схема заведомо неприемлема, так как в ней символы разных языков обозначаются одними и теми же двоичными последовательностями, и определить, какую именно таблицу символов использовать для их прочтения — ISO 8859–1 или же, например, ISO 8859–5, — невозможно, если не знать этого заранее.

Однако это — только половина проблемы. Дело в том, что американские корпорации не соблюдали стандарты ISO серии 8859–X. В «национальных» версиях своего программного обеспечения они использовали расширенную до 8 бит систему кодирования ASCII и таблицы символов, содержащие 256 позиций; первые 128 символов в которых соответствовали стандартной 128–символьной таблице 7–битной системы ASCII (то есть вновь английский язык не затронут), а расположение символов национальных языков во второй половине таблицы не соответствовало расположению, определённому ISO в стандартах серии 8859–X [5] .

Таким образом возникали ситуации, когда даже для одного и того же языка сосуществовали две, а то и большее количество таблиц символов, несовместимых между собой и без наличия дополнительной информации программно неразличимых.

Возьмём в качестве примера многострадальный русский язык. Для кодирования больших и малых букв русского алфавита используются следующие несовместимые или не полностью совместимые между собой таблицы (и это не полный список; см. http://czyborra.com/charsets/ http://czyborra.com/charsets/cyrillic.html#Unicode):

• ISO использует таблицу «Cyrillic», описанную в стандарте ISO 8859–5;

• корпорации IBM и Microsoft в своих ОС PC DOS и MS DOS использует таблицу CP866. CP866 — это один из представителей целой серии таблиц, используемых для «поддержки национальных языков» различными производителями DOS (CP437, CP850, CP852 и т.д., вплоть до CP874. Интересно, что ISO 8859–5 в этом наборе есть и упоминается как CP915). Очевидно, эта серия таблиц была составлена разработчиками и региональными продавцами компьютерной техники (Microsoft называет её «OEM charsets»), но из приведённых в документации ОС PC DOS 2000 ( (tm) of IBM Corp. ) данных ясно, что она как–то между прочим и фактически тайком была стандартизирована ISO — в документе ISO 9241–3, описывающем параметры мониторов [6] — «в дополнение» к уже определённой ранее серии стандартов 8859–X;

• корпорация Apple в русскоязычной версии своей ОС Mac OS использует свою таблицу X–Mac–Cyrillic;

• корпорация Microsoft в своих ОС Windows 3.X и Windows 9X использует таблицу CP–1251. CP–1251 — это также представитель целой серии таблиц (CP–125X, где X — от 0 до 8), использованных Microsoft в различных «национальных» версиях Windows. При этом в документации к Windows 3.X Microsoft называет их «ANSI charsets», и вполне возможно, что они действительно были где–то и когда–то стандартизированы ANSI;

• советский (теперь — русский) национальный стандартизирующий орган ГОСТ определяет таблицу КОИ–8 (ГОСТ 19768–74; в этом стандарте определяется также 128–символьная таблица КОИ–7), затем — таблицу, известную как «основная кодировка ГОСТ» (ГОСТ 19768–87). (Впоследствии, правда, ГОСТ принял «альтернативную кодировку», таблица которой соответствовала, за малым исключением, таблице CP866 — только было уже поздно).

На практике в аппаратном обеспечении компьютерных систем [7] и в ОС для работы с текстами на разных языках использовались и по сей день используются 8–битная система кодирования символов вкупе с вышеописанными различными таблицами символов, объёмом в 256 позиций каждая. Однако американские компьютерные корпорации IBM и Xerox ещё в первой половине 1980–х начали работу над созданием новой «многоязычной» системы кодирования, в которой для представления символов используются двоичные последовательности длиною в 16 бит, а также единая большая таблица символов объёмом в 65536 позиций.

Впоследствии к этим корпорациям присоединились другие, и был начат проект, названный представителями американской компьютерной индустрии «Unification Code», или Unicode. Причём, дошло до того, что в 1991–м году эти корпорации (в их числе также Adobe, Microsoft и др.) для продвижения Unicode в качестве международного стандарта создали одноимённый транснациональный консорциум [8] .

Главной задачей Unicode официально было объявлено сведение существующих в мире символов естественных языков в указанную большую таблицу и обеспечение одновременной и «равноправной» работы с ними. То есть, очевидно, когда количество недовольных «проблемой кодировок» пользователей превысило некоторую «критическую массу», указанные корпорации решили «обнародовать» систему Unicode и представить её как решение данной проблемы, делая намучившимся операторам ПК заманчивое, на первый взгляд, предложение — покупать поддерживающее её ПО.

Однако на самом деле и система Unicode является не окончательным решением проблемы кодирования символов, а лишь паллиативом. Дело в том, что метод кодирования, используемый в оригинальной версии Unicode, не предусматривал использования управляющих последовательностей для переключения между «базовой» и возможными «дополнительными» таблицами символов (как в ISO 646), поэтому максимальное количество символов, которые можно было представить, пользуясь Unicode, равнялось объёму одной–единственной («базовой») таблицы символов, используемой в этой системе — 65536.

А поскольку мы знаем, что в одном только японском языке используется около 65000 символов, можно понять заранее, что метод и таблица символов Unicode на самом деле малы для представления всех символов языков мира.

Таблица символов, используемая в Unicode, устроена следующим образом. Она разбита на 256 рядов. Первые ряды содержат некоторые из старых таблиц символов (объёмом в 128 или 256 позиций каждая) , определённых для некоторых языков. Самый первый ряд (под номером 0) представляет из себя таблицу ISO 8859–1 (в свою очередь, она содержит 128 символов из таблицы 7–битной системы ASCII, а также некоторые символы, используемые в языках стран Западной Европы).

Последующие ряды таблицы отведены под некоторые новые символы (например, математические), но преимущественно — под иероглифы. Однако поскольку используемой в Unicode таблицы объёмом в 65536 символов заведомо недостаточно для представления всех иероглифов, используемых в китайском, японском и корейском языках — хотя официально корпорации–разработчики Unicode заявляют об их поддержке как об одной из главных положительных черт своей системы, — иероглифы, которые, по мнению корпораций, «похожи» друг на друга, было решено «унифицировать» — то есть оставить только такое их начертание, которое принято в китайском языке.

В общей сложности в таблице символов системы Unicode (на данный момент, то есть в версии 3.0 — см. ниже) насчитывается около 28000 иероглифов. Как видно, многие иероглифы — в частности те, что в Японии используются для написания имён людей, названий местностей, а также в исторических текстах — вообще были оставлены «за бортом». При этом «похожие» и действительно одинаковые символы европейских языков, например, букв «A», «унификации» подвергнуты не были, поэтому в то же самое время масса места в таблице символов Unicode используется, по сути, впустую.

Как следствие, жители стран Юго–Восточной Азии, за которых американские корпорации пытаются решить, какие символы им «разрешается» использовать в компьютерной технике, а какие — «запрещается», уже в течение нескольких лет борются с системой Unicode. Она совершенно не соответствует самым первоочерёдным требованиям, предъявляемым к ней в этих странах, — вопреки рекламным заявлениям корпораций–членов консорциума.

Уместно рассмотреть теперь, какие агрессивные шаги предпринимают корпорации для утверждения Unicode в качестве международного стандарта.

В начале 1990–х в ISO для решения проблемы кодировок рассматривалась другая, более совершенная чем Unicode, система кодирования символов — UCS (Universal Coded Character Set). Объём её таблицы символов составляет примерно 4,3 миллиарда символов (а точнее, 2^32=4294967296). Эта таблица разбита на 65536 «внутренних» таблиц по 65536 символов каждая, и разбивка этих «внутренних» таблиц (256x256 рядов) совпадает с разбивкой таблицы, используемой в системе Unicode. Для переключения между «внутренними» таблица ми в UCS предлагалось использовать управляющие последовательности.

Система UCS была описана в «черновике» ISO DIS–10646.1:1990, подготовленном ISO/IEC JTC1/SC02/WG02. Её поддержали европейские и японские исследователи. Однако американские корпорации UCS не устраивала. А поскольку ISO, как она сама указывает в своих документах, «выпускает только те стандарты, которые нужны рынку», а также потому, что многие нанимаемые ISO «эксперты» — это работники американских компьютерных корпораций, то неудивительно, что вскоре черновик ISO DIS–10646.1:1990 тихо прекратил своё существование.

«Зато» появился — уже в качестве не черновика, а стандарта — документ ISO/IEC 10646 Version 2, позднее названный ISO/IEC 10646–1: 1993. Он был обозначен как «ISO/IEC 10646 Universal Multiple–Octet Coded Character Set (UCS) — Part 1: Architecture and Basic Multilingual Plane», и в качестве его базовой таблицы символов (т.е. первой из «внутренних» 65536–символьных таблиц) была утверждена… правильно, таблица системы Unicode, со всеми вытекающими отсюда последствиями.

Заметим, что по мере изменения и пополнения таблицы символов системы Unicode и выхода новых версий этой системы — а эта работа ведётся постоянно, поскольку изначально система Unicode была представлена в ISO в недоработанном виде — выходят и новые документы ISO. Система Unicode существует в общей сложности в следующих версиях: 1.1 (соответствует стандарту ISO/IEC 10646–1: 1993), 2.0, 2.1 (тот же стандарт ISO/IEC 10646–1: 1993 плюс дополнения: «Amendments» с 1–го по 7–е и «Technical Corrigenda» 1 и 2), 3.0 (стандарт ISO/IEC 10646–1:2000). В начале 2002–го года планируется выход Unicode 3.2, а в 2003–м — Unicode 4.0.

Кстати, работа по «унификации» иероглифов для таблицы символов Unicode сейчас ведётся тоже не консорциумом Unicode, а ISO — специальным комитетом IRG при JTC1/SC02/WG02. И это при том, что в оригинальной версии UCS (в черновике ISO DIS–10646.1:1990) было чётко определено, что «базовая» (первая «внутренняя») таблица вообще не предназначена для иероглифов. При этом работа по «унификации» продолжается до сих пор, хотя в одной из более поздних версий системы Unicode было объявлено, что таблица символов будет расширена до примерно 1000000 позиций (с помощью использования специальных «расширений», которые в первоначальной версии Unicode не планировались — см. выше).

В дополнение к всему уже сказанному об Unicode нужно отметить ещё некоторые обстоятельства. Для того, чтобы сделать её хотя бы частично совместимой с ранее существовавшим ПО (а возможно, и чтобы не тратить денег на серьёзную переделку своего ПО, находящегося в стадии разработки), членами консорциума были разработаны различные методы представления (номеров) символов таблицы Unicode: UTF–8, UTF16, UTF16LE и UTF16BE. Отсюда возникает необходимость в реализации в ПО поддержки каждого из них, что определённо порождает новый виток путаницы. С этим обстоятельством связано, вероятно, большинство проблем, существующих в конкретных реализациях поддержки работы с системой кодирования Unicode в различном ПО.

Отметим, что консорциум Unicode держит «про запас» методы UTF32, UTF32LE, UTF32BE, в которых для кодирования (номера) каждого символа предусматривается использование уже 32–битных последовательностей (что, однако, «автоматически» не означает, что таблица символов будет расширена до 4,3 миллиардов позиций). Однако их применение чрезвычайно расточительно с точки зрения расходования системных ресурсов, и представители Unicode прямо указывают, что в ближайшее время промышленность (читай — корпорации–члены Unicode) не планирует переходить на применение этих методов.

У системы Unicode есть и другие нерешённые проблемы, наличие которых для международного стандарта просто неприлично, но мы не будем на них останавливаться отдельно. Интересующиеся могут ознакомиться с этой информацией на web–сайте проекта TRON [9] .

Зададимся теперь вопросом: почему же всё–таки не возник единый международный стандарт, в таблице символов которого были бы последовательно занесены символы всех существующих естественных языков [10] , притом одинаково удобный для применения во всех странах мира? Почему, напротив, в качестве международных принимались и принимаются заведомо несовершенные стандарты, часто недоработанные, и появилось большое количество несовместимых таблиц символов? Попробуем оценить основные причины.

1. корпорациям–производителям ПО, очевидно, весьма выгодно продавать разные «национальные» версии операционных систем, офисных пакетов и т.д. за отдельные деньги. Так, Microsoft продавала «американскую», «панъевропейскую», «восточно–азиатскую», « ближневосточную» и «тайскую» версии Windows 95, а IBM — стандартную, «арабскую», «израильскую», «японскую», «корейскую», «китайскую» и «тайваньскую» версии PC DOS. Отсюда возникновение несовместимых таблиц символов, содержащих 256 позиций каждая.

Кроме того, как уже говорилось, это, очевидно, позволило корпорациям в дальнейшем нажиться на продажах ПО, соответствующего стандарту Unicode — кому оно было бы нужно, не существуй «проблема кодировок»?! — а также на продаже самогó текста этого стандарта.

2. поскольку «проблема кодировок» теперь не касается английского языка, у ANSI и правительства США не было повода вмешиваться в её решение, как это было в 1963–м.

Более того, «проблема кодировок», не касающаяся английского языка, стратегически выгодна для США. Она обеспечивает лидерство США и его крупнейшего англоязычного партнёра по НАТО — Великобритании (и Австралии) — в сфере ИТ, и отставание других стран, так как «проблема кодировок» препятствует информационному обмену между людьми, работающими с данными не на английском языке.

Особенно это заметно на примере важнейшей сферы ИТ, относящейся к сети Internet:

• использование для представления различных символов различных языков одних и тех же двоичных последовательностей (при этом «угадать», которую из таблиц символов нужно использовать, ПО без дополнительных данных не может) делает их употребление в именах файлов [11] и Internet–ресурсов если не невозможным, то, как минимум, нефункциональным и потому нежелательным. Символам английского языка, напротив, всегда «горит зелёный свет»;

• существование «проблемы кодировок» препятствует навигации по не англоязычным текстовым материалам в сети Internet, так как оно значительно увеличивает требования к вычислительным мощностям и программному обеспечению компьютерных систем, на базе которых строятся поисковые серверы Internet. Кроме того, заметим, что на важнейшей — начальной — стадии развития Internet, когда на серверы выкладывались данные, ни клиентского, ни серверного ПО, которое позволяло бы удовлетворительным образом решить «проблему кодировок», практически не было. Тем, кто не согласен, предлагаю вспомнить, сколько таблиц символов и с каким качеством «понимали» ранние версии, ну, хотя бы www–броузеров Netscape Navigator и Internet Explorer… Поэтому можно с полной ответственностью заявить, что это воспрепятствовало равноправному участию всех стран в построении международного информационного пространства. «Проблема кодировок» не дала шансов вырваться в этой важнейшей области ИТ в лидеры ни одной из не англоязычных стран, так как не позволила своевременно разместить в сети Internet их национальное культурное достояние и обеспечить его общедоступность;

• проявление «проблемы кодировок» в сервисах www, e–mail и news оказало колоссальное влияние не только на поставщиков информации, но и на её конечных потребителей: во–первых, увеличивается общее время пребывания людей в Internet (что выгодно провайдерам, в конечном итоге приносящим доход экономике США), во–вторых, большинство непрофессионалов таким образом вынуждается пользоваться для работы с Internet теми программами, в которых поддерживается наибольшее количество таблиц символов и методов кодирования. Как правило, такое ПО относится к одной из двух категорий — произведённое корпорациями в соответствии с их интересами (вероятно, нет необходимости лишний раз перечислять здесь его, мягко говоря, недостатки) или же предлагаемое за отдельные деньги. ПО, принадлежащее к последней категории, скорее всего, будет загружено нуждающимися из Internet, что вытянет из их карманов ещё больше денег в карманы провайдеров.

Наконец, существование «проблемы кодировок», вкупе с чрезвычайно низким качеством перевода «национальных» версий многочисленных программных продуктов (да и всей относящейся к ИТ терминологии, запутанной даже в оригинальных, преимущественно англоязычных, источниках), а то и полным отсутствием таковых, послужило серьёзным толчком к «англификации» мира.

Получается, что сложившиеся (или всё же кем–то намеренно сложенные?) обстоятельства в сфере ИТ фактически в принудительном порядке заставляют всё больше и больше людей изучать английский язык и даже переходить на использование его алфавита, отказываясь от алфавитов своих национальных языков — вспомните–ка так часто вынужденно используемую в www и e–mail транслитерацию! Ажиотаж вокруг этого уже сейчас активно подогревают некоторые псевдонаучные деятели, ненавязчиво убеждающие, в частности, русскоязычную общественность в том, что «лет через 30–40 она естественным образом перейдёт на использование латиницы»…

Чем это грозит накапливаемому в течение веков национальному информационно–культурному потенциалу, вероятно, не менее очевидно, чем стратегический характер «проблемы кодировок». И то, что направлена она не только на отдельно взятый «великий и могучий» русский язык… Уместно обратить внимание на то, что наибольший вред «проблема кодировок» имеет тенденцию причинять именно государствам с наиболее богатыми культурными традициями, таким как Япония, Китай (Тайвань) и Южная Корея. При этом отметим, что данные государства являются преуспевшими в развитии не только культурной, но и, по совместительству технологической базы. Высокотехнологическая промышленность («hi–tech») в этих странах является единственным реальным конкурентом таковой промышленности США. Не правда ли, интересное совпадение?!

В завершение статьи хотелось бы привести несколько фактов без комментариев.

В таблице символов японского национального стандарта JIS X 0208–1990 предусмотрено место не только для иероглифов японского языка, но также для букв греческого алфавита и кириллицы; в то же время аналогичные советско–росийские ГОСТы, как было показано выше, не дают пользоваться не то что японскими, но даже собственными, русскими, буквами. Не менее уместно заметить, что ГОСТ уже много лет как нарушает собственные стандарты, и даже сайт этого ведомства выдаёт страницы с использованием таблицы символов CP–1251 [12].

В 1991–м году в Испанию была завезена крупная партия западных компьютеров, на которых использовалась таблица символов, не содержащая одной из букв алфавита национального языка (а именно буквы «N под тильдой»). В результате этого произошёл скандал на государственном уровне: «возмущённые возможностью искажения испанских слов (в том числе и ESPAÑA) парламентарии обязали торговых посредников оплатить стоимость адаптации партии компьютеров, а впредь на таможнях осуществлять „входной контроль“» [13] . Что касается русского ГОСТ'а, в ряде своих вышеперечисленных творений стандартизировал на государственном уровне отсутствие в таблице символов одной из букв национального алфавита (Ё)…

Несмотря на то, что в российских научных кругах имеется ряд интересных предложений по решению «проблемы кодировок» [14] , о серьёзной поддержке их на государственном уровне речи не идёт. Подавляющей части русскоязычной широкой общественности эти предложения вообще неизвестны. Какой уж тут разговор о «национальных интересах»?

На этом разрешите окончить статью. Надеюсь, мне удалось предоставить читателям достаточно пищи для размышлений…

Приложение #1. Предыстория «проблемы кодировок».

Первой системой кодирования, в которой для представления символов естественных языков применялись двоичные последовательности (а в современной компьютерной технике используется тот же самый принцип), была система, которую в 1874–м году реализовал француз Ж. Бодо в своём «печатающем телеграфе». Заметим, что в то время телеграф был ничуть не менее передовым изобретением в сфере ИТ, чем в наше время — компьютер.

Система Ж. Бодо широко применялась и в XX веке, до тех пор, пока телеграф как средство связи окончательно не уступил свои позиции телефону. В 1932–м году CCITT (ныне — ITU–T) зарегистрировал её в качестве международного стандарта под названием «International Telegraphic Alphabet №2», т.е. «Международный алфавит №2 для телеграфа».

Обратим внимание на следующие немаловажные обстоятельства:

Несмотря на то, что на Земле насчитывается более 2500 естественных языков, система, предложенная Ж. Бодо, обеспечивала работу с буквами только одного языка. Заметим, что это был не французский язык, так как в оригинальной версии системы Ж. Бодо не был предусмотрен ряд букв, используемых во французском языке (например, «É»), и даже не латинский — это был английский язык; как известно, в латинском алфавите, в отличие от английского, нет буквы «W», а в системе Ж. Бодо она была предусмотрена.

Из–за технических ограничений, существовавших в XIX веке, в системе Ж. Бодо был использован метод кодирования, при котором каждый символ представлялся с помощью двоичной последовательности длиною в 5 бит, а в таблице символов было всего 64 позиции (как минимум 4 из которых обязательно приходились на долю управляющих последовательностей). Производство более сложно сконструированных технических устройств, на которых можно было бы реализовать более совершенные методы — для представления большего числа символов, — было невыгодно тогдашней промышленности, так как не позволяло ей удерживать более–менее разумные цены на устройства и снимать сверхприбыли одновременно.

В той версии системы Ж. Бодо, что была стандартизирована CCITT как «Международный алфавит №2 для телеграфа», 52 из 64–х позиций в таблице символов были зарезервированы под символы английского языка, цифр и знаков препинания. 9 позиций были зарезервированы под управляющие работой «печатающего телеграфа» двоичные последовательности. Таким образом, для представления символов всех прочих языков оставались 3 позиции, наличие которых CCITT посчитал достаточным основанием для названия данной системы кодирования «международной»…

Приложение #2. Международные организации по стандартизации

Существующий миропорядок: наиболее мощные и влиятельные структуры, контролирующие развитие мировой сферы ИТ, а также компьютерной, программной и телекоммуникационной отраслей.

UN (United Nations) — собственно ООН, Организация Объединённых Наций. Создана в США в 1945–м году. Штаб–квартира, как известно, находится в Нью–Йорке.

Безусловно, у ООН имеются положительные заслуги в части правозащитных и некоторых миротворческих инициатив. В числе наиболее существенных, например, Всеобщая декларация прав человека (1948) и программа World Health Organization (WHO, или ВОЗ — дочерняя структура ООН) по искоренению натуральной оспы (1977).

С помощью своих дочерних структур ООН охватывает и регулирует практически все аспекты жизнедеятельности мирового сообщества. Однако в последнее время большая часть наиболее общественно полезных инициатив ООН носит преимущественно декларативный характер.

Что ещё хуже, должный контроль их выполнения на деле фактически не осуществляется. Это касается и миротворческих процессов, и программ по борьбе с голодом и такими заболеваниями, как малярия и туберкулёз, и борьбы с производством наркотиков, и, в особенности, контроля за соблюдением прав человека.

Действия ООН до сих пор не привели и к нахождению какого–либо варианта решения такой глобальной и опаснейшей для человечества проблемы, как перенаселение. В 1970–м году на Земле проживало около 4 миллиардов человек, в 1987–м — уже около 6 миллиардов; и уже сейчас население возросло ещё более чем на миллиард людей. С учётом ограниченности мировых энергетических и продовольственных ресурсов это означает постоянный переход всё большего и большего количества населения ниже черты сколько–нибудь приемлемого уровня жизни. Отсюда и голод, и эпидемии, и войны из–за природных ресурсов.

Но, пожалуй, наиболее очевидным следствием (и доказательством) всего сказанного выше про реальный характер деятельности ООН всё же являются наблюдаемые уже сейчас глобальные нарушения мирового климата.

При этом современные направления реальной активности ООН, как будет продемонстрировано ниже, гораздо чаще совпадают с политические интересами тех государств, которые в большей степени заняты в финансировании этой организации — крупнейших стран, объединённых капиталистическим строем. Поэтому нередко деятельность ООН идёт, мягко говоря, не на пользу большей части мирового сообщества. В СМИ неоднократно сообщалось о прецедентах такого рода.

Среди важнейших дочерних организаций современной ООН, дающих о ней наиболее корректное представление, такие (в том числе печально известные), как:

WTO (World Trade Organization) — ВТО, Всемирная Торговая Организация, штаб–квартира которой расположена в Швейцарии, ответственна за глобализацию мировой экономики; её деятельность вызывает у населения даже капиталистических государств, которые в ней представлены, категорические протесты по поводу нарушения ВТО общечеловеческих прав. К сожалению, до настоящего времени эти протесты не оказывают сколько–нибудь серьёзного действия на ВТО; члены ВТО при этом открыто заявляют, что и впредь будут их игнорировать.

IMF, International Monetary Fund — МВФ, Международный валютный фонд.

World Bank Group — Всемирный банк.

IBRD, International Bank for Reconstruction and Development — МБРР, Международный банк реконструкции и развития.

Три последние организации (штаб–квартиры всех их расположены в США), как известно, ставят экономику различных стран, не входящих в число ведущих мировых капиталистических держав, в финансовую зависимость, предоставляя им кредиты. В России они хорошо известны и ассоциируются с такими представителями, как Джеймс Вулфенсон, Мишель Камдессю, Джордж Сорос (крупнейший биржевой спекулянт). Как и в случае с ВТО, представители мирового сообщества неоднократно подвергали деятельность указанных лиц и организаций резчайшей критике, и вновь — безрезультатно.

Поскольку мировой порядок в известной степени определяется развитием межобщественных информационных связей, неудивительно, что ООН через ряд дочерних организаций принимает активное участие и в захвате контроля над сферой информационных технологий (ИТ). Вот важнейшие из этих структур:

WIPO (World Intellectual Property Organization)

МОИС, Мировая Организация Интеллектуальной Собственности

Печально известная структура (штаб–квартира в Швейцарии), ответственная за лоббирование и установление международных законов и норм, ставящих в привилегированное положение производителей информационных продуктов и обесправливающих их потребителей. Эти нормы очень близки к американскому закону DMCA — Digital Millennium Copyright Act, который прямо препятствует свободному распространению информации и свободе слова. DMCA в действии хорошо известен российской общественности по судебному процессу над Дмитрием Скляровым. На момент написания статьи в WIPO входят представители 177 стран. Официальная пропаганда деятельности WIPO ведётся на английском, французском, испанском, арабском и русском языках.

ITU, International Telecommunication Union

МСЭ, Международный Союз Электросвязи

Подразделяется на три сектора: ITU–R — МСЭ–Р, ответственный за регулирование в области радио– и телевизионной связи, ITU–T — МСЭ–Т, ответственный за стандартизацию телекоммуникационной сферы, а также ITU–D, ответственный за регулирование в области разработки телекоммуникационного оборудования. Среди прочего, ITU отвечает за формирование тарифов на телекоммуникационные услуги.

История формирования ITU:

В 1865–м году в Париже представители 20 наиболее развитых капиталистических держав подписали первое международное соглашение по телеграфу (International Telegraph Convention); ими был основан ITU, International Telegraph Union — Международный союз по телеграфии. При этом особо отмечается, что за прошедшие с тех пор 136 лет цели, которые ставит перед собой ITU, ничуть не изменились [15] . В 1906–м году на организованной им конференции в Берлине были заключены первые международные соглашения по радиосвязи. В 1924–м году было создано подразделение CCIF — Международный консультативный комитет по телефонии, в 1925–м — CCIT — Международный консультативный комитет по телеграфии. В 1927–м в США был создан CCIR — МККР, Международный Консультативный Комитет по Радио. В 1932–м году в Мадриде было подписано общее международное соглашение по стандартизации в вышеуказанных областях (International Telecommunication Convention). В 1947–м году ITU переименовывается в International Telecommunication Union и становится подразделением ООН. Примерно в это же время был основан IFRB, International Frequency Registration Board — Международный совет по регистрации радиочастот, который объявил таблицу распределения радиочастот (Table of Frequency Allocations), составленную ещё в 1912–м году (!), обязательной для международного соблюдения. В 1956–м году подразделения CCIT и CCIF сливаются в одно — CCITT, МККТТ. Наконец, в 1993–м году ITU формируется в своём нынешнем виде. CCIR становится сектором ITU–R, а CCITT — сектором ITU–T.

Организации–члены ITU — это преимущественно крупнейшие американские, западноевропейские и транснациональные корпорации, работающие в сферах производства коммерческих компьютерной техники, программного обеспечения (ПО) и телекоммуникационных средств, а также предоставления телекоммуникационных услуг. Кроме того, членами ITU также являются ISO и IEC (см. ниже). Членами одного только ITU–T (на момент написания статьи их 432) было выпущено порядка 2800 рекомендаций по стандартизации различных областей телекоммуникационной отрасли.

Рабочие группы ITU–T, занимающиеся конкретными категориями вопросов и ведущие разработку и внедрение конкретных стандартов, почему–то называются «учебными группами» — Study Group. В общей сложности их в настоящее время 18.

Членство в ITU — платное.

Уместно рассмотреть национальное деление ITU [16] . Первое, на что обращается внимание при просмотре таблицы — это беспрецедентно большое число представителей США: только официально в ITU их более 150. В это число не входят дочерние филиалы американских корпораций (которые нередко зарегистрированы как представители стран, в которых они работают), а также международные организации со штаб–квартирой в США и/или подавляющим большинством американских представителей. Что же касается, к примеру, России, то она представлена всего четырьмя компаниями, одной из которых является печально известное ОАО «Ростелеком» (второй — ОАО «Коминком», которое своего членства в ITU на своём сайте почему–то не афиширует; третьей — некое «региональное содружество в области коммуникаций», и четвёртой — «Интерспутник»)…

Официальные документы ITU представлены на английском, французском и испанском языках (хотя к «официальным и рабочим языкам ООН» относятся, между прочим, также русский, китайский и арабский).

Помимо указанных выше организаций существует также ряд других крупных транснациональных стандартизирующих групп, которые сами по себе не являются дочерними структурами ООН (но, тем не менее, нередко сотрудничают с ними). Эти группы также принимают непосредственное участие в стандартизации различных областей промышленности, в том числе имеющих непосредственное отношение к сфере ИТ. Наиболее влиятельными из этих групп являются:

ISO, International Organisation for Standardization

МОС, Международная организация по стандартизации

Крупнейшее объединение стандартизирующих организаций различных стран (на момент написания статьи участвующих в работе ISO стран насчитывалось 140). Основана вскоре после становления ООН, в 1947–м году. Штаб–квартира, как и у многих ООНовских дочерних структур, в Швейцарии. На момент написания статьи ISO было утверждено порядка 13000 международных стандартов.

Декларирует себя как некоммерческую (non–profit) и негосударственную организацию. В то же время члены ISO — это национальные стандартизирующие институты различных государств. Именно они вводят в действие формируемые ISO стандарты и обеспечивают в своих государствах контроль за их соблюдением. В числе членов ISO — американский ANSI (American National Standards Institute) и российский ГОСТ Р (Госстандарт).

Управляющий орган ISO — центральный секретариат (CS) — решает вопросы членства в организации и финансируется за счёт взносов представителей стран–членов, при этом размер взноса зависит от объёма ВВП соответствующей страны, а также за счёт продажи текстов стандартов, в том числе относящихся к сфере ИТ. Естественно, это дикость, грубо противоречащая свободе распространения информации и свободному доступу к ней. Кстати, не только ISO, но и его члены, в том числе ANSI и ГОСТ Р, тоже торгуют текстами стандартов.

Однако основное финансирование ISO осуществляется организациями, которые ответственны за разработку и предложение своих стандартов на утверждение. Эти организации, обычно для разработки указанных стандартов нанимают так называемых «экспертов», которые представляют, как правило, интересы «промышленного, технического и бизнес–секторов, и, таким образом, вводят в употребление те стандарты, которые им необходимы». Особо подчёркивается, что «ISO берётся за разработку только тех стандартов, которые нужны рынку».

Действующая часть ISO состоит из, как уже говорилось, центрального секретариата (CS) и 224 технических комитетов (TC; среди них — JTC1, см. ниже), заведующих стандартизацией в разных сферах. TC подразделяются на субкомитеты (SC), а они, в свою очередь, на рабочие группы (WG). Обычно именно рабочие группы занимаются разработкой стандартов в конкретных областях.

При ISO существует комитет COPOLCO (Consumer Policy Comittee), ответственный за защиту прав потребителей и насчитывающий на момент написания статьи «75 членов по всему миру» (кстати, представителя от России среди них нет). Однако защита прав потребителей в области свободы распространения информации с помощью ИТ не входит в число приоритетных направлений его деятельности.

При этом уместно заметить, что членство в COPOLCO осуществляется через национальные стандартизирующие институты, являющиеся членами ISO. А как, вероятно, всем хорошо известно (а если нет, это ещё будет показано ниже), некторые национальные стандартизирующие институты, мягко говоря, не выражают интересов народов стран, которые они формально представляют.

ISO является одним из членов ITU и тесно сотрудничает с WTO. ISO также образует альянс с IEC (см. ниже) и разрабатывает совместно с ней ряд стандартов.

Официальные языки, на которых публикуются международные стандарты ISO — английский и французский. Указано, что поддерживаются и другие, однако, к примеру, русскоязычные тексты среди официальных документов ISO автору не встречались ни разу.

Примечательно, что в числе своих выдающихся своей положительностью для общества достижений PR–отдел ISO предпочитает не упоминать каких–либо глобальных направлений сферы ИТ, а те примеры, что приводятся, мягко говоря, небесспорны. Это касается, например, типоразмеров крепёжных элементов: даже в фенах и чайниках (а тем более в видеомагнитофонах) едва ли не каждая западная компания использует свои собственные «фирменные» винты и гайки, при этом фирменные отвёртки для них могут продаваться по цене, сравнимой со стоимостью ремонтируемого с помощью этой отвёртки устройства… Точно так же, на систему СИ, которой так гордится ISO, американцы, например, не переведены до сих пор и даже в заведомо международной продукции продолжают порой оперировать фунтами и милями.

На этом фоне уместно поставить вопрос и об унифицированной международной системе именования и нумерации текстов стандартов — её, представьте себе, не существует! Интересно, по какому тогда праву ISO берётся наводить порядок в мире, не успев (это за 50–то с лишним лет!) навести порядок, фактически, внутри себя?!

IEC, International Electrotechnical Comission

МЭК, Международная электротехническая комиссия

Транснациональная организация, ответственная за стандартизацию в области электротехнических, электронных и телекоммуникационных средств, в том числе используемых для работы в сфере ИТ. Основана в 1906–м году на основании соглашения, достигнутого в 1904–м году на международном электротехническом конгрессе в США. Штаб–квартира IEC расположена в Швейцарии. Структура IEC аналогична структуре ISO, в работе IEC принимают участие члены, представляющие (на момент написания статьи) 63 государства, при этом право голоса имеют представители около 50 государств.

Одним из главных партнёров IEC является WTO; IEC является главным реализатором программы WTO по преодолению технических барьеров торговле. Из других структур ООН с IEC сотрудничают также Всемирный банк (World Bank Group), Европейский банк реконструкции и развития (EBRD), МВФ (IMF). Очень тесно IEC работает также с ISO, выпуская с ней совместные стандарты.

JTC1, Joint Technical Committee 1

Объединенный технический комитет №1

Совместное подразделение ISO и IEC, созданное в 1986–м году. В него вошли различные ранее существовавшие раздельно комитеты этих организаций, ведающие различными направлениями, связанными с ИТ. JTC1 финансируется ISO и IEC и отвечает за разработку и выпуск международных стандартов в области ИТ. Принципы деятельности (языки официальных документов, торговля стандартами, плата за членство) соответствуют таковым принципам ISO и IEC, с тем, разве что, отличием, что «в последнее время проводится эксперимент по прямому участию (в обход национальных стандартизирующих организаций) компаний, работающих в сфере ИТ [17] , в технических разработках комитета». В JTC1 на данный момент работает порядка 2100 «экспертов».

Подробности о JTC1:

В JTC1 входят 27 национальных стандартизирующих институтов, подавляющее большинство которых представляет наиболее влиятельные капиталистические государства (исключение — Китай). Они представлены в JTC1 в качестве полноправных руководителей и участников процесса разработки стандартов (participating, p–members). Организации, представляющие другие страны (их 38, в т.ч. Россия), формально представлены в JTC1, но не имеют права голоса и действуют только в качестве наблюдателей (observer, o–members). Это касается комитета в целом, но не относится к отдельным структурным подразделениям (SC и WG), где представители указанных 38 стран всё же могут участвовать в работе на правах p–members.

В работе JTC1 и его SC принимают участие некторые TC ISO и IEC, а также организации, сотрудничающие с ISO и IEC: WIPO, ITU и другие дочерние структуры ООН, Всемирная таможенная система, НАТО, ряд крупных организаций, объединяющих преимущественно развитые капиталистические страны и работающих в разных сферах деятельности.

Рабочая часть JTC1 подразделяется в настоящее время на 17 субкомитетов (SC), занимающихся важнейшими, по мнению JTC1, направлениями ИТ (см. таблицы). Многие существовавшие ранее субкомитеты в настоящее время упразднены [18] .

Таблица 1. Официальные данные JTC1 об областях работы субкомитетов.

Субкомитет Область SC 36 Стандартизация компьютерных систем для сферы образования. SC 35 Интерфейсы — способы взаимодействия компьютера с человеком. SC 34 Форматы представления документов в цифровом виде, работа с ними. SC 32 Управление и обмен данными, представление ресурсов и метаданных в распределённых компьютерных системах, СУБД и др. SC 31 Средства электронной идентификации товаров и животных, штриховые коды. SC 29 Форматы представления графических, видео– и звуковых данных, кроме символов естественных языков. SC 28 Офисное оборудование — сканеры, факсы, принтеры, копировальные аппараты и др. SC 27 Проблематика безопасности в области ИТ, включая криптографию; вопросы внедрения механизмов безопасности в ПО не рассматриваются. SC 25 Протоколы для соединения оборудования; сфера телекоммуникаций не рассматривается. SC 24 Системы обработки и визуализации графики, в т.ч. интерактивной; форматы представления данных в цифровом виде не рассматриваются. SC 23 Оптические дисковые картриджи для цифровых данных. SC 22 Языки программирования. SC 22/WG 20 Интернационализация ИТ, устранение естественно–языковых барьеров в рамках как SC 22, так и всего JTC1 — группа особого статуса. SC 17 Устройства для идентификации людей, в т.ч. персональные карточки. SC 11 Гибкие магнитные носители для цифровых данных. SC 07 ПО — разработка программных продуктов и систем. SC 06 Телекоммуникации. SC 02 Представление в цифровом виде символов естественных языков.

Таблица 2. Официальные данные JTC1 (на момент написания статьи) о руководстве субкомитетов.

Субкомитет Секретариат Кого представляет президент субкомитета SC 36 ANSI Farance, Inc., США (корпорация) SC 35 AFNOR Ministry of National Education, Франция SC 34 ANSI Y–12 National Security Complex, США SC 32 US (?) Environmental Protection Agency PM–218 (EPA), США SC 31 ANSI Boston Management & Funding Associates, США SC 29 JISC Global Information and Telecommunication Institute, Waseda University, Япония SC 28 ABNT Brazilian Stds Committee on IT, Бразилия SC 27 DIN Siemens, Germany (крупнейший коммерческий концерн) SC 25 DIN Universitat Bremen, Германия SC 24 BSI NIMA, США (военное ведомство) SC 23 JISC NTT — Intelligent Technology Co. Ltd., Япония (Nippon Telegraph & Telephone) SC 22 ANSI нет данных; адрес e–mail кончается на sun.com SC 22/WG 20 ANSI Unisys B–203–14, США (подразделение крупнейшей бизнес–корпорации) SC 17 BSI APACS Standards Unit, Великобритания SC 11 ANSI нет данных; адрес e–mail кончается на worldnet.att.net SC 07 SCC Bell Canada (канадское отделение корпорации) SC 06 KATS Chung–ang University, Корейская Республика SC 02 JISC Institute for the Study of Languages and Cultures of Asia and Africa, Япония

Для того, чтобы составить более правильное представление о работе важнейших SC JTC1, полезно рассмотреть в деталях хотя бы один из них, например, SC 29. В этом SC, занимающемся форматами представления данных, насчитывается в общей сложности 339 членов. Членами считаются:

📎📎📎📎📎📎📎📎📎📎