5. В большинстве современных программ имеем целочисленные переменные типа Integer (32 бита), иногда int64. Хотя во многих случаях для экономии памяти нам бы по алгоритму хватило SmallInt или ShortInt. Но редкий извращенец экономит таким образом оперативную память под переменные. Тип Integer даже работать будет быстрее на современном проце. Но в строковых переменных полный изврат и маразм, все очень любят тип UTF8, в котором во впервых 8-битный элемент (что уже замедляет работу), так и символы переменной длины, и нужно делать полный парсинг для любой строковой операции. Сколько ни смотрел в инете, ни где не видел разумного объяснения в необходимости строковых переменных с типом UTF8 (не путать с форматом файла на диске).
Добавлено спустя 2 минуты 57 секунд:xdsl писал(а):После чехарды с разнокодироваными текстами в cp866, cp1251 и koi8-r лично я, русскоязычный, воспринял utf8 как манну небесную.
Полумеры они и в Африке полумеры. А utf8 внес не менее сумбура и хаотичности, тем более файлы на диске в формате UTF8 редко когда содержат в первых символах признак формата UTF8, т.е. как была чехарда с разнокодироваными текстами в cp866, cp1251 и koi8-r, так она и осталась. Открываете файл и не знаете в какой он кодировке, то ли UTF8, то ли cp1251, то ли cp866 и т.п.
Добавлено спустя 3 минуты 1 секунду:xdsl писал(а):А по поводу utf-16... много Вы видели текстов программ, кодированных в utf-16, шоб по два байта на символ? Не желаете заняться переводом своих программ в utf-16? Или в utf32?
Большая часть моих проектов реализована и работает под Дельфями. Там в базе utf-16. Программы уже давно переведены на utf-16, и перевод занял так мало времени, т.к. пришлось переработать только собственную строковую библиотеку. В ФПС и Лазаре - уникод был введен совсем неразумно. В Дельфях много лет назад появился WideString и ни каких проблем не было. Затем был введен UnicodeString и опять ни каких проблем. Все гладко.
Добавлено спустя 1 минуту 47 секунд:xdsl писал(а):Ничего-так заявление. Было на символ от 1 до 4 байт, а теперь без вариантов - 4 байта. Особо шикарными станут массивы и строки.
Я уже выше писал про целочисленные типы SmallInt или ShortInt. Для вещественных переменных есть тип Single (float по сишному). И кто из современников часто использует данные типы? И почему никого не напрягает 32-битная переменная в цикле for?
Добавлено спустя 6 минут 47 секунд:xdsl писал(а):А по поводу utf-16... много Вы видели текстов программ, кодированных в utf-16, шоб по два байта на символ?
Вы о формате файла с кодом программы? Как на диске хранится файл меня мало волнует, я часто файлы храню в формате 7z, и в проге использую соответствующий Stream для чтения из файлов 7z.
Но если все же про текст моих программ, то по самому тексту не так много кирилистических слов, хотя они есть - это комментарии и строковые константы (не всегда интересует мультиязычность пользовательского интерфейса).
Но сами строковые переменные, используемые в программе очень редко работают только с английскими символами и цифрами. То есть в большинстве строковых переменных есть символы длинною больше 8 битов.