18+ Некоторые материалы сайта могут содержать информацию, запрещенную для детей.

UTF-8, кодировка набравшая популярность вопреки здравому смыслу

Некоторые вещи, события, явления кажутся вполне обыденными и даже совсем не приводят в ужас, до тех пор, пока не начнёшь вникать в детали.

UTF-8, это действительно шокирует любого программиста!
Если код символа меньше 128, то символ кодируется "как есть", если больше, то в первом байте, в единичном коде, записывается количество использованных байт включая первый, например:
111 0 0101 - означает, что для записи кода символа использовано 3 байта.
Затем записывается бит с значением 0, чтобы отделить количество байт числа от значащих разрядов числа...

На какую то долю секунды кажется, что прочитал что-то не так. Спустя ещё долю секунды понимаешь, что всё прочитал верно, просто у разработчиков UTF было, не было, что было? ЧТО _ЭТО_ БЫЛО???

Нет, серьёзно, любому программисту известно, что в 1 бите можно записать 2 состояния, в двух битах 4, в трёх 8, в четырёх 16 и так далее (степени двойки). А это что за новшество такое: отдавать целых три бита для записи числа 3, простите, а для записи числа 255, которое испокон веков входило в 1 байт (8 бит) теперь что, потребуется 32 байта? КТО _ЭТО_ ДОПУСТИЛ???

После прочтения той "милой" строки про четыре бита (не забываем про бит-маркер конца записи с значением 0) для записи числа три и соответственно пяти бит для записи числа четыре и так далее, способно наступить глубочайшее разочарование в мире и обитателях этого мира.

UTF-8, а кому это вообще надо?
Кодировать все мыслимые и не мыслимые закорючки всех видов письменности, это конечно хорошо, но простите, какой ценой?
В случае русского языка удваивается объём информации в кодировке UTF-8 по сравнению с кодировкой WIN-1251 или CP866.
Пффф - мелочи, скажут многие и будут не правы.
До тех пор, пока вы храните 2 реферата и половину курсовика, это мелочи, а подумайте о хранении всех книг изданных на русском языке, тем паче периодических изданий (газеты, журналы) - это же гигабайты занятые впустую!
Не просто гигабайты занятые впустую, при поиске информации или других операциях с информацией это миллиарды и миллиарды лишних вычислительных операций, которые неизбежно выльются в мегаватты впустую потраченной электроэнергии...
Не стоит забывать, что UTF-8 оказывается виновата и в снижении пропускной способности линий связи, ведь приходится на одну единицу полезной информации передавать ещё две, а то и три (четыре, пять ...) единиц бесполезной.
И всё это ради чего?
Всё равно UTF-8 не поможет русскому человеку прочитать японский текст, если в его компьютере нет шрифта с начертанием нужных символов, не поможет UTF-8 и если текст написан на языке древних шумеров.
А если у простого русского (англичанина, американца) человека есть шрифт с японскими символами, то это, простите очередные бесполезно занятые мегабайты из которых складываются гигабайты и террабайты, которые ежемесячно выливаются в гигаватты потраченного впустую электричества в рамках стран.

Возможно позднее я допишу ещё немного информации в эту заметку, но не сейчас, сейчас мне нужно отойти от шока вызванного размышлениями об UTF-8, о том, как такой откровенно нерациональный способ кодирования (глупость? гадость? диверсия?) вообще мог пробить себе дорогу в жизнь в России, Англии, США, Германии и других странах, пишущих на языках, в которых символов в алфавите меньше, чем можно уместить в один единственный байт.

---

Решился ещё немного дописать заметку.

UTF-8, разве по другому было нельзя?
Безусловно можно!
Сразу бросается в глаза то, что можно было отвести первые 4 бита, без лишних нулей, напрямую в двоичном коде, для записи числа байт использованных для кодирования и оговорить что первый бит слева всегда 1, то есть первый байт всегда более 128, это бы дало возможность использовать до 7 байт не считая первого (максимум 8 байт). Такую запись было бы гораздо проще "разбирать" на уровне алгоритмов, это по крайней мере создало бы экономию вычислительных мощностей и следовательно электричества.
А можно было бы поступить и ещё экономичнее, введя маркер языка перед блоком информации, скажем 3 байта определяющие, что далее следуют байты, кодирующие символы языка такого-то, до тех пор, пока не будет встречен новый маркер. При такой записи на несколько тысяч или миллионов байт (если это текст книги на русском) пришлось бы лишь 3 байта служебной информации. Даже если это текст смешанный, то по буквам разных языков текст пишут очень и очень редко и число служебных байт было бы гораздо меньше, чем при том методе что используется в UTF-8.

Послесловие.
На основе таких фактов, как:
- повсеместное применение UTF кодировок;
- исключение из устройств возможности замены расходных материалов (встраивание намертво аккумуляторов имеющих ограниченный срок службы в мобильные телефоны и планшеты);
и ряда других,
я прихожу к выводу, что человек, как вид стал не разумен.
Человеческий вид перестал быть разумным, он уже не homo sapiens, он homo что попало, но не sapiens.


---

И ещё немного решил дописать заметку.
Послесловие после послесловия.


А знаете ли вы, что UTF-8 было измыслено в 1992 году и изначально применялось в мало кому известной операционной системе, которая была названа "в честь" американского низкобюджетного фильма ужасов ("Plan 9 from Outer Space" - фильм получил премию "Золотая индюшка" за худший фильм всех времён). Измыслили UTF-8 два человека, оба сейчас работают в Google.

Показов: 3694 | Добавлено: 3364 дн 6 час 15 мин 57 сек назад | Внесений правок: 5 | Последняя правка: 3042 дн 1 час 20 мин 20 сек назад



Изюм жизни

Смотри также:
браузер   абсурд   светофор   модераторы