7.1. Более человекоориентированные среды программирования
7.1. Более человекоориентированные среды программирования
7.1.1. Системное окружение и среда разработки
Исследования в области когнетики для сред программирования нашли еще меньшее применение, чем для пользовательских интерфейсов. Нечего и говорить, что современные системы становятся все более сложными и что инструменты программирования должны соответствовать этой сложности. Простые вещи стали излишне сложными, и мы не смогли пока создать достаточно хорошие инструментальные программные средства для облегчения этих сложностей работы в современных компьютерных средах.
Я начну с простого примера. В давно исчезнувшем компьютере Apple II для того, чтобы написать программу сложения двух чисел, требуется включить компьютер (время загрузки не заметно!) и нажать «Control»+«b», после чего вы переходите в BASIC. Если вы теперь наберете PRINT 3+4 и нажмете «Return», то сразу же и без трудностей получите 7. С момента запуска BASIC до получения результата прошло 5 с. Как хорошо известно, в компьютерной промышленности простота использования достигается с помощью довольно больших ресурсов памяти и скорости. Поэтому мы понимаем, что компьютер Apple II способен выполнять вычисления с такой быстротой и простотой именно потому, что он обладает мощнейшими ресурсами: имея 2-мегагерцовый 8-битный процессор, 48 Кбайт памяти (и это все, что можно вместить!) и 400 килобайтовый диск, машина работает как зверь. В 1999 году на выполнение этой операции у компьютера с 400-мегагерцовым 32-битным процессором, 192 мегабайтовый RAM-памяти и несколькими гигабайтами памяти на жестком диске уходит более 3 минут. Судя по разрядности системной шины и тактовой частоте процессора, новая машина работает приблизительно в 1500 раз быстрее, чем старая. Если же оценивать по времени, которое требуется для написания программы, новая машина оказывается медленнее приблизительно в 36 раз.
Я попросил двух профессиональных программистов написать программу на Visual Basic (VB), которая бы выполняла сложение 3+4 и выдавала результат на экран. Первый программист начал жаловаться, что у машины всего только 8 Мбайт памяти и что у нее устаревший 75-мегагерцовый 32-битовый процессор. Не считая времени загрузки (2 мин.), среда программирования была открыта через 54 с. После этого требовалось открыть модуль вставки (Insert Module), потом открыть окно опций (Option Box) и установить соответствующие настройки, создать кнопку и рабочую форму, после чего программист должен был набрать среднюю строку из следующего текста:
Private sub Command1_Click ()
MsgBox 3 + 4
End Sub
Для того чтобы воспользоваться этой программой, ее нужно было сначала запустить, а потом нажать кнопку для ее включения. В течение этого процесса, который занял 3 мин. 40 с (опять же, не считая времени начальной загрузки), было сделано всего только две или три ошибки.
Другой программист, работавший на 64-битовом процессоре с тактовой частотой 75 Мгерц и 40 Мбайт памяти, запустил VB и выполнил ту же задачу за 28 с (что приблизительно в 5 раз медленнее, чем на компьютере Apple II). Программа, созданная несколько иным способом, была следующей:
Private sub Form-Load ()
MsgBox Str (3 + 4)
End Sub
Я спросил у этого программиста, почему он не написал вторую строку так же, как ее написал первый программист:
MsgBox 3 + 4
Он ответил, что не был уверен, что это будет работать. Другими словами, он не знал точно, как VB будет работать в этом случае. Здесь нет ничего странного: как и другие современные компьютерные языки, VB имеет довольно сложное и непоследовательное построение. Оправданием его громоздкости может быть то, что он позволяет сделать большие проекты проще, однако это не может быть оправданием для того, чтобы делать простые вещи сложными. Большие вещи состоят из множества малых, поэтому чем проще сделаны составные задачи, тем проще становится вся задача в целом. Именно плохая организация системы и языка является причиной того, почему один опытный программист допустил ошибки, а другой – не был уверен в правильности синтаксиса простой программы. Те же самые результаты я получил и с тремя другими программистами, работающими со Smalltalk; это показывает, что данные проблемы относятся не только к VB. Очевидно, что каждый из этих языков обладает множеством преимуществ, но если бы они и особенно их среды были хорошо разработаны с точки зрения человеческих факторов, эти преимущества достигались бы с меньшими неудобствами и меньшим числом ошибок со стороны человека.
Таким образом, было утрачено нечто удивительно непосредственное, в частности, немедленная обратная связь, в которой человек нуждается для того, чтобы иметь возможность быстро создавать эффективные программы. Я не настолько наивен, чтобы думать, что мы можем вернуться к прежней простоте и достичь того уровня сложности, который требуется от современных программ. Но я уверен, что мы можем сделать в этом много улучшений.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Подробности программирования PIC микроконтроллера
Подробности программирования PIC микроконтроллера Программирование PIC микроконтроллера происходит в три этапа. Однако прежде чем приступить к собственно программированию, вам необходимо приобрести две вещи: программу компилятор PICBASIC и программатор EPIC (плата, куда
Список необходимых частей для программирования микроконтроллера
Список необходимых частей для программирования микроконтроллера • компилятор PSIBASIC• компилятор PSIBASIC Pro (включая CodeDesignerLit)• программатор EPIC• компилятор PICBASIC и программатор EPIC• CodeDesigner любительская версия• CodeDesigner стандартная версия• 16F84-4 1 шт.• кварцевый резонатор
ЧАСТЬ IV. Более разумная цивилизация
ЧАСТЬ IV. Более разумная цивилизация Мы уже рассмотрели:• удивительный потенциал повышения производительности ресурсов (часть I);• способы и средства для начала революции в эффективности (часть II);• экологические проблемы, стоящие перед человечеством (часть III).Где мы
«Фактор четыре» для более скудного ВВП
«Фактор четыре» для более скудного ВВП То, что сказано выше в этой книге, окажет серьезную помощь в понимании стоящей перед нами политической задачи. Мы убедились, что «рост» можно снова сделать намного более значимым с точки зрения реального богатства. Занятость в
Вертолетные катастрофы: более ста погибших за пять лет
Вертолетные катастрофы: более ста погибших за пять лет За последние пять лет (с 2006 по 2010 гг.) с вертолетами коммерческой гражданской авиации России произошла 21 катастрофа, их жертвами стали 107 человек. Ежегодно на вертолетные катастрофы приходится не менее половины всех
5.3 Помещения и условия окружающей среды
5.3 Помещения и условия окружающей среды 5.3.1 Условия проведения испытаний и/или калибровок, включая (но не ограничиваясь этим) источники энергии, освещение и окружающую среду, должны содействовать правильному проведению испытаний и/или калибровок.Лаборатория должна
6.4 Планирование среды жизненного цикла ПО
6.4 Планирование среды жизненного цикла ПО Цель планирования среды жизненного цикла ПО состоит в определении методов, инструментальных средств, процедур, языков программирования и аппаратных средств, которые будут использованы для выполнения процессов жизненного цикла
6.4.2 Язык программирования и компилятор
6.4.2 Язык программирования и компилятор В процессе планирования ПО должна быть оценена допустимость использования конкретного языка программирования и компилятора. Необходимо учитывать следующее:— некоторые компиляторы имеют возможности оптимизировать
9.2.10 Контроль среды жизненного цикла ПО
9.2.10 Контроль среды жизненного цикла ПО Цель контроля среды жизненного цикла ПО — гарантировать, что инструментальные средства, используемые для создания ПО, идентифицируются, контролируются и могут быть получены из соответствующих источников. Инструментальные
13.1.3 Изменения среды применения или среды разработки
13.1.3 Изменения среды применения или среды разработки Использование и модификация ранее разработанного ПО могут включать в себя новую среду разработки, новый объектный процессор или другие аппаратные средства, или интеграцию с ПО, которое отлично от используемого для