Когда-то Владимир Ильич Ленин (кто он такой, надеюсь, большинство из наших читателей знает), сказал, что каждая кухарка может управлять государством. Несмотря на то, что данное утверждение является достаточно спорным и семьдесят лет его экспериментальной проверки не дали окончательных результатов, до сих существует изрядное количество людей, разделяющих точку зрения пролетарского вождя. Причём не только в управлении государством, но и в программировании. "Каждая кухарка может стать программистом!" - вот лозунг, достойный команды разработчиков, чей продукт я хочу сегодня вам представить.
Называется разработка High Assembler, но с языком программирования Ассемблер она не имеет ничего общего. В качестве официального сайта проекта в документации указан hiasm.spb.ru, однако можно (и нужно) найти программу здесь: x-worms.narod.ru/hiasm - первая ссылка по неизвестной мне причине не работает. Сайт неброский, но понятный, практически любой пользователь разберётся в навигации по нему. Размер дистрибутива программы достаточно невелик, так что скачать его не составит проблемы даже мученикам dial-up'а. Работает программа, само собой, под "Окнами", и разрабатываемые с её помощью программы также предназначены для этой операционной системы.
High Assembler (HiAsm) - это вершина визуального программирования, ставшего популярным благодаря Delphi и Visual Basic. Пожалуй, визуализировать и упростить процесс разработки в большей степени, чем это сделали разработчики рассматриваемого сейчас продукта, не удастся никому. Потому что в этой среде для создания полноценного приложения не нужно писать ни одной строчки кода. Глядя на скриншот, можно в большей или меньшей степени представить себе, как выглядит "изнутри" программа для того, кто использует High Assembler.
Её основные элементы - по аналогии с другими средами они называются компонентами - располагаются на главной форме. С разных сторон от компонента расположены зелёные точки. Они играют важную роль в создании приложения, собственно, работа с ними и есть программирование. Суть зелёной точки (она называется точкой входа) определяет её положение: если она находится на правом боку компонента, то это событие, на левом - метод. Данные располагаются сверху, а свойства - снизу. Линии, соединяющие между собой точки входа - это и есть код программы, определяющий её поведение в тех или иных ситуациях. С их помощью можно связать событие одного компонента с методом другого, и тогда, например, по нажатию кнопки начнётся проигрывание "Лунной сонаты" Бетховена с помощью компонента-медиаплеера.
Конечно, такой способ "программирования" сильно ограничивает человека, решившего им воспользоваться, но для тех, кто ничего не знает о программировании, он практически идеален: нет необходимости изучать какой-либо алгоритмический язык и основы программирования под Windows. Правда, пользуясь одним только HiAsm'ом, настоящему программированию вряд ли вообще можно научиться. Тем не менее, для людей, далёких от компьютера вообще и от программирования, в частности, а также для школьников эта среда разработки - одна из самых привлекательных. Хотя школьникам я бы всё же рекомендовал Delphi или Visual Basic.
Компонентов в HiAsm не так уж и мало - в стандартной поставке 118 штук, кроме того, можно написать свой собственный, но об этом чуть позднее. Среди них как стандартные элементы управления (кнопки, панели, надписи и т.п.), так и специальные компоненты вроде таймера, медиаплеера, браузера, компонентов для работы с интернетом и многих других. Но кроме этих, привычных для программистов компонентов, в High Assembler присутствуют и другие, которые в большинстве остальных средств разработки попросту не нужны. Это компоненты, реализующие недостающую функциональность отсутствующего программного кода: взаимодействие между окнами, работа с системой, работа со строками и файлами, логика и ветвления, циклы и случайные числа, работа с потоками данных, отладка, ловушки (hooks). Среди компонентов можно найти также модификаторы для картинок (размытие, изменение размеров, создание негатива), компонент для создания скриншотов окна, компоненты для управления рабочим столом, лампочками на клавиатуре, для работы с реестром, COM и LPT портами. Есть UDP и TCP клиент и сервер, компонент для пинга, для работы с протоколами HTTP, POP3, SMTP. Как видите, с помощью всех этих компонентов можно создавать не только элементарные демо-программы, но и кое-что посложнее. Сами авторы HiAsm вообще смотрят на возможности своего детища с изрядным оптимизмом: среди шаблонов программ в High Assembler'е есть фоновое приложение (сервис), апплет панели управления и расширение для Windows Explorer'а (т.е. "Проводника").
Небольшим минусом предлагаемого авторами High Assembler'а способа построения приложений является то, что нередко возникает путаница в управляющих линиях, соединяющих компоненты. Впрочем, программа предоставляет возможность изменять их по своему вкусу и придавать самую причудливую форму. Кроме того, линии, соединяющие разные виды управляющих точек, имеют разный цвет на экране. Но самостоятельно менять цвет линий, к сожалению, нельзя.
Теперь пару слов о добавлении собственных компонентов в среду разработки High Assembler. Если этот вопрос вам не кажется интересным, пропустите данный абзац и следующий за ним. Компоненты пишутся на Object Pascal (о причинах этого - чуть позже). Для создания собственного компонента нужно сначала создать файл конфигурации, в котором описывается компонент. Кроме того, для него нужно создать иконку (значок) размером 24x24. Файл конфигурации представляет собой обычный текстовый INI-файл, который, в принципе, можно отредактировать и в обычном "Блокноте", но авторы High Assembler'а предлагают свою утилиту ECreator, которая призвана облегчить работу по созданию файла конфигурации и регистрации компонента в среде HiAsm. Далее нужно воспользоваться утилитой code.exe, которая по файлу конфигурации сгенерирует шаблон компонента на Object Pascal'е. Шаблон, сгенерированный программой, нужно заполнить программным кодом. В дистрибутиве High Assembler'а можно найти исходные тексты всех встроенных в среду компонентов, и, я думаю, эти тексты могут помочь в написании собственного компонента. Однако программы ECreator и code.exe не входят в стандартную поставку High Assembler, поэтому их нужно скачивать с сайта разработчиков.
Как я уже говорил, компоненты для HiAsm'а пишутся на Object Pascal. И это не случайно. Дело в том, что для генерации исполняемых файлов программа использует компилятор Borland Delphi. Это, конечно, не совсем законно, поскольку компилятор этот всё-таки коммерческий. Тем не менее, благодаря использованию именно этого компилятора, программы не требуют никаких дополнительных DLL-библиотек для запуска, что весьма приятно. Для знатоков Delphi сообщу также, что благодаря использованию библиотеки KOL вместо VCL (об этом говорит присутствие характерных для этой библиотеки модулей в дистрибутиве High Assembler'а), программы, созданные с помощью HiAsm получаются довольно миниатюрными: пустое приложение с одним окном "весит" всего около 24 Кб. Ещё больше уменьшает размер использование упаковщика исполняемых файлов UPX, который среда разработки вызывает автоматически, после того как компилятор создаст исполняемый файл. Впрочем, размер исполняемого файла - это не так уж и важно.
Документация к High Assembler'у прилагается достаточно хорошая, хотя, вероятно, она может показаться несколько запутанной человеку, который вовсе не разбирается в программировании. В документации содержится пример разработки с помощью High Assembler'а простого приложения - фактически, это урок по программированию, объясняющий суть таких понятий, как метод, свойство, событие, и дающий представление о том, как ими пользоваться в HiAsm'е. Там же, в документации, можно найти описание всех компонентов, а также подробное руководство по созданию новых. Ещё там можно найти список разработчиков программы и номер Web Money-кошелька главного разработчика. Он пишет, что не откажется от пожертвований.
Теперь нужно кинуть камень в огород разработчиков. Дело в том, что нет никакой возможности воспользоваться кучей демонстрационных проектов, входящих в дистрибутив High Assembler'а. Программа начинает дико глючить при попытке загрузить ранее сохранённый проект, после такой попытки трудно даже её закрыть. Вполне возможно, что проблема не столько с открытием, сколько с сохранением проектов, но пользователю, по большому счёту, всё равно. Так что разработчикам нужно обратить особое внимание на этот момент.
В интернете я не встречал ссылок на проекты, созданные (так и тянет по привычке сказать "написанные", но здесь лучше будет сказать "нарисованные") с использованием High Assembler. Программисты, видимо, этой средой разработки пользоваться не желают, а кухарки, для которых High Assembler и писался, не в состоянии создать с её помощью сколько-нибудь полезное приложение. Хотя на самом деле идея такой вот максимально визуализированной среды разработки весьма интересна и концептуальна. Правда, думаю, причина неуспеха High Assembler'а именно в ориентации на домохозяек. Хотя, конечно, создать такого рода среду, ориентированную на программистов, будет весьма и весьма проблематично. Тем не менее, думаю, High Assembler может пригодиться и профессиональным программистам, но всё же особенно будет полезен любителям, поскольку скорость разработки программ в нём намного выше даже чем в RAD-средах, ориентированных именно на скоростную разработку. Кроме того, большое количество стандартных компонентов и возможность добавить в случае необходимости собственные способствуют написанию в этой среде несложных приложений для самых различных нужд.
Посему вердикт по поводу High Assembler таков: рекомендовано всем непрограммистам, которым нужно как можно быстрее сделать какую-нибудь программу.
Вадим СТАНКЕВИЧ
![Версия для печати Версия для печати](https://www.kv.by/sites/all/modules/print/icons/print_icon.png)
Комментарии