Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2007-07-04 11:14:18 ЛС | профиль | цитата
Dilma, btw: давай договоримся о терминологии немножко. Например
  • Пользователь 1-го уровня - это автор элемента, который использует наш скрипт, знает целевой язык, и балбесом быть право не имеет по определению.
  • Пользователь 2-го уровня - это программист на HiAsm, который про целевой язык имеет право не знать ничего, но просто обязан уметь работать головой. Потому что программист все-таки.
  • Пользователь 3-го уровня - это пользователь программы, сделанной на HiAsm. К нему требований никаких, естественно. Как и к компьютеру, на котором он запускает программу.

    Dilma писал(а):
    Начинаю постепенно терять суть спора. Из сказанного понял только, что автоматическую конвертацию делать нельзя потому что:
    1) Делали раньше ReadXXX, теперь тоже обязаны делать нечто подобное - e_xxx.
    2) Разработчику кодов элемента нужно непременно указывать тип приведение вручную - иначе он запутается.

    Неправильно понял.
    Не поэтому.

    А потому, что это меняет интерфейс пользователя 2-го уровня (НЕ 1-го). Примерно таким образом:
    Galkov писал(а):
    Есть у элемента IndexToChanel св-во Data
    Во-первых, это какой же тип мы должны назначать при Data=NUL
    И пусть подключена верхняя точка и с нее всегда идет String.
    Оппа, а пользователь забыл, что Data = real(1.0). И что характерно - и не надо до этого ему было помнить.
    Заморочка ведь.

    Опять же - нет для меня догм. Мне думается, что допустимо менять интерфейс пользователя 2-го уровня.
    НО, только если мы получаем какие-то дополнительные качества, недостижимые другим способом, не меняющим интерфейс (пользователя 2-го уровня)
    И кажется мне пока, что эти изменения в интерфейсе - необоснованы просто.
    Некие удобства для пользователя 1-го уровня - не аргумент вовсе.
    Ну, или я не понял наших достижений - так объясни, пожалуйста

    Про обязаны.
    Плюс к вышесказанному, это не более чем личное мнение, что в правилах без исключений путаешься меньше, чем в правилах с исключениями.
    Всегда надо ставить явное приведение типа, Никогда не надо ставить приведение типа - любое из них лучше, чем-то же самое, но с некоторыми исключениями...
    "Никогда", во-первых - не всегда получается, во-вторых (что мне кажется и должно быть решающим) - меняют интерфейс пользователя 2-го уровня.


    Dilma писал(а):
    т.е. под этим понимается расширение количества типов для точек? Было 5 типов стало 19 - засыпали дорогу. Совершенно глупый вопрос напрашивается: а если бы типов стало 6 это тоже засыпание дороги

    Нет, понимается не это
    Засыпание - это изменение интерфейса пользователя второго уровня.
    Раньше работало, а теперь приходится проводить какие-то непонятные действия, чтобы заработало.
    Непонятные, потому что пользователь 2-го уровня имеет право ничего не знать о целевом языке, и какие там возможности приведения типов, и нужны ли они вообще.
    Он (пользователь 2-го уровня) имеет обыкновение говорить: "да мне и HiAsm нравится, потому что языков программирования знать не надо"


    Dilma писал(а):
    Хотелось бы все-таки конкретизировать свои высказывания на примерах. На данный момент абсолютно не ясно, что будет вызывать у разработчика путаницу и когда, а так же почему у пользователя возникнут трудности с интерфейсом.

    Ну вот же, цитата выше - давно уже про это говорю...


    Dilma писал(а):
    В каких случаях это не константа?

    Пусть есть метод элемента, который использует св-во X
    Код этого метода настолько большой, что не вызывает сомнения рациональность функционального вызова при реализации этого метода.
    Если в схеме один такой элемент и этот метод вызывается лишь один раз - инлайнинг оптимален, безусловно, и при реализации метода, вместо св-ва X подставляется ее константное значение.
    Если таких элемента 2, для обоих есть вызов этого метода, и константные значения св-ва X у них РАЗНЫЕ (тоже важно) - это должен быть функциональный вызов метода, для которого X - это переменная.

    Кстати, event-ов это тоже касается. Самым прямым образом. В том числе и тех, чьи имена совпадают с именем св-ва


    Dilma писал(а):
    Такие точки должны определяться только для св-тв, являющихся начальными инициализаторами полей объекта. Во всех иных случаях это уже будет комбо элемент с основным ф-лом + встроенной ячейкой памяти

    Не совсем уловил смысл сказанного.
    Давай конкретно: может ли быть "особачено" св-во, имеющее одноименную верхнюю точку
  • карма: 9

    0