DRAKON.SU

Текущее время: Воскресенье, 22 Апрель, 2018 17:06

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: Вторник, 05 Сентябрь, 2017 10:04 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3622
Откуда: Москва
Владимир Паронджанов писал(а):
Алексей, если вы хотите серьезно дискутировать, надо приводить убедительные аргументы и примеры, примеры, примеры.

Alexey_Donskoy писал(а):
Убедительных аргументов уже было навалом здесь: viewtopic.php?f=62&t=1281
Эти аргументы убедительны для вас, но не для меня.

См. также дискуссию viewtopic.php?p=100197#p100197


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 05 Сентябрь, 2017 10:33 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 949
Откуда: Россия, Чебоксары
Владимир Паронджанов писал(а):
Эти аргументы убедительны для вас, но не для меня.
Что для вас будет убедительным?
Развёрнутая статья с тезисами и примерами? Напишу как-нибудь.
Серия монографий? Увольте. Если предложенный стандарт будет действительно хорош, его общественность подхватит и без дополнительного пиара.

Но главное в том, что убедительных исследований эргономики до сих пор не проводилось!

Всё ранее прозвучавшее есть не более чем частные мнения, иногда подкреплённые опытом, иногда просто выведенные из рассуждений.
Но давайте всё-таки исследования-то проведём. Полтора десятка лет прошло, пора бы уже.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 05 Сентябрь, 2017 20:15 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3622
Откуда: Москва
Цитата:
«Если это возможно, избегайте отрицаний в булевых выражениях.
Представляется, что их понимание представляет трудность для многих программистов».
              Эдвард Йодан


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 06 Сентябрь, 2017 08:53 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 949
Откуда: Россия, Чебоксары
Владимир Паронджанов писал(а):
Эдвард Йодан
Апелляция к авторитетам? :wink:

Цитата:
Представляется, что их понимание представляет трудность для многих программистов
1) Частное мнение;
2) "Многие программисты" вряд ли согласятся :D

Цитата:
Если это возможно, избегайте отрицаний в булевых выражениях.
А вот психологи этим очень любят злоупотреблять. Что ни тест, так десяток однотипных вопросов, хитровывернутых через отрицание отрицания - якобы чтобы поймать опрашиваемого на лжи. Ну так и ловят на внимательности.

А в программировании практика показывает, что всегда можно сформулировать вопрос без топорного отрицания.

И вполне естественной оказывается предлагаемая мной конструкция "да всегда вправо".

Обоснование:
- Предельно эргономичный способ. Требуется всего лишь одно действие - осознание вопроса. Никаких поисков направлений дальнейшего движения на схеме, вариантов ответов и их взаимного соответствия.
- Соответствует базовому принципу алгоритмического мышления, ничего лишнего: любой вопрос (проверка) может отправить на другой маршрут. Проверка не прошла - идём по прежнему маршруту, прошла - куда пошлют.
- В большом количестве случаев (в технологическом программировании, полагаю, более 50%) вопросы-проверки делаются на нестандартные ситуации (ошибки, окончание процесса и т.п.), что в известной мере соответствует вашему принципу "чем правее, тем хуже". То есть ничего не случилось - ничего не изменяется. Случилось - уходим вправо и разбираемся.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 06 Сентябрь, 2017 11:23 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 230
Откуда: Россия, Стерлитамак
Alexey_Donskoy писал(а):
А в программировании практика показывает, что всегда можно сформулировать вопрос без топорного отрицания.

Можно, я обычно так и делаю, т.к. отрицание отрицания для меня сложнее понять, чем положительный вопрос.

А если оставлять действие только для "Да", то нарушится принцип "быстрого" вычисления логических выражений. Не знаю, насколько это важно и критично, но к дублированию кода, точно приведет, т.к. зачастую Иначе предполагает, что в Если вычисляется какое-то действие. В предлагаемом способе, как понимаю будет так:

Есть:

Код:
Если УсловиеВыполнено Тогда
Делаем1;
Иначе
Делаем2;
КОнецЕсли


Станет:

Код:
Если УсловиеВыполнено Тогда
Делаем1;
КонецЕсли;

Если Не УсловиеВыполнено Тогда
Делаем2;
КОнецЕсли;


а с учетом того, что УсловиеВыполнено может быть функцией, то придется еще и переменную заводить, либо повторно ее вычислять. Видим лишние расходы либо по памяти, либо по процессору.

С точки зрения эргономики, не уверен, что будет большой выигрыш, хотя опять же, эксперименты никто не проводил, подтвердить нечем.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 06 Сентябрь, 2017 11:44 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 949
Откуда: Россия, Чебоксары
adva писал(а):
Если УсловиеВыполнено Тогда
Делаем1;
КонецЕсли;

Если Не УсловиеВыполнено Тогда
Делаем2;
КОнецЕсли;
С чего бы?!

- В стандартной блок-схеме выходы из ромба были влево/вправо и были равноправными.
- В ДРАКОНе ромб обрезан сверху/снизу, а выход влево сместился вниз, но оба всё равно остались равноправными, допускающими "рокировку". А всё прочее предлагается реализовывать надъязыковыми правилами (хуже/лучше, положительный/отрицательный вопрос).
- Я предлагаю сделать выходы неравноправными (зафиксировать ДА вправо и отразить это графически). Всё остальное лежит за пределами развилки и остаётся как и было.

Эргономичность конструкции заключается в том, что при невыполнении проверки (НЕТ) маршрут сохраняет направление вниз (и это не означает, что оттуда убираются действия!), а при выполнении (ДА) "стрелка переводится", выбирая другой маршрут.
Как, собственно, и устроены все процессоры на низком уровне. :)
Как, собственно, и удобно мыслить разработчику, не отвлекаясь на анализ лесенок, где ДА то с одной стороны, то с другой.
К чему, собственно, пришёл (наконец!) и Паронжданов, рассмотрев "положительные/отрицательные" вопросы, но испугался сделать следующий правильный шаг: изменить формальные правила графического языка.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Сентябрь, 2017 12:37 

Зарегистрирован: Вторник, 27 Май, 2008 13:24
Сообщения: 153
Это возможно только если частично отказаться от принципа "устремленного графа", абсолютно прямой "шампур" не получается. То есть в классическом ДРАКОНе (с проткнутыми "иконами") без логической инверсии "вопроса" это не получится. Получается некое "квази".
Алексей, ваше предложение "Да по умолчанию вправо" попытаюсь применить в следующей версии "Ленивого Дракона". Там это возможно без нарушения драконопорождающего принципа "устремленный граф".
Вложение:
NoYN.png
NoYN.png [ 19.77 КБ | Просмотров: 2333 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Сентябрь, 2017 14:45 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 949
Откуда: Россия, Чебоксары
dvuugl писал(а):
без логической инверсии "вопроса" это не получится.
Не получится.
Но причём здесь устремлённый граф?
Зачем вопрос с выходом влево?
Только вниз (нет) и вправо (да).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Сентябрь, 2017 15:14 

Зарегистрирован: Вторник, 27 Май, 2008 13:24
Сообщения: 153
Граф растущий в строго заданном направлении. За математическими подробностями к Ермакову. В ДРАКОНЕ строго вниз и вправо. Если не напрягать человека инверсией вопроса ( "не напряги ближнего своего" - заповедь ДРАКОНА ), то развитие вниз сохраняется, но не по прямой (шампуру), а по некой извилистой кривой. "Квази-устремленность".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Сентябрь, 2017 15:30 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 949
Откуда: Россия, Чебоксары
dvuugl писал(а):
В ДРАКОНЕ строго вниз и вправо.
Так и у меня тоже.
И у TAU в одном из проектов тоже (правда, почему-то да=вниз, что ухудшает конгитивную эргономичность).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Сентябрь, 2017 15:57 

Зарегистрирован: Вторник, 27 Май, 2008 13:24
Сообщения: 153
И вернулись к тому с чего начали.
В.Д. полагает что логика напрягает. Минимизировать её. Я с этим согласен.
У Вас мнение противоположное. Доказать или опровергнуть то или другое возможно только экспериментально. Вы справедливо отметили что опытов никто не проводил. Бездоказательная с обеих сторон дискуссия не даст результата.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Сентябрь, 2017 16:21 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 949
Откуда: Россия, Чебоксары
dvuugl писал(а):
У Вас мнение противоположное.
С чего вы взяли, что противоположное?
С необходимости инверсии? Так я же пояснял, что "в быту" (на который нацелен ДРАКОН) не проблема сменить формулировку так, чтобы по существу получилась инверсия, но чтобы это не было заметно для читателя).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 13 Сентябрь, 2017 12:27 

Зарегистрирован: Вторник, 27 Май, 2008 13:24
Сообщения: 153
Вижу только одно решение: применить "икону" АДРЕС в качестве "иконы" ВОПРОС.
Вложение:
NoYN3.png
NoYN3.png [ 21.31 КБ | Просмотров: 2287 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 13 Сентябрь, 2017 12:58 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 949
Откуда: Россия, Чебоксары
dvuugl писал(а):
Вижу только одно решение: применить "икону" АДРЕС в качестве "иконы" ВОПРОС.
Этот вариант обсуждался 10 лет назад. Уж не помню, кто предлагал - тема моя, может, и я :)
У автора было, по существу, одно возражение: книг много выпущено, переделывать не стоит.
То, что "затрудняется порог вхождения" (как же, одним графическим элементом в языке больше станет!) нельзя принимать во внимание, поскольку:
- это одноразовые (причём минимальнейшие) затраты, в то время как экономятся постоянные затраты на распознавание текста "да/нет";
- предпочитать привычное решение эргономичному - совсем никуда не годится.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 13 Сентябрь, 2017 13:55 

Зарегистрирован: Вторник, 27 Май, 2008 13:24
Сообщения: 153
Да, что-то было... Ну значит пора тему закрывать, поностальгировали и хватит. Систему не пробьёшь. Интересно, В.Д. пробивает систему ГОСТ, Вы пробиваете систему В.Д. :) Засим возвращаюсь в гараж мастерить свой драндулет. Но последующее поколения драконоводов всё равно на это тему выходить будут.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2018, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB