Есть языки программирования, которые никто не воспринимает всерьёз. И дело не в том, что они смешные, как, например, эзотерические языки, о которых я рассказывал пару номеров назад. Нет, такие языки созданы для вполне жизненных целей и задач. Но вот почему-то, увы и ах, не сложилось. Не принимают матёрые кодеры эти языки, хоть ты тресни. Не желают писать для них компиляторы, не желают писать на них операционные системы, сложные CAD-системы и видеоредакторы. И причина даже не в том, что их синтаксис неудобен. Просто, как ни странно, программирование - одна из самых консервативных индустрий на планете.
Я не хочу сейчас вносить лепту в многочисленные религиозные войны адептов разных языков, потому что это не является целью данной статьи. Хотя сам я в этих войнах люблю поучаствовать, что уж греха таить. Давайте просто посмотрим с высоты птичьего полёта на карту мира исходных кодов, где вместо стран будут языки программирования. На этой карте есть большие страны, вроде Канады и России, а есть маленькие, вроде Лихтенштейна и Сингапура. Но принципиально эти страны устроены одинаково: в каждой есть столица, жители, правительство и, к сожалению, налоги. Все страны, входящие в ООН, имеют принципиально равные права. Вот и с языками программирования так же. Все они более-менее эквивалентны (не считая, опять-таки, эзотерических языков, которые сами по себе - просто памятник своим создателям, и особой функциональной нагрузки не несут). Если языки полны по Тьюрингу, то с их помощью теоретически можно написать программу любой сложности. Полнота по Тьюрингу означает, если объяснять "на пальцах", что такой язык программирования сможет заменить собой любой другой язык. Поэтому споры о том, какой язык "лучше", "универсальнее", "красивее", "профессиональнее", - это процессы выяснения вопросов, скорее, философского плана.
Итак, вернёмся к нашим языкам, которые среди программистов серьёзными не считаются. Конечно, первые в этом списке - Basic и Pascal. Вероятно, причина отрицательного отношения к ним профессиональных программистов в том, что эти разработаны они были для обучения программированию. Поэтому считается, что языки эти менее мощны, чем те, которые придуманы специально для крутых дядек-программистов. Однако есть приверженцы этих языков, которые, вероятно, лучше понимают равноправие всех, а потому не брезгуют этими Pascal'ами и Basic'ами пользоваться.
Однако речь сейчас всё же не о них, а, скорее, о первоначальной функции одного из двух упомянутых выше языков. Basic - это, всё же, язык для обучения программированию, поэтому его использование именно в этом качестве можно только всячески приветствовать.
В современных отечественных школах используется для обучения язык Интал - фактически русифицированный вариант Pascal'а с некоторыми приметами Basic'а (вроде отсутствия точек с запятой). Мне кажется, что лучше всё же начинать изучение такого предмета, как программирование, с языка, более-менее приближенного к реальной предметной области. То есть, с того же Turbo Pascal или Quick Basic. Или, ещё лучше, современных средств, вполне способных их заменить. Для Pascal наилучшим образом подойдёт Free Pascal. А для Basic? Вот об этом я сейчас и расскажу.
Зовётся "герой" этой статьи, как видно из её названия, XBasic. Откуда взялась первая буква в названии, сказать сложно, поскольку на официальном сайте проекта (www.xbasic.org), как и на сайте отца-основателя (www.maxreason.com/software/xbasic/xbasic.html), ничего на эту тему не нашлось. Хотя там можно найти другую полезную информацию - описание, скриншоты, ну и, конечно, сам дистрибутив XBasic. Что приятно, имеются версии для двух операционных систем - Windows и Linux. Так что при желании можно учиться программированию на XBasic и под свободной операционной системой.
Интегрированная среда разработки (IDE) XBasic поначалу вызывает некоторое удивление, но потом становится понятно, что авторы постарались придать своему детищу вид, более-менее приближенный к интерфейсу Quick Basic. Не сказать, чтобы у них это так уж хорошо получилось, но определённых успехов они достигли. Хотя, вероятно, несколько аляповатый интерфейс - всего лишь побочный эффект кросс-платформенности программы (внешний вид - дело вкуса, и вполне может быть, многим он понравится). Единственное, что не очень удобно - большое количество окон, не привязанных друг к другу, которые очень сложно расположить на экране так, чтобы они друг другу не мешали.
Программы в XBasic по умолчанию не компилируются, а интерпретируются. Для изучения языка это не создаёт никаких неудобств. Однако если уж вам удалось написать с помощью XBasic что-то стоящее, то в меню "run" есть пункт "assembly" (кстати, вопреки общепринятым правилам, пункты в меню программы начинаются со строчной буквы, обратите внимание). Нажав на этот пункт, вы получите программу на Ассемблере, которую XBasic скомпилирует из вашего кода на Basic'е. Дальше нужно только воспользоваться любым ассемблером (программа, которая создаёт объектный файл из текста на языке Ассемблер) и компоновщиком, который создаст исполняемый файл. Но об Ассемблерах и компоновщиках мы поговорим как-нибудь в другой раз.
С помощью XBasic можно научиться не только написанию кода, но и другой, не менее важной составляющей процесса программирования. Догадались, о чём я? Конечно же, об отладке. Отладка в XBasic организована стандартно: точки останова, просмотр содержимого памяти, просмотр содержимого регистров процессора. Так что, как видите, научиться отлаживать самостоятельно написанный код с помощью XBasic тоже можно.
Теперь поговорим о том, какие возможности XBasic предоставляет в плане графики. Как известно, в процессе изучения программирования графика занимает далеко не последнее место и пользуется, как правило, повышенным вниманием со стороны учеников. Среди примеров, которых, кстати, в дистрибутиве XBasic немало, есть один достаточно зрелищный (файл "ademo.x"). Он наилучшим образом демонстрирует возможности графической библиотеки XBasic'а. Вся библиотека построена на использовании несложных функций, работающих с графическими примитивами и элементами управления. Функций этих достаточно много, и при желании с их помощью, думается, можно создать вполне функциональный графический интерфейс пользователя, хотя это будет и не так просто, как в объектно-ориентированных языках, для которых есть среды разработки с визуальным дизайнером интерфейса. Однако для обучения начинающих программистов основам работы с графикой этого вполне достаточно.
Помимо графической, в XBasic есть собственная математическая библиотека. Она включает в себя элементарные функции действительных чисел (синус, косинус, логарифм, корень и т.п.) и аналогичные элементарные комплексные функции. Негусто, но, опять-таки, в целях обучения довольно полезно.
Удивляет то, что разработчики XBasic смотрят на своё детище с излишним оптимизмом. Позвольте привести перевод фразы с сайта основателя проекта XBasic: "...XBasic подходит фактически для всех задач программирования. Для науки XBasic имеет обширную математическую библиотеку; тип данных комплексных чисел и библиотеку функции; мощную графическую библиотеку. Для бизнеса XBasic имеет встроенную поддержку 64-битных целых чисел и определенных пользователем типов, оптимизированных для ввода/вывода из базы даных. Для системного программирования XBasic заменяет стандартные механизмы низкого уровня альтернативами языка высокого уровня, которые являются значительно более удобочитаемыми, понятными и простыми в изменении и поддержке. Для всех приложений XBasic поддерживает быструю разработку компактных, эффективных, надежных, удобочитаемых, портативных, хорошо структурированных программ". Что на это сказать? Сам себя не похвалишь - никто не похвалит. На самом деле, я всё же не стал бы применять XBasic где-то, кроме области образования. Хотя и там есть альтернативы: Quick Basic и Visual Basic. Почему для обучения программированию XBasic подходит лучше, чем эти два продукта корпорации "Майкрософт"?
Quick Basic - уже почтенная разработка, работавшая ещё под DOS'ом, однако в мире Windows (впрочем, как и других современных операционных систем) не прижившаяся. У старого программного обеспечения часто возникают конфликты с новыми операционными системами, поэтому лучше Quick Basic не использовать. Visual Basic может быть слишком сложен и пугающе многофункционален для начинающих. Его лучше выбрать для продолжения обучения программированию, хотя очень многие учебники по программированию и рекомендуют Visual Basic в качестве первого языка. XBasic привлекателен также тем, что в нём нет поддержки объектно-ориентированного программирования, поэтому нет необходимости объяснять новичкам эту концепцию для работы в среде. Её они вполне смогут постигнуть потом, когда перейдут на более сложный инструмент - тот же Visual Basic, к примеру. Поэтому тем, кто связан с обучением программированию студентов ли, школьников ли, или даже просто собственных детей, я рекомендую иметь в виду наличие такого инструмента, как XBasic.
Конечно, XBasic - не единственная реализация этого языка, которую сегодня можно использовать в образовательных целях. Есть специально разработанный для этого Liberty Basic (www.libertybasic.com), однако он коммерческий, в отличие от XBasic'а. Однако если заинтересовались, посмотрите также и в его сторону.
Вадим СТАНКЕВИЧ
Комментарии
IDE для FreeBasic win32 http://www.radasm.com/fbedit/index.html