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. |
Показов: 3900 | Добавлено: 3574 дн 19 час 20 мин 44 сек назад | Внесений правок: 5 | Последняя правка: 3252 дн 14 час 25 мин 7 сек назад |
Смотри также: |
браузер абсурд светофор модераторы |