- •Оглавление
- •Глава 1. На подступах к новому языку 28
- •Глава 2. Можно ли создать язык, улучшающий понимание и взаимопонимание? 35
- •Глава 3. Соображения, повлиявшие на создание языка дракон 39
- •Глава 4. Понимание и взаимопонимание — ключевые проблемы информатики 58
- •Глава 5. Проблема улучшения работы ума: новый когнитивный подход 65
- •Глава 6. Изюминки языка дракон 80
- •Глава 7. Эргономичные алгоритмы 104
- •Глава 8. Визуализация циклов 126
- •Глава 9. Визуализация логических формул 143
- •Глава 10. Что такое эргономичный текст? 154
- •Глава 11. Визуальные операторы реального времени 165
- •Глава 12. Дружелюбное программирование 177
- •Глава 13. Человеческая деятельность и формализация знаний: живописные примеры 194
- •Глава 14. Визуальный дракон-редактор 226
- •Глава 15. Описание визуального синтаксиса языка дракон 236
- •Глава 16. Визуальное структурное программирование 245
- •Глава 17. Исчисление икон и попытка предсказать будущее 267
- •Глава 18. Место языка дракон в системе человеческой культуры 282
- •Глава 19. Возможна ли эргономизация математики? 302
- •Глава 20. Можно ли стать интеллектуальным суперменом? 326
- •Маленькая увертюра
- •Легкомысленный словарик
- •Третий глаз для бизнесменов и руководителей
- •Интеллектуальный терроризм: фантазия или реальность?
- •Почему умные люди страдают и гибнут?
- •Разве такая проблема существует?
- •Информационный стресс — зловещий спутник информационного общества
- •Камикадзе умственного труда
- •Что такое интеллектуальный терроризм?
- •Гуманитарная постановка задачи
- •Компьютерная мифология: облегчают ли компьютеры умственный труд?
- •Что такое интенсификация интеллекта?
- •Критерий декарта и эргономизация науки
- •О чем эта книга?
- •Секреты мудрого дракона: объяснение на пальцах
- •Притча о том, как Господь Бог языки создавал
- •Смена терминов или изменение концепции?
- •Самая сложная вещь на свете
- •Зачем дракону две головы?
- •Справка о состоянии дел
- •На подступах к новому языку
- •Зачем нужен язык дракон?
- •В чем секрет дракона? — в когнитивном подходе
- •Почему люди не интересуются собственным мозгом?
- •Станет ли дракон чемпионом мира по критерию “понимаемость алгоритмов”?
- •На кого рассчитан язык дракон?
- •Перечень задач, решаемых с помощью языка дракон
- •Можно ли создать язык, улучшающий понимание и взаимопонимание?
- •Почему специалисты не понимают друг друга?
- •Язык дракон как “эсперанто” делового мира
- •Что такое интеллектуальное взаимопонимание?
- •В чем особенность дракона?
- •Соображения, повлиявшие на создание языка дракон
- •Что важнее: компьютеры или человеческий мозг?
- •Что такое производительность умственного труда?
- •Зависит ли производительность персонала от производительности компьютеров?
- •Можно ли увеличить скорость работы человеческого мозга?
- •Проблема формализации профессиональных знаний
- •Можно ли обойтись без когнитологов?
- •Чем отличается алгоритм от технологического процесса?
- •Что такое технологический язык?
- •Технологические и декларативные знания
- •Почему нельзя жить по-старому?
- •Социальные технологии и электронные методологии
- •Методология быстрой разработки систем rad
- •Схемы действий и язык дракон
- •Необходимость культурных изменений
- •Техноязык как элемент культуры
- •Понимание и взаимопонимание — ключевые проблемы информатики
- •Отсутствие понимания ведет к миллионным убыткам
- •Издевательство над здравым смыслом под названием “абсолютно правильная программа”
- •Спецификации программ — вот главный “гадючник”!
- •Спецификации программ и методология rad
- •Концепция когнитивного программирования
- •Проблема улучшения работы ума: новый когнитивный подход
- •Текст как зрительная сцена
- •Симультанное и сукцессивное восприятие
- •Как повысить продуктивность человеческого мозга?
- •Когнитивный недостаток текстового представления знаний
- •Каким должен быть формат диосцены?
- •Когнитивные рекомендации
- •Зачем нужны психологические эксперименты?
- •Ошибка джеймса мартина
- •Возможна ли стратегическая реформа мировой практики программирования
- •Изюминки языка дракон
- •Критика блок-схем
- •Преимущества дракон-схем
- •Иконы и макроиконы
- •Зачем нужна ветка?
- •Как работает ветка?
- •Как следует располагать ветки в поле чертежа?
- •Что такое шапка?
- •Что лучше: примитив или силуэт?
- •Как описать силуэт с помощью текстового языка?
- •Есть ли в алгоритме “царская дорога”?
- •Главный маршрут силуэта
- •Пересечения линий? — боже упаси!
- •Визуальный и текстовый синтаксис дракона
- •Семейство дракон-языков
- •Эргономичные алгоритмы
- •Визуальная проверка алгоритмов
- •Что такое эргономичный алгоритм?
- •Чем отличается икона “вопрос” от развилки?
- •Маршруты и формулы маршрутов
- •Что такое рокировка?
- •Использование рокировки для улучшения эргономичности
- •Вертикальное и горизонтальное объединение
- •Эргономичность литеральных алгоритмов
- •Что делать, если эргономические требования противоречат друг другу?
- •Икона-вставка как эргономический прием
- •Что такое подстановка?
- •Улучшение эргономичности алгоритмов с помощью цепочки эквивалентных преобразований
- •В Рис. 33. Эквивалентные преобразования алгоритмов ыводы
- •Визуализация циклов
- •Обычный цикл
- •Переключатель и переключающий цикл
- •Цикл для
- •Веточный цикл
- •Главный маршрут силуэта
- •Визуализация логических формул
- •Визуализация функции и
- •Визуализация функции или
- •Визуализация функции не
- •Визуализация сложных логических функций
- •Что такое эргономичный текст?
- •Можно ли сделать логические выражения эргономичными?
- •Пример для исследования эргономичности логических выражений
- •Логическое выражение с абстрактными идентификаторами
- •Логическое выражение с короткими смысловыми идентификаторами
- •Логическое выражение с длинными смысловыми идентификаторами
- •Важный момент, о котором часто забывают
- •Как присвоить значение логической переменной?
- •Правила записи рамочных логических выражений
- •Как построить эргономичный логический текст?
- •Визуальные операторы реального времени
- •Список операторов реального времени
- •Операторы ввода-вывода
- •Оператор “пауза”
- •Операторы “пуск таймера” и “синхронизатор”
- •Цикл ждать
- •Оператор “период”
- •Оператор “параллельный процесс”
- •Особенности операторов реального времени
- •Дружелюбное Программирование
- •Гибридный язык программирования дракон-си
- •Гибридный язык программирования дракон-модула
- •Пример эргономической оптимизации программы
- •Диалоговые программы
- •Оператор “Сообщение”
- •Оператор “Запрос”
- •Описание данных
- •Идентификаторы
- •Примеры правильных идентификаторов
- •Примеры неправильных идентификаторов
- •Пример сокращения длины сложного понятия
- •Правила записи арифметических выражений в операторах присваивания
- •Обработка массивов
- •Абстрактные дракон-схемы
- •Философия языка дракон
- •Классификация знаний
- •Человеческая деятельность и формализация знаний: живописные примеры
- •Что такое профессиональные знания?
- •Учебные экспертные системы
- •Учебная экспертная система (программа на языке бейсик)
- •Визуализация экспертных систем
- •Визуализация описания технологических процессов
- •Что такое методология?
- •Визуализация методологий
- •Система “человек—машина”
- •Визуализация биологических алгоритмов
- •Визуализация медицинских алгоритмов
- •Другие примеры визуализации
- •Описание структуры деятельности
- •Нужен ли стандарт для описания деятельности?
- •Визуальный дракон-редактор
- •Зачем нужен дракон-редактор?
- •Заготовка-примитив и заготовка-силуэт
- •Что такое атом?
- •Пример построения дракон-схемы “примитив”
- •Операция “пересадка лианы”
- •Операция “заземление лианы”
- •Пример построения дракон-программы “силуэт”
- •Формирование надписей “да” и “нет”
- •Описание визуального синтаксиса языка дракон
- •Общие понятия
- •Шампур-блок
- •Операция “ввод атома”
- •Дополнительные сведения об атомах
- •Критические и нейтральные точки
- •Правила использования операции “ввод атома” при построении дракон-схемы
- •Операции с лианой
- •Пересадка лианы
- •Заземление лианы
- •Прочие операции
- •Основные результаты
- •Визуальное структурное программирование
- •Постановка проблемы
- •Историческая справка
- •Отживающий метод?
- •Прав ли игорь вельбицкий?
- •Четыре принципа структуризации блок-схем, предложенные э. Дейкстрой
- •Почему научное сообщество не приняло видеоструктурную концепцию э. Дейкстры?
- •Парадокс структурного программирования
- •Плохие блок-схемы или плохие стандарты?
- •Блок-схемы и теоретическое программирование
- •Новые цели стандартизации блок-схем
- •Чем отличаются блок-схемы от дракон-схем?
- •В чем сходство визуального и текстового структурного программирования?
- •В чем различие визуального и текстового структурного программирования? Структурные, лианные и адресные блоки
- •Операции с лианой и оператор goto
- •Является ли текстовое структурное программирование формальным методом?
- •Почему самолет не машет крыльями?
- •Исчисление икон и попытка предсказать будущее
- •Визуальное логическое исчисление
- •Общеизвестные сведения о математической логике
- •Об одном распространенном заблуждении
- •Принцип абсолютизации текста
- •Визуализация понятий математической логики
- •Исчисление икон
- •Еще раз о шампур-методе
- •Шампур-схема как абстрактная модель программы
- •Преобразование шампур-схемы в шампур-программу
- •Шампур-метод и доказательство правильности программ
- •Возможна ли теория визуального программирования?
- •Гипотеза о будущем императивных языков программирования
- •Визуализация логики и интенсификация интеллектуальной деятельности
- •Место языка дракон в системе человеческой культуры
- •Между сциллой и харибдой
- •Принцип структуризации деятельности
- •Генеральная концептуальная схема
- •Проблема деятельности в эргономике
- •Искусственный интеллект: алгоритмизация — это ночной кошмар!
- •Специалисты по ии: долой алгоритмизацию!
- •Инженерные психологи: алгоритмизация деятельности — наше спасение!
- •Работники образования: алгоритмизация — это хорошо!
- •Кто же прав: декларативисты или императивисты?
- •Эргономический анализ проектно-конструкторской деятельности
- •Подводные камни проектно-конструкторской деятельности
- •Почему взорвался чернобыльский реактор? Традиционный подход к анализу причин чернобыльской аварии
- •Возможна ли гарантоспособная деятельность?
- •Принцип проектирования гарантоспособной деятельности
- •Гарантоспособный совокупный работник
- •Главное зло — плохо спроектированная деятельность творческого персонала
- •Сон разума рождает чудовищ
- •Интенсификация интеллекта и языки программирования
- •Улучшение работы ума — проблема номер один
- •Возможна ли эргономизация математики?
- •Почему джон фон нейман провалился на экзамене?
- •Существует ли пропасть между математикой и эргономикой?
- •Алгебра диофанта
- •Эргономический анализ алгебры диофанта
- •Эргономизация алгебры после диофанта
- •Осознание полезности эргономического поворота в математике
- •Эргономическая победа лейбница
- •Методологическая ошибка историков математики
- •Аналогия между математической диосценой и панелью отображения информации
- •Математическая и эргономическая эффективность
- •Как повысить производительность математического труда?
- •Два метода визуализации математики
- •Проект “когнитивный стиль” (cognistyle)
- •Пример математической визуализации с помощью метода cognistyle
- •Можно ли стать интеллектуальным суперменом?
- •На пороге создания теории улучшения работы ума
- •Человеческий мозг нужно грамотно проектировать
- •Разгадка тайны человеческого интеллекта
- •Развитие и интенсификация интеллекта
- •Знаковая и предметная информация
- •Знаковое и предметное обеспечение информатики
- •Знаковая и предметная программа
- •Переломная веха в истории информатики
- •Одноглазые миссионеры, или заброшенное дитя информатики
- •Когнитивная письменность — новый способ представления знаний
- •Что такое проектоника?
- •Проектоника и искусственный интеллект
- •Особенности проектоники
- •Мироинформация и мироинтеллект
- •Стратегическая интеллектуальная инициатива
- •Дорога в будущее
- •Интеллектуальные трудности как глобальная проблема
- •Вызов интеллектуального терроризма
- •Бессилие интеллекта
- •ЦЕль — значительное улучшение интеллекта
- •Список литературы интеллектуальный терроризм: фантазия или реальность?
- •Глава 1
- •Глава 3
- •Глава 5
- •Глава 6
- •Глава 13
- •Глава 16
- •Глава 17
- •Глава 18
- •Глава 19
- •Глава 20
- •Отзывы о книге в. Паронджанова “Как улучшить работу ума”
Ошибка джеймса мартина
Джеймс Мартин — специалист мирового класса, признанный авторитет в области компьютерных наук, автор многих книг, в том числе фундаментального руководства по методологии RAD. Он — один из тех, к кому прислушиваются, чье мнение во многом определяет стиль работы и практические действия многих организаций и специалистов во всем мире.
Вот почему имеет смысл обратить внимание читателя на одно спорное, чтобы не сказать ошибочное положение, которое Мартин систематически отстаивает в своих трудах на протяжении многих лет. Речь идет о рекомендации Мартина использовать для графического представления программ чертежи “нормального размера”, которые можно напечатать на обычном принтере. Некорректность связанных с этим аргументов иллюстрирует табл. 1, в левой графе которой приводятся рекомендации Мартина, а в правой — опровергающие их соображения.
“ЭТО ЧУДАКАМ-ИНЖЕНЕРАМ НУЖНЫ БОЛЬШИЕ ЧЕРТЕЖИ, А МЫ, ХИТРЕЦЫ-ПРОГРАММИСТЫ, ОБОЙДЕМСЯ МАЛЕНЬКИМИ”
По мнению автора, позиция Мартина отражает общее заблуждение, глубоко укоренившееся в умах многих специалистов по информатике и препятствующее прогрессу в деле повышения продуктивности мозга программистов.
Проследим ход рассуждений Мартина. Они весьма просты. Персональные компьютеры и дешевые принтеры получили массовое распространение и доступны всем. В отличие от них плоттеры встречаются
Таблица 1
Утверждение Мартина |
Возражение |
Чертежи программ должны быть компактными [8] |
Компактность — не самоцель. К ней следует стремиться в тех случаях, когда она увеличивает производительность. Если же компактность чертежа затрудняет понимание вопроса и снижает продуктивность, разумно от нее отказаться |
Чертежи программ следует выполнять на бумаге формата А4 [8] |
Это верно, если проблема простая и иллюстрирующий ее рисунок целиком размещается на листе формата А4. Если же проблема сложная и требует, например, 400 форматок А4, выгодней перейти к большим форматам. В этом случае понадобится всего 50 листов формата А1 или 25 листов формата А0. Большие чертежи, нарисованные в соответствии с когнитивно-эргономическими правилами с помощью технологии I-CASE, снижают когнитивную нагрузку на мозг читателя и повышают умственную производительность в процессе понимания и анализа сложных программных проектов |
Большие чертежи неудобны тем, что их трудно посылать другим людям или брать домой [9] |
Это неверно. Во всем мире инженеры пользуются большими чертежами: их постоянно пересылают из одной организации в другую, берут для работы домой и т. д. Автор сам это делал много раз и может поручиться, что при этом не возникает никаких проблем. Чертежи форматов А1 и А0 известным способом несколько раз перегибаются и укладываются в папку для бумаг формата А4 |
Некоторые аналитики, программисты и администраторы данных любят рисовать цветные настенные схемы шириной шесть футов (2 м 10 см). Это можно сделать с помощью плоттера CALCOMP, однако такие плоттеры дороги и недоступны большинству аналитиков и программистов. Нужно отказаться от подобных громадных чертежей и ограничиться форматом, который можно напечатать с помощью обычного персонального компьютера и принтера [9] |
Рассуждение некорректно, ибо Мартин рассматривает две крайние позиции: либо роскошные двухметровые цветные чертежи, сделанные на сверхдорогом плоттере, либо маленькие форматки обычного персонального компьютера. В действительности существует промежуточный вариант: малогабаритный щелевой плоттер с рапидографом, позволяющий рисовать черно-белые чертежи формата А1. Такие плоттеры относительно недороги и представляют собой разумный компромисс. Существуют и другие приемлемые варианты плоттеров |
Окончание табл. 1
Утверждение Мартина |
Возражение |
Иногда чертеж требует больших размеров бумаги. В этом случае следует увеличивать не горизонтальный, а вертикальный размер чертежа, чтобы напечатать его на фальцованной (сложенной на сгибах) бумаге на обычном принтере [8] |
Этот совет, как и предыдущие, не учитывает когнитивные вопросы и нарушает известную рекомендацию инженерной психологии: при создании средств отображения информации “следует учитывать особенности биомеханики глаза, в частности, то, что горизонтальные движения глаз совершаются наиболее легко и быстро. Менее быстры вертикальные движения” [5]1. |
1 В данном случае можно достичь компромисса, если с помощью программных средств повернуть компьютерный образ чертежа на 90° и вывести его на обычный принтер в графическом режиме. Это позволит превратить неудобную вертикальную “кишку” в приятный для глаза чертеж, у которого длинный размер наращивается по горизонтали. Однако такой прием неприменим к схемам действий, которые специально (и крайне неудачно) сконструированы именно в форме вертикальной кишки, что хорошо согласуется с характеристиками принтера, но плохо согласуется с характеристиками человека. Переделать их в горизонтальную форму, более удобную с точки зрения биомеханики глаза, принципиально невозможно. Таким образом, схемы действий построены исходя из технократических, а не когнитивных соображений. |
сравнительно редко. Поэтому при выборе формата визуальных чертежей следует ориентироваться на имеющуюся технику. Исходя из этого, Мартин, жертвуя наглядностью ради уменьшения формата, предлагает тщательно продуманную систему мер, позволяющих сократить размеры чертежей [9], чтобы использовать “дешевые принтеры” и сэкономить на плоттерах. Хотя в каких-то частных ситуациях такой подход может оказаться разумным, однако в масштабе национальной или мировой экономики идея “дешевых принтеров” не улучшает, а наоборот, ухудшает экономические показатели информационной отрасли, так как, выигрывая по стоимости плоттеров, мы несоизмеримо проигрываем на производительности труда. Это значит, что в стратегическом плане Мартин пожертвовал не пешку за ферзя, а наоборот, ферзя за пешку.
Слабость позиции Мартина состоит в том, что он упускает из виду исключительно важный факт: между размерами программных чертежей и производительностью умственного труда существует связь. Эта связь хорошо понятна: при увеличении формата графической диосцены включаются в работу мощные резервы симультанного восприятия и увеличивается скорость работы мозга за счет ликвидации эффекта “частичной слепоты”.
Против Мартина работает еще один аргумент, связанный с уроками истории. Всемирная практика развития машиностроения и электротехники привела инженеров к двум выводам:
1) замена текстового описания механических и электрических устройств чертежами повышает производительность;
2) форматы чертежей в зависимости от обстоятельств целесообразно увеличить до нужных размеров.
Сегодня программисты, можно сказать, уже согласились с первым выводом и решили, что им, как и инженерам, тоже нужны чертежи. Однако второй вывод по-прежнему отвергается, поскольку миф об исключительности программистов оказывается необыкновенно живучим (см. заголовок этого параграфа). Ясно, однако, что зрительный анализатор и мозг программиста по своей конструкции не отличаются от мозга инженера. Механизмы зрительного восприятия чертежей определяются нейробиологическими и психологическими закономерностями, которые едины для программистов и инженеров. Это значит, что сказав А, нужно сказать и Б. Логично предположить, что рано или поздно в программировании будет узаконен тот же набор форматов чертежей, что и в инженерном деле. Чем скорее это будет сделано, тем лучше.
Чтобы реализовать идею на практике, нужно выполнить три условия. Во-первых, оборудование рабочих мест системных аналитиков и программистов должно содержать не только компьютер и принтер, но и плоттер (коллективного или — по мере удешевления — индивидуального пользования). Речь идет не о единичных случаях, о массовой доукомплектации рабочих мест, чтобы плоттеры стали доступны всем работникам, для которых их использование оправдано с точки зрения производительности, экономических и когнитивных факторов (за вычетом неизбежного периода больших начальных затрат). Во-вторых, инструментальные средства создания программ должны быть снабжены дополнительными интерфейсами с выходом на драйверы плоттеров (которые сегодня отсутствуют). В-третьих, нужна хорошо продуманная система переобучения.
Практическое внедрение идеи целесообразно начать с больших организаций, где разрабатываются и аппаратура, и программы. В таких организациях уже имеются плоттеры, однако сегодня их активно используют инженеры, но не программисты. Последние в большинстве случав даже не догадываются, что могут получить значительный выигрыш от энергичной работы с плоттерами. В связи с этим необходимо создать атмосферу “общественного беспокойства”, стимулирующую осознание полезности больших форматов и плоттеров для роста производительности.
Реализация намеченного плана неизбежно столкнется с немалыми трудностями. Однако они преодолимы и будут уменьшаться по мере приобретения навыков, удешевления техники и увеличения размеров экранов компьютеров. Ясно одно: господствующую сегодня точку зрения, согласно которой плоттеры нужны инженерам и не нужны программистам, следует признать порочной и неприемлемой, поскольку эффективность программирования играет существенную роль в национальной экономике. Даже незначительное в процентном отношении повышение производительности труда в этой сфере деятельности может привести к серьезной экономии.