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