Приветствую всех.
Я являюсь большим поклонником строгих языков программирования вроде Паскаля, Оберона и т.д. Теоритически, на данный момент для меня Компонентный Паскаль является идеальным языком в том, что касается простоты и надёжности.
С системой BlackBox ознакомился. Первое, что вызвало резкое недоумение - это всестороннее использования юникод-строк. В то время как определённый софт может быть расчитан на китайские кодировки, большинству практических приложений нужна нормальная работа с обычными байтовыми ascii-строками. В Блэкбоксе же все модули работают только с WideString. Далее. В Делфи есть чудеснейший, простой и надёжный тип данных, всю рутину по управлению за которыми берёт на себя компилятор - String. В Blackbox мы наблюдаем деградацию к СИ-варианту ограниченных строк (ARRAY OF X CHARS), либо ручному управлению их размерами. Наконец, снова эти ненадёжные #0. Паскаль строки интуитивны, не требуют ручной мутной работы по изменению размеров, могут содержать бинарные данные и функционал RTL не имеет в коде проверок в цикле вроде s[i] # 0X, которые я нашёл в модулях Блэкбокса.

А как же присвоение одной строки другой? В Делфи копирования данных не происходит, а лишь изменяется счётчик ссылок.

Я подумал, что стоит, наверное, написать свой класс строк, но есть она проблема. А вернее, их несколько. Во-первых, ARRAY OF CHAR и ARRAY OF SHORTCHAR органически друг друга не любят. Во-вторых, все операции должны будут идти не интуитивно (:=, +), а через вызовы функций. В-третих, из-за первого пункта нужно будет постоянно переводить строку из unicode в win-1251 и обратно.

Интересует другое. Почему нельзя было сделать CHAR вариативным по размеру. Тогда код бы был один, а каждый бы юзал то, что ему необходимо (ребилд модулей - и всё основано на ascii).

С уважением,
Berserker.