Главная » Delphi » Некоторые сведения о программировании, Windows и Delphi

0

Современный персональный компьютер — устройство необычайно сложное. Причем рядовой ПК образца 2004 года отличается от IBM PC двадцатилетней давности гораздо больше, чем, к примеру, последняя модификация Ford Focus от легендарного Ford Т образца 1913 года. И дело тут не в самой по себе скорости работы, которая возросла примерно на три порядка. Гораздо важнее принципиально возросшая функциональность— ни о какой 3D- и даже обычной многоцветной 20-графике тогда и речи не шло, голосовые интерфейсы существовали разве что в фантастических романах, а предсказать нечто подобное Интернету, да еще и мобильному, фактически не смог никто. Если продолжить аналогию с первыми автомобилями, то современный ПК в сравнении с IBM PC скорее следует уподобить, если и не реактивному истребителю, то, по крайней мере, пассажирскому лайнеру.

Казалось бы, управлять такой сложной машиной — учиться и учиться. Но ПК не обосновались бы настолько прочно в наших домах и офисах, если бы разработчики не придумали программные средства, сводящие сверхсложные операции к двум-трем щелчкам мыши. Причем на сегодняшний момент сложилась довольно парадоксальная ситуация: разнообразие компьютерного "железа" настолько велико, что правильно подобрать комплектующие и правильно настроить современный ПК невозможно без определенного багажа специальных знаний. А вот технологии программирования ПК. наоборот, предельно упростились. Правда, это в полной мере справедливо только для случая создания пользовательских программ — системные программы, разумеется, требуют для своего создания специальных знаний. Показательно, что в популярной книге С. В. Зубкова "Assembler для DOS, Windows и Unix" [13]. выдержавшей несколько переизданий, программированию под Windows и Unix посвящено менее 100 страниц из почти 700 — настолько это простое по сути занятие.

Заметки на полях

Попробую пояснить эту парадоксальную мысль. Для начала хочу подчеркнуть разницу между понятиями "сложный" и "громоздкий" — очень простая по сути программа может быть очень громоздкой и наоборот. Например, расшифровать заголовок файла, содержащего изображение в формате BMP, и воспроизвести на экране содержащуюся а нем картинку — доствточно сложное занятие. Программа, которая это делает из-под DOS, окажется и сложной и достаточно громоздкой, учитывая еще тот факт, что для воспроизведения True Color придется где-то исквть и присоединять к программе драйвер имеющейся а наличии видеокарты. Излишне говорить, что в силу большого разнообразия "железа" последняя задача может доставить и программисту и пользователю массу хлопот А вот в Windows ни один из этих вопросов не стоит вообще — все драйверы уже установлены заранее, а для аывода нв экран картинки формата BMP не требуется даже знать, что у нее есть какой-то там заголовок— даже на ассемблере это делается вызовом одной-двух функций. Вместе с тем, если простейшая ассемблерная программа под DOS может состоять из одной- единственной команды процессора, то любая программа под Windows обязана содержать некий минимум команд, так что решение упомянутой ранее задачи отобрвжения картинки по объему кода может даже превысить DOS-вариант. Что делает Windows-программы более громоздкими, но отнюдь не более сложными, потому что этот необходимый минимум повторяется из программы в программу и заново его "изобретать" каждый раз не требуется (см. [13]).

Так получилось потому, что большинство функций в современных операционных системах скрыто за оболочкой, носящей название пользовательски программные интерфейсы (Application Programming Interface, API). Собственно процесс программирования сводится к тому, чтобы вовремя и правильно вызвать нужную функцию API. Поэтому такие крайне сложные для "обычного" программирования операции, как, к примеру, вывод на экран полноцветной графики или создание текстового редактора с поддержкой форматирования, шрифтов, операций с буфером обмена и прочих необходимых свойств, сводится к вызову нескольких функций API. Довольно большой прогресс по сравнению с прерываниями DOS, которые программисты в большинстве случаев старались обойти, не видя необходимости в лишних прослойках между программой и BIOS или "железом", не так ли?

Однако на этом разработчики современных систем не остановились. С помощью средств так называемого визуачьного программирования процесс вызова функций API максимально автоматизирован. Вам уже не нужно выполнять рутинную работу по написанию кода программы целиком. Достаточно перетащить мышью нужный компонент на форму, и соответствующий код включается в текст программы автоматически. В результате процесс программирования стал воистину творческим занятием: всю "грязную" работу берет на себя компьютер (точнее, выбранный пакет программирования), а вам остается только правильно обработать возникающие в программе события. Специальных знаний об устройстве компьютера и построении ОС здесь требуется не больше, чем для обычного квалифицированного пользователя.

Разумеется, как в любом другом деле, за удобства приходится платить: вы полностью привязаны к существующим программным интерфейсам, которые писали для вас добрые дяди из Microsoft и других фирм-производителей системного софта, и шаг вправо-влево тут означает если и не расстрел, то, во всяком случае, необходимость приобретения очень специальных знаний. Однако такой выход за пределы стандартных функций в подавляющем большинстве случаев и не требуется: "добрые дяди" постарались предусмотреть по максимуму все, что требуется среднестатистическому пользователю. Другое дело, что поиск нужной функции и способа ее правильного использования может быть очень непростым занятием — ведь далеко не все можно сделать, перетаскивая компоненты мышью на форму. Именно в этом деле и призвана помочь книга, которую вы держите в руках.

Источник: Ревнч Ю. В.  Нестандартные приемы программирования на Delphi. — СПб.: БХВ-Петербург, 2005. — 560 е.: ил.

По теме:

  • Комментарии