Интервью с одним из управляющих проектом

Когда речь заходит о свободно распространяемых СУБД, в первую очередь, как правило, вспоминаются MySQL или PostgreSQL. Однако им не уступает Firebird, реляционная СУБД, разработка которой активно ведется последние несколько лет. Хотя в создании этой СУБД принимают участие специалисты всего мира, Firebird считается австралийским продуктом: FirebirdSQL Foundation, международная некоммерческая организация, была создана в конце прошлого года в Новом Южном Уэльсе. Чтобы поговорить об этой организации, а также о самом проекте, корреспондент LinuxWorld встретился с Хелен Борри, администратором проекта Firebird.

Сейчас в составе FirebirdSQL Foundation 44 члена. У вас только один голос. Что из этого следует?

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

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

За два года существования проекта многие приходили, уходили и возвращались. Все эти люди либо профессиональные разработчики, либо научные сотрудники. Их имена вы можете найти в виртуальной лаборатории Firebird

Почему вы решили стать членом фонда?

Я не «решала стать членом фонда». Я была одним из 15 его организаторов, и мы все приняли решение о создании руководящей группы из организаций, оплативших полный вступительный взнос. Эти взносы составили первоначальные средства фонда и позволили нам предоставить финансирование некоторым разработчикам еще до того, как фонд был создан официально.

Зачем понадобилось образовывать FirebirdSQL Foundation?

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

Почему люди предлагали и предлагают деньги вашему фонду?

Далеко не все пользователи свободно распространяемого программного обеспечения хотят бесплатно пользоваться результатами чьего-то труда. Firebird — сравнительно молодой проект. Он стартовал в июле 2000 года, в момент выпуска свободно распространяемой версии кодовой базы InterBase 6 компании Borland Software. Понятие «честь мундира» для разработчиков Firebird — вещь весьма значимая, причем как для разработчиков ядра, так и для сообщества программистов, использующих Firebird для разработки приложений. У пользователей InterBase проект Firebird вызывает большой энтузиазм. Возможность развертывать программное обеспечение базы данных бесплатно дает им серьезные преимущества. Многие из них не могут принимать участие в создании кода, но они хотят облегчить жизнь тем, кто этим занимается.

С самого первого дня мы понимаем, что потенциал разработчиков ядра постепенно начнет исчерпываться. Мы активно взялись за работу и немало сделали в том, что касается создания кода и исправления ошибок. Выпущенный код тогда предлагался только в виде бета-версии, и для всех, за исключением, может быть, небольшой группы разработчиков, преимущественно сотрудников Borland, такая деятельность была внове. Бета-тестирование версии для Linux тогда даже не начиналось; многое потребовалось доделывать.

Вспоминая начало проекта, можно сказать, что это было интересное время. Мы очень хорошо знали эту реляционную СУБД и со всей страстью боролись за то, чтобы спасти ее. Анализ кода во многом походил на попытки узнать о личной жизни любимых кинозвезд.

Наши основные разработчики — ни одного из них я до сих пор не видела — за последние два с половиной года проделали гигантскую работу, исправляя ошибки, в том числе очень старые. Это позволило нам выпустить несколько бета-версий для более широкого круга платформ и, наконец, в марте 2002 года — полную версию Firebird 1.0 для всех платформ.

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

Так вы переходите на C++?

Параллельно с попытками исправить и усовершенствовать версии старого кода, работающего на серверах, создается кардинально новая версия ядра Firebird на C++. Этот сложный процесс был начат Майком Норделлом из Швеции еще в 2000 году. Майк переработал все исходные тексты, исправил тысячи недочетов и модернизировал код.

Как только была выпущена стабильная версия Firebird 1 на Си, все основные усилия были направлены на работу с кодом Firebird 2, предложенным Майком. Было сделано очень многое, чтобы согласовать «суть» кода C++ со стабильной версией Firebird 1. Предмет этого этапа разработки — версия Firebird 1.5. Сейчас завершается ее альфа-тестирование. В версии 1.5 используется код на C++, в который включены все функции и исправления, сделанные в 1.0, а также ряд кардинальных изменений, отсутствующих в тексте на Си.

Следующим шагом станет выпуск версии Firebird 2, это будет полная версия с новой дисковой структурой. Мы обсуждаем возможность ее выпуска уже к концу текущего года. Однако полный набор функций версии 2 пока не утвержден, и мы планируем создать для нее абсолютно новый комплект тестов.

Об этом проекте можно сказать еще очень многое, об основных и вспомогательных направлениях разработки драйверов, о компонентных интерфейсах, инструментарии и так далее. К примеру, драйвер Java, InterClient, и Java-версия сервера, InterServer, были оставлены без внимания сообществом Firebird как весьма неудачные реализации, требующие полной переработки. JDBC-драйвер Jaybird был предложен группой независимых разработчиков.

Кто из программистов работал над этим проектом?

За два с половиной года многие приходили, уходили и возвращались. Все эти люди либо профессиональные разработчики, либо научные сотрудники (либо и то и другое). Первоначально основными разработчиками проекта были Марк О?Донахью и Майк Норделл. Марк вместе с небольшой группой программистов исправил наиболее известные ошибки и сосредоточил свои усилия на том, чтобы довести код до той стадии, когда его можно было бы «собирать», не инсталлируя базу данных. Как только загружаемые модули для Linux и Windows стали стабильны, другие программисты получили возможность работать над версиями для иных платформ: Джеффри Спичер — для FreeBSD, Джон Беллардо — для Darwin, а Нейл Маккалден — для Solaris. В работе этих групп, существовавших несколько месяцев, принимали участие очень многие. Я даже не буду пытаться назвать их имена.

Клаудио Валдеррама (Чили) был одним из ведущих разработчиков во всех областях реализации SQL, особенно в том, что касается динамического модуля синтаксического анализа SQL. Еще один наш управляющий, Энн Харрисон (США), оказала неоценимую помощь своими советами относительно многих аспектов ядра и языков. Дмитрий Еманов (Россия) был главной движущей силой разработки версий Firebird 1.5 и 2, осуществляемой с помощью множества других программистов. Здесь нельзя не отметить огромную работу, проделанную Джоном Беллардо в области управления памятью. Вы, наверное, зря попросили меня назвать имена, поскольку я так и не упомянула очень многих из тех, кто отдавал и отдает свои силы проекту. Их имена вы можете найти в нашей «виртуальной лаборатории» по адресу http://sourceforge.net/project/memberlist.php?group_id=9028.

Кто из известных компаний является пользователем Firebird?

У Firebird нет пользователей в классическом понимании этого слова. Это проект разработки свободно распространяемого ПО, а не коммерческая операция. Разработчиков, которые используют Firebird в качестве базы для коммерческих продуктов, легион, причем в самых разных странах, в частности в Германии, Восточной Европе, Южной Америке и Азии.

Firebird, по-видимому, будет пользоваться успехом у отдельных программистов и небольших фирм, которые либо переводят своих клиентов и продукты с InterBase на Firebird, либо разрабатывают новые системы.

Однако, начиная примерно с середины 2001 года, стала формироваться новая категория пользователей Firebird, которые отказываются от приложений Oracle и Microsoft SQL Server (а также приложений MySQL и Access) и начинают применять для работы приложений Java, Python и PHP 4.

Чем Firebird отличается от PostgreSQL и MySQL?

Они все отличаются друг от друга. PostgreSQL и Firebird имеют примерно одно назначение — это масштабируемые системы с архитектурой «клиент-сервер».

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

Кроме того, Firebird действительно кроссплатформенное решение. Вы можете создать резервную копию на одной платформе и восстановить ее на другой.

Ваши клиенты, работающие на мобильных компьютерах с локальным сервером Windows, могут тиражировать информацию и передавать ее в основную базу данных компании на Linux, Solaris, Mac OS или любом сервере.