1

Тема: Доколє буде живий ASCII і стек завязаних на ньому технологій?

Я деякий час займався алгоритмами шифрування/кодування інформації та розробкою компілера, і побачив, наскільки застарілі й вбогі сучасні стандарти кодування інформації. Приклади:
1) Стандарт ASCII - з перших 32 кодів дійсно використовується лише 2 кода - наступний рядок і пробіл. Наприклад, код 07 огидно дзвякав у ДОСі, а до того на терміналах. Зараз те все обладнання на звалищі історії.
2) Кирилична кодова сторінка могла б вмістити знаки усіх історичних українських правописів(з того, що зараз пригадую - желехівка, кулішівка(чинний), галицький в довоєнній польщі(латиниця), ярижка в рос. імперії, максимовичка) і про білорусів з росіянами не забули б, бо сучасна іміджбордова культура включає слово Няўка з кратким у. Проте, сучасні кириличні кодові сторінки поділяються на ті що з ґ і ті що без ґ. А нещасний оцифровувач давніх українськи рукописів (ізборник) вигадував свій шрифт.
3) В XML для кодування і зберігання бінарних даних можливо використовувати лише BASE64. Хоча кодування BASE85 має кращу щільність, його використання неможливе через співпадіння абетки BASE85 з керуючими символами XML.
4) Багато мережевих програм сприймають лише 7-бітові послідовності, а тому все що виходить за межі кодується BASE64 або в кращому разі BASE85.
5) Використання кодувань з родини ЮНІКОД’ів часто не вирішує питання, а лише жере машинні ресурси, що унеможливлює або затрудняє використання потрібних символів у вбудованих системах.

2

Re: Доколє буде живий ASCII і стек завязаних на ньому технологій?

utf-8 наше все

Подякували: koala, 0xDADA11C72

3

Re: Доколє буде живий ASCII і стек завязаних на ньому технологій?

1. Пробіл не входить в перші 32 символи; обмежене використання мають backspace, linefeed (в парі з CR), ESC.
2. Хіба за рахунок псевдографіки. А вона теж ще використовується.
3. XML за структурою має низьку щільність. Хочете високої - пакуйте.
4. А ви тільки що за розширення кодової сторінки ратували... Нащо, якщо все одно не влазить?
5. Юнікод вирішує практично всі проблеми, пов'язані з кодуванням. Так, щільність низька - але то вже до ущільнювачів питання, не до кодування. Неможливо закодувати 100500 алфавітів так, щоб запис на будь-якому з них мав високу щільність.

Подякували: 0xDADA11C71

4

Re: Доколє буде живий ASCII і стек завязаних на ньому технологій?

koala написав:

1. Пробіл не входить в перші 32 символи; обмежене використання мають backspace, linefeed (в парі з CR), ESC.
2. Хіба за рахунок псевдографіки. А вона теж ще використовується.
3. XML за структурою має низьку щільність. Хочете високої - пакуйте.
4. А ви тільки що за розширення кодової сторінки ратували... Нащо, якщо все одно не влазить?
5. Юнікод вирішує практично всі проблеми, пов'язані з кодуванням. Так, щільність низька - але то вже до ущільнювачів питання, не до кодування. Неможливо закодувати 100500 алфавітів так, щоб запис на будь-якому з них мав високу щільність.

1. Я розумію що CR/LF/CRLF використовуються та ще й табуляція, але (особливо перше) навіщо? Коли в останнє отой CRLF використовувався в принтерах "ромашка" - гібриду принтера із друкарською машинкою, який окремо вертав каретку і окремо переходив до нового рядка? Мабуть давно це було і вже тоді можна було обійтися без цього.

2. В сучасній CP1251 є все що завгодно, окрім того, що використовується. Навіть складно уявити, як можна писати тексти без ¤, ¦, †, ‡, резерву 0x98 і 10 символів лапок. До речі в кодуванні СР866 була відсутня літера і, а обходилися західноєвропейською. Треба ще визначитися, чи потрібно взагалі дублювати аналогічні латинським літери. Якщо раніше ніхто не відчував себе ущємльонним за язик, то може не треба і інші літери дублювати?

3,4. Використання кодових сторінок ще доцільно з міркувань підтримки застарілим або просто нескладним обладнанням. Наприклад, ІБМ-ПЦ архітектура має текстовий режим роботи відеосистеми, який навіть досі використовується - нейтів віндовз програми. Я ратую скоріше за одмежування ASCII від мережевих технологій, бо страшне - де-факто використовується 6 біт замість 8. Занадто вже важка спадщина сумісності.

5. Погоджуюсь, ЮНІКОД і ЮТФ8 мені самому подобається, але європейських абеток всеж не 100500 і тим більше не всі з них одночасно використовуються в одному документі.

5

Re: Доколє буде живий ASCII і стек завязаних на ньому технологій?

1. Можна, але з історичних причин краще залишити як є - бо тоді виникає питання, що саме пхати на місце старих символів, а тут можливі різні погляди. Ви хочете ще 100500 різновидів utf-8 з різницею в перших 32 кодах?
2. Так, в CP1251 є одне, в CP866 інше, а в KOI8-U - третє. І це - природний наслідок однобайтності: різним людям треба запхати різне, а кодування не гумове.
3, 4. Як ви пропонуєте відмежовуватися - розробити новий, 100500-й, UTF, що не базуватиметься на ASCII?
5. А що, в світі існують тільки європейські абетки? Чи ви пропонуєте, щоб були окремі кодування для різних частин світу? Чи навіть створювати своє унікальне і неповторне кодування для кожної комбінації абеток і спеціальних символів в документі?

Давайте скажемо так: здавна існувало 100500 різних алфавітів. Вони мають різний ступінь спорідненості, купу діакритики і інших особливостей. І один з цих алфавітів, базований на англійському, зветься ASCII; і нема жодних підстав проігнорувати його, особливо з урахуванням його значення в розвитку комп'ютерних технологій. І якщо ми хочемо створити мати єдине кодування для всіх (а без цього буде безлад), то це кодування має певним чином відображати символи ASCII (і всіх інших поширених кодувань). Хоча, звісно, не обов'язково на початку чи в тому самому порядку.
А якщо вам потрібне своє власне унікальне кодування, яке буде відповідати вашим конкретним вимогам, а не критерію універсальності, то нащо вам той XML? Робіть щось своє, унікальне і неповторне (і несумісне).

Подякували: 0xDADA11C71

6

Re: Доколє буде живий ASCII і стек завязаних на ньому технологій?

Враховуючи популярні енкодепроблеми (передусім, під час роботи з cp1251, koi8-r та  досівський 6866), я би залишив два кодування - однобайтове ASCII для одномовних (англомовних, якщо точніше) та двобайтове UTF-8 для мультимовних програм.

Проміж тим - питання до знавців: а яка зараз ситуація з використанням кодувань у сучасних осях (як лінуксах, так і віндах 7+)?

7

Re: Доколє буде живий ASCII і стек завязаних на ньому технологій?

UTF-8 не двобайтове - воно 1+-байтове. ASCII в ньому кодується 1 байтом, а далі довжина зростає. Щоправда, більшість неанглійських символів дійсно потрапляють в 2 байти. От UTF-16 - 2+-байтовий, так. А UTF-32 - 4+-байтовий, але поки що, якщо ви не використовуєте непоширені китайські ієрогліфи, це надлишкова можливість.

8

Re: Доколє буде живий ASCII і стек завязаних на ньому технологій?

koala написав:

UTF-8 не двобайтове - воно 1+-байтове

Клас - не знав. Треба погуглити про ці речі. :)

9 Востаннє редагувалося 0xDADA11C7 (26.02.2014 14:39:16)

Re: Доколє буде живий ASCII і стек завязаних на ньому технологій?

2. Так, в CP1251 є одне, в CP866 інше, а в KOI8-U - третє. І це - природний наслідок однобайтності: різним людям треба запхати різне, а кодування не гумове.

Вірно, проте мене турбує не природній наслідок однобайтності, а неприродній наслідок Сталіна, Постишева і Косіора. Білорусів до того дореформували, що вже мови вважай що нема. Того я вважаю, що українська кодова сторінка має включати спадок

3, 4. Як ви пропонуєте відмежовуватися - розробити новий, 100500-й, UTF, що не базуватиметься на ASCII?

Більш за всього мене вразив формат електронного листа - коди більш за 127 не можна, бо 30 років тому модеми передвавли лише 7 біт і коди менше за 33 не можна, бо програма для зворотньої сумісності ігнорує ті символи, тому всі вкладення кодуються БЕЙС64. Так жить нізя! Треба ті технології викинути на звалище історії.

5. А що, в світі існують тільки європейські абетки? Чи ви пропонуєте, щоб були окремі кодування для різних частин світу?

І так і ні, бо Європа самодостатнє утворення, яке створює контент, тому очевидно, що суто двобайтне кодування задовільнить 98% її потреб, а все інше - "духовність" і "самобутність". Для китайців і 3 байти буде замало. Кількість байт я навів лише для прикладу. Сам я поки схиляюся до перемикання "кодових сторінок" і в деяких випадках - власна абетка документа. Тобто існує "головна" системна абетка, а в заголовці документа прописується її підмножина для ущільненого кодування.

10

Re: Доколє буде живий ASCII і стек завязаних на ньому технологій?

0xDADA11C7 написав:

2. Так, в CP1251 є одне, в CP866 інше, а в KOI8-U - третє. І це - природний наслідок однобайтності: різним людям треба запхати різне, а кодування не гумове.

Вірно, проте мене турбує не природній наслідок однобайтності, а неприродній наслідок Сталіна, Постишева і Косіора. Білорусів до того дореформували, що вже мови вважай що нема. Того я вважаю, що українська кодова сторінка має включати спадок

А я вважаю, що не має бути української кодової сторінки взагалі - має бути український розділ в єдиному кодуванні.


0xDADA11C7 написав:

3, 4. Як ви пропонуєте відмежовуватися - розробити новий, 100500-й, UTF, що не базуватиметься на ASCII?

Більш за всього мене вразив формат електронного листа - коди більш за 127 не можна, бо 30 років тому модеми передвавли лише 7 біт і коди менше за 33 не можна, бо програма для зворотньої сумісності ігнорує ті символи, тому всі вкладення кодуються БЕЙС64. Так жить нізя! Треба ті технології викинути на звалище історії.

Для того, аби щось викинути, треба спершу придумати заміну. І вона існує - різні XMPP, Skype і т.д. Там все гаразд з кодуванням. А не подобається e-mail - то не користуйтеся.

0xDADA11C7 написав:

5. А що, в світі існують тільки європейські абетки? Чи ви пропонуєте, щоб були окремі кодування для різних частин світу?

І так і ні, бо Європа самодостатнє утворення, яке створює контент, тому очевидно, що суто двобайтне кодування задовільнить 98% її потреб, а все інше - "духовність" і "самобутність". Для китайців і 3 байти буде замало. Кількість байт я навів лише для прикладу. Сам я поки схиляюся до перемикання "кодових сторінок" і в деяких випадках - власна абетка документа. Тобто існує "головна" системна абетка, а в заголовці документа прописується її підмножина для ущільненого кодування.

Самодостатній тільки Господь Бог. Європа потребувала, потребує і потребуватиме купу різного контенту з інших країн, причому ця взаємозалежність тільки посилюється. Це не добре і не погано, це є. До речі, для історичних європейських алфавітів 1 байту не вистачить, навіть якщо не вважати вірмен і грузин за європейців.
А китайцям для 99,99% випадків вистачає 2 байтів (більшість незвичайних ієрогліфів - терміни китайської традиційної медицини, введені конкретними лікарями для конкретних, давно спростованих, теорій).