Интервью с создателем пакета MASM32

Дата публикации 21 авг 2003

Интервью с создателем пакета MASM32 — Архив WASM.RU

Можете ли вы написать более или менее сложную программу под Win32, например, на С, не имея необходимых утилит, заголовочных файлов, стандартной библиотеки? Вряд ли. По крайней мере, затраты времени и труда будут огромными. А ведь примерно в таком положении находятся программисты, пишущие на ассемблере. Не мудрено, что многие, желающие изучить этот язык, отступаются, не написав даже традиционной программы "Hello, world".

Попытки создать пакет для программирования на ассемблере под Windows, который включал бы в себя все необходимое, предпринимались неоднократно. Но лишь один из них приобрел всеобщую и заслуженную популярность - MASM32. Его создатель Стивен Хатчессон (Сидней, Австралия) любезно согласился дать интервью нашему сайту.

- Здравствуйте, Стив. Пожалуйста, расскажите нашим читателям что-нибудь о себе, о своей работе, о своих интересах.

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

Сначала я выполнял простую работу на компьютерах (где-то в 1980-м), но потом я выяснил, что компьютеры, доступные для персонального пользования, не могли делать то, что меня интересовало, поэтому я переключился с них на свой собственный бизнес.

Я вернулся в компьютерную область в 1990 году и изучил ассемблер, Бейсик и C примерно в одно и то же время, так как тогда была большая коммерческая потребность в программном обеспечении, и не так много людей были способны делать что-то полезное для компьютеров. Поэтому мне потребовалось изучить ассемблер, так как тогдашние компиляторы не были достаточно гибки, чтобы делать все то, что мне хотелось.

- У вас и сейчас есть свой бизнес? В чем он заключается?

- После начала моей карьеры программиста под x86 я стал тем, кого называют Independent Software Vendor, и именно этим я зарабатывал себе на жизнь, пока это было возможно с экономической точки зрения. Я все еще делаю мелкую работу от случая к случаю для старых заказчиков и друзей, но в основном теперь я живу на доход от инвестиций. Я трачу свое время на восстановление старого дома, в котором живу, потому что через некоторое время я стану слишком стар для подобной работы. Это также помогает держать себя в форме. Я стараюсь быть в курсе того, что творится в компьютерной индустрии, и если положение на рынке улучшится, и большая часть того, что нужно сделать для восстановления дома, будет выполнена, я буду работать больше, чем сейчас.

- Изучив ассемблер, Вы создали пакет MASM32, который приобрел огромную популярность во всем мире. Как вам пришла мысль о его создании?

- Как только с приходом Windows 95 стало необходимо создавать 32-х битные программы, я обнаружил, что инструментов для создания полезных и мощных программ сильно не хватает, и все большее распространение начали получать пакеты, облегчающие программирование для начинающих, но при этом, как правило, терялась большая часть возможностей, позволяющих писать выскокачественное программное обеспечение.

Сначала я написал собственный редактор с помощью специализированного компилятора языка Бейсик, поскольку я был знаком с этим языком, и затем начал собирать информацию о создании ассемблерного пакета. Iczelion уже сделал кое-какую подготовительную работу, основываясь на том, что сделал ранее Стив Гибсон, и поскольку у меня был уже опыт в написании Windows-программ, я использовал некоторую часть из спроектированного Iczelion'ом, чтобы создать ранние версии MASM32.

Главной идеей с самого начала было то, чтобы код на ассемблере было писать не труднее, чем на C, но чтобы он был более понятный и более мощный. Начиная с самых ранних версий MASM32, он разрабатывался при участии многих опытных программистов, которые хотели передать свой опыт следующему поколению программистов, и чтобы у них были подобающие инструменты, так же, как и у нас.

- Давно хотелось у Вас спросить, почему в 7-ой и 8-ой версии MASM32 только 24 туториала Iczelion'а, хотя он написал больше 40? Вы, случаем, не разругались с ним? Знаете, как это бывает...

- Нет, это в основном потому, что достучаться до Iczelion'а в настоящее время очень трудно, но его туториалы можно легко найти на его сайте, поэтому если они нужны программисту, он может получить их без особых проблем.

- Многие хакеры и крэкеры используют MASM32 с незаконными намерениями. Вас это не волнует?

- Эта проблема не одного только MASM'а или ассемблера вообще. Незаконные программы, повреждающие компьютеры, будь то вирусы или трояны написаны в большинстве своем на языках высокого уровня, таких как C++, Pascal и скриптовых языках вроде VBS и ему подобных. Подавляющее большинство людей, использующих MASM32, пишут полезные вещи, которые требуют больше времени и умения, чем вредоносный код, и узнают много нового. Опытный в ассемблере программист будет в более выгодном положении, программируя на языках высокого уровня, так как он понимает больше, чем те, кто не знает ассемблера.

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

- Понятно. Скажите, Стив, нуждаетесь ли Вы в помощи со стороны пользователей MASM32? Как люди могли бы помочь вам?

- Создание MASM32 стало возможным, потому что много разных людей помогало в этом. Я написал значительное количество того, что входит в пакет, а также должен координировать его развитие. Если кто-то предлагает помощь или добавить что-то в пакет, мы решаем с ним, что лучше сделать и как интегрировать это в пакет. Таким образом достигается лучшее разделение труда.

- Что же ожидает нас в следующих версиях MASM32?

- Я в целом доволен текущей 8-ой версией MASM32, где я проапгрейдил довольно много разного, добавил больше исходного кода и уменьшил занимаемое им место, поэтому я пока не планирую новую версию. Если появится такая надобность, я сделаю это, но для создания цельного пакета требуется много времени, поэтому я изменяю его только тогда, когда это действительно нужно. Я стараюсь быть особенно осторожным с размером пакета, так как MASM32 качают многие, и это требует большой пропускной способности.

- Вот Вы создали инструмент для программирования на ассемблере, но бытует мнение, что писать программы на этом языке бессмысленно, потому что современные компиляторы умеют оптимизировать код очень хорошо. Что вы можете сказать на это?

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

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

- Хорошо, а не таится ли угроза существованию ассемблера с другой стороны? Как вы думаете, что будет с приходом 64-х битных процессоров?

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

Ассемблер - это непростой для изучения язык, и для него обычно требуется определенный склад ума, но программист, который сможет постичь его кристальную логику, будет иметь гораздо лучшее представление о том, что может компьютер и как работают компьютерные языки. Хотя программист, который знает только более простые языки, может зачастую писать полезные программы, программист, понимающий, как работает компьютер, может делать то, что не под силу обычному программисту.

Также надо учитывать, что у платформы x86 огромное количество пользователей, поэтому пройдет еще много времени, пока 32-х битное x86-железо перестанет использоваться. Далеко не многие в мире могут позволить себе самое новое компьютерное железо, поэтому большинство людей используют компьютеры, которые намного медленнее, чем последние модели. Программное обеспечение, спроектированное в расчете на современное железо, выполняется на более ранних компьютерах очень плохо, поэтому маленький быстрый код будет выполняться на большинстве компьютерах быстрее, чем большой и медленный, которому нужен самый новый процессор, чтобы он работал нормально.

- Наверное, нет двух программистов, которые предпочитали бы один и то же набор утилит. Какие инструменты используете вы, программируя на ассемблере?

- В основном те, которые идут вместе с MASM32, так как я написал их в первую очередь для персонального использования. Я не люблю концепцию IDE, так как считаю, что она ограничивает меня в том, как я должен писать свой код. Редактор очень аскетичен, поскольку я не люблю все эти "рюшечки", но он очень удобен для того, что мне нужно. Единственное из используемого мной, что я не могу поместить в пакет MASM32, это очень старый редактор ресурсов от Symantec, так как это лицензионная программа, которую нельзя распространять.

Доступной справочной информации слишком много, чтобы ее можно было поместить в MASM32. Лично я в основном использую старый файл win32.hlp, когда мне нужно узнать о последних функциях - PLATFORMSDK, а также второй том Интеловского справочника по ассемблеру. Это все доступно в интернете, также вы можете заказать PLATFORMSDK на CD, если время скачки слишком велико.

Я тяготею к написанию маленьких специализированных утилит, поскольку часто в них нуждаюсь, но зачастую они настолько специализированны, что будут без надобности кому-то еще. Такое бывает со многими программистами, и в этом нет ничего необычного.

- Использовали ли вы когда-нибудь другие ассемблеры? Например, такие экзотические, как fasm, spasm, hla?

- Я использовал и MASM и TASM под ДОСом, но с приходом 32-х битных Windows, я использую только MASM. Я также пишу на PowerBASIC'е, у которого очень хороший встроенный ассемблер, и некогда в прошлом использовал встроенный ассемблер C.

Относительно упомянутых выше экзотических ассемблеров я думаю, что FASM имеет неплохой потенциал, так как его автор регулярно обновляет его и отвечает своим пользователем. Я не в очень хороших отношениях с автором Spasm, и хотя с моей стороны были предприняты определенные усилия, он не хочет уступать настолько, чтобы сделать свой ассемблер более пригодным для широкого круга программистов, поэтому не думаю, что его ожидает значительное будущее.

HLA - это гибрид, работающий как очень мощный препроцессор для нескольких ассемблеров. Его автор Рэндал Хайд - пионер в ассемблере, который сделал его доступным, когда немногие были в нем заинтересованы, и частью целевой аудитории HLA являются студенты, которые должны изучить ассемблер и сделать на нем что-нибудь полезное, используя то ограниченное время, которое есть у них в университете.

- Какой разговор может обойтись без упоминания о Microsoft? Стив, что вы думаете о новой платформе .NET? Действительно ли это что-то революционное или просто еще одна попытка Microsoft захватить контроль над миром?

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

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

- Мы с Вами выполнили свой долг, но оставим "исчадие ада" в покое. Я имею в виду Microsoft. Поговорим о более возвышенном. Верите ли вы в Бога или другую мистическую суперсилу?

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

Простым ответом будет: да, я верю в Бога. Я не определяю себя как "религиозного" человека, но как верующего.

- Пробовали вы когда-нибудь практиковать медитацию, дзэн или магию рун?

- Простым ответом будет: нет. По крайней мере, в тех формах, в которых обычно понимаются эти понятия, но я имею некоторое представление о том, что такое медитация, так как понимание индийской ведической литературы достаточно распространено здесь.

Дзэн - это древнекитайская форма мудрости, против которой я не имею ничего против, так как она базируется на опыте, полученном за очень долгое время. Я бы назвал дзэн философией, а не религией.

Я имею очень небольшое представление о магии рун, но основываясь на том, что мне известно, лично я не вижу в ней чего-нибудь примечательного.

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

Если что-то существует в мире, нельзя сбрасывать это со счетов, основываясь на чистых теориях, нужно исходить из практических свойств.

- Что вы думаете о Каббале?

- Я знаю достаточно, чтобы не поддерживать любую форму магии, которая основывается на более старом религиозном учении. Как один из тех, кто уже верит в Бога, я не могу сидеть на двух стульях, иначе можно упасть с обоих.

- Спасибо за интересное интервью, Стив. Мы желаем Вам успехов и благодарим за замечательный инструмент, который Вы дали миру. © vkim / HI-TECH


0 994
archive

archive
New Member

Регистрация:
27 фев 2017
Публикаций:
532