Архивы: по дате | по разделам | по авторам

Сделай сам

Архив
автор : Сергей Занд   13.11.2002

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

Сначала я хотел рассказать лишь о том, что происходит вокруг InterBase в России. Однако, как обычно бывает, одна ниточка потянула за собой другую, другая — третью… Не могло бы быть русского InterBase без первоначального сервера, без событий, которые произошли в мире софтостроения не так давно и о которых большинство программистов узнают друг от друга, вынужденно играя в испорченный телефон. А поскольку разработка программных продуктов — это прежде всего индустрия, поневоле пришлось затронуть и рынки ПО, в частности российский. Надеюсь, однако, что «деревья» не спрячут от читателя «лес» — самоорганизовывающееся русскоязычное сообщество InterBase, сообщество профессионалов, которое уже выпестовало новые продукты, новые идеи и новое отношение к собственному труду.

Под лежачего «программера» пиво не течет.
Народная мудрость

Неизвестный сервер

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

Именно о таких подводных течениях вокруг InterBase и пойдет речь. В отличие от других серверов баз данных, он практически не продвигается на нашем рынке. Многие ли знают, что встроенный сервер InterBase «мотается» на поясах владельцев мотороловских телефонов1? Что InterBase выбран в качестве СУБД для одной из моделей танка «Абрамс», поскольку другие серверы либо не выдерживали перезагрузки системы после выстрела, либо не удовлетворяли техническим требованиям? Еще один малоизвестный факт — использование InterBase для хранения информации о кредитках в считывающих устройствах, которые используются на немецких железных дорогах — одной из самых быстрых и развитых транспортных систем в мире. Много ли материалов об InterBase может найти обычный разработчик самостоятельно? Риторические вопросы.

С другой стороны, большая часть прикладного программного обеспечения в России пишется на Delphi или, на худой конец, на C++ Builder, а InterBase входит в их поставку по умолчанию2. Этот удачный маркетинговый ход корпорации Borland в наших условиях привел к непредсказуемому результату. В России, и вообще в странах бывшего Союза, практически невозможно найти лицензионный InterBase. Delphi, равно как и C++ Builder, у нас покупают на местных «горбушках», поскольку мало кто может выложить за средство разработки от тысячи до трех тысяч долларов за одно рабочее место. В итоге, заполучив InterBase в бесплатном комплекте, люди не видят смысла покупать его официально. Решение, помогающее продвигать InterBase в Европе, попросту не работает у нас. Не работает, несмотря на то, что 80 процентов всех русских «самопальных» систем автоматизации складского учета, бухгалтерий и прочих специализированных продуктов обработки информации пишутся с использованием InterBase! Это огромное поле, которое никто не возделывает. Если предложить разработчикам, уже использующим InterBase, реальную местную цену, многие наверняка сочтут такой шанс легализации большой удачей. Похоже, в Borland этого не понимают и, боюсь, могут опоздать: на поверхность всплывает часть айсберга, порожденная решениями управляющей команды корпорации в начале 2000 года.

Открытым текстом

Несколькими месяцами ранее разработчиков, «приближенных к императору», била нервная дрожь: прошел слух, что Borland собирается прекратить дальнейшее развитие InterBase. Косвенным, но очень убедительным подтверждением служил уход со своих постов ключевых сотрудников подразделения InterBase Corp. Чтобы заставить руководство пересмотреть решение, была срочно организована группа поддержки, названная «независимой инициативой разработчиков InterBase» (IBDI). Угроза прекращения дальнейшего развития сервера сплотила независимых разработчиков, а их протесты и бомбардировка корпорации письмами привели к тому, что в Borland объявили об открытии кодов InterBase. Сейчас многие специалисты оценивают этот шаг как популистский. Не сумев правильно оценить ситуацию, руководство корпорации заявило о поддержке сообщества Open Source. Мол, раз мы теперь боремся за Linux, то вот вам, господа хорошие, бесплатный кроссплатформный подарок и делайте с ним, что хотите. Порадовало лишь то, что лицензия для InterBase была выбрана не GPL (General Public License), использовать которую в коммерческих разработках практически нереально, а облегченный вариант — MPL (Mozilla Public License). Решили, что таким образом и волки будут сыты, и овцы целы, то есть и сервер Open Source получаешь в исходниках, и исходные тексты своих программ открывать не обязательно. IBDI практически в полном составе выступила за создание независимого клона InterBase, поскольку кроме открытия исходных текстов дальнейшие планы Borland были покрыты мраком, который и до сих пор не развеялся. К этому моменту большинство сотрудников InterBase Corp уже покинули Borland и перешли в собственную компанию IBPhoenix, которая стала курировать проект Firebird — тот самый клон Open Source, который решили писать «всем миром».

Скороспелое решение Borland вывело на рынок продукт, конкурирующий с InterBase и основанный на том же коде! Указание на птицу Феникс в названии новой компании лишь подчеркнуло, что «нашу песню не задушишь, не убьешь», и если в Borland не хотят крутиться быстрее, то продукт покрутят и без них. Дорвавшиеся до кода InterBase разработчики со всего света вплотную взялись за продукт, исправляя ошибки, которые имелись в InterBase с незапамятных времен. Сказывалась более быстрая, чем в Borland, обратная связь в принятии важных решений. Огромные корпорации, как правило, малоподвижны, да и последствия любого их шага могут быть гораздо серьезнее, чем решения маленькой компании, которая еще не имеет широкого круга покупателей. В итоге Firebird с самого начала демонстрировал завидное наращивание функциональности, а о версии Borland InterBase не было ни слуху ни духу.

Однако «жар-птица», несмотря на свою техническую привлекательность, имела ряд явных недостатков с точки зрения маркетинга. Во-первых, продавать продукт, исходные тексты которого по условиям лицензии должны быть открыты и бесплатны, невозможно. А если не продавать, то на какие шиши развивать продукт? Энтузиазм рано или поздно иссякнет, поскольку сам по себе он никого не кормит. Компания IBPhoenix, которая в первую очередь оказывает платную поддержку пользователям InterBase и Firebird, а не занимается созданием сервера, не может вкладывать большие средства в продукт, если он не приносит соответствующей прибыли. Вот если бы возросло количество пользователей Firebird, готовых платить за поддержку, была бы и прибыль. Однако корпоративные покупатели с большой опаской относятся к Open Source, если речь идет о хранении конфиденциальной информации. Быть может, это дилетантская точка зрения, однако с ней надо считаться, поскольку принимают решение о покупке сервера не технические специалисты, а менеджеры, далекие от вопросов компьютерной безопасности. Более того, как показывает практика, серьезные менеджеры предпочитают использовать дорогое ПО, нежели бесплатное. По-своему они правы: «Как я могу пользоваться продуктом, за который даже денег не берут? А может, он так плох, что деньги стесняются просить? А может, они просто не хотят давать никаких гарантий? Если я купил продукт, то потребую, чтобы моими проблемами занимались и в дальнейшем, а если я не платил, то на каком основании смогу что-то требовать?» Ситуация усугублялась тем, что из-за отсутствия централизованного управления разработкой в среде специалистов стали возникать разногласия по поводу того, в какую сторону развивать сервер дальше. Крыловская басня про лебедя, рака и щуку не потеряла актуальности и по сей день.

Впереди планеты всей

А при чем тут Россия? — спросите вы. Прежде чем ответить на этот вопрос, рассмотрим другой: что нужно, чтобы InterBase мог занять в России достойное место? Во-первых, разумеется, понимание разработчиками сервера наших местных особенностей — как можно «больше всего» и желательно как можно дешевле, поскольку глубинка пока не готова или не в состоянии платить реальную стоимость. Во-вторых, набор средств разработки прикладных продуктов с тем же условием дешевизны, а также непосредственный контакт с создателями средства разработки. Если пользователи не могут повлиять на процесс разработки продукта, он, скорее всего, будет заменен другим, авторы которого более «отзывчивы». И в-третьих, наличие русской документации и справочной системы. Последний фактор не является определяющим, но весьма важным. Так вот, в России сейчас происходят события, которые охватывают все три фактора.

Перейдем к деталям. С самого начала в разработке Firebird принимали участие россияне. И сейчас, например, наш соотечественник Дмитрий Еманов является одним из самых активных участников проекта. Иными словами, «наши» уже приложили свою мозолистую рабоче-крестьянскую ладонь к «птичке». К тому же использование сервера баз данных в рамках лицензии Open Source позволяет повысить относительную степень «лицензионности» местных прикладных разработок. С глубоким вздохом сожаления снова закроем глаза на тот факт, что Delphi и C++ Builder по-прежнему используются нелицензионные. Вспоминается анекдот про мужика, который должен был расплачиваться за урон после ДТП. Мужик ходил к кредитору и упрашивал скостить долг: мол, денег нет, и так все продал, что мог. Ему скинули сумму раз, другой… Когда же он пришел в третий раз с той же просьбой, кредитор возмутился — сколько можно! На что мужик ответил: не злись, я же уже меньше должен — отдаю, так сказать, потихоньку. Анекдот практически из жизни — есть шанс скинуть часть долга, если перейти от использования ворованного InterBase к Open Source Firebird. Но это не главное.

В настоящий момент параллельно разрабатывается два разных Firebird. Вам еще не страшно? А ведь это последствия многих проектов Open Source: если есть исходные тексты, легче «отпочковывать» проекты один за другим, чем договориться со всеми и писать один продукт. Часть разработчиков сочла, что надо целиком переписать существующую реализацию с нуля, назвав ее Firebird 2. Во-первых, это позволит избежать ошибок архитектуры, которые, как они считают, заложены в InterBase, а значит, и в Firebird. Во-вторых, условия лицензии позволяют закрывать исходные тексты только тех файлов, которые были целиком добавлены в проект. В итоге после полного изменения внутренней организации кода уже нельзя будет разобраться, что добавлено, а что исправлено, а значит, весь Open Source-проект можно быстренько прикрыть, вернувшись, таким образом, к продаже лицензий на использование сервера. Это прекрасно и совершенно понятно, поскольку программисты должны кушать, однако стоимость лицензий вновь рожденного Firebird 2 (если он действительно перестанет быть Open Source) наверняка превысит финансовые возможности российских разработчиков, поскольку проект ориентирован на конкуренцию с Borland, в первую очередь — на европейском рынке. В связи с предстоящими переделками и очевидным желанием оставить все права за собой компания IBPhoenix уже не столь радостно относится к участию в проекте сторонних разработчиков, а любые изменения кода, которые она считает ненужными, до сервера не добираются или добираются с большим трудом.
Упорства пробиваться через идеологические заслоны хватает не у многих, да и планы IBPhoenix к России не имеют ни малейшего отношения. И, как уже не раз бывало, Россия пошла своим путем. В конце 2001 года в Питере появился русский клон InterBase, основанный на коде Firebird. Проект был назван Yaffil («дятел», англ.). Интригующее название само по себе привлекло внимание, а уж технические характеристики нового SQL-сервера подвигнули многих профессионалов перейти на Yaffil вместо Borland InterBase или Firebird. Технической стороной проекта занимаются двое: Олег Иванов и Алексей Карякин, что позволяет не разбрасываться кодом в большой неуправляемой группе и принимать максимально согласованные решения. Уже сейчас Yaffil на Windows-платформе практически втрое обыгрывает по производительности Borland InterBase 6.5 и значительно превосходит Firebird. Выяснилось это просто — при помощи сравнительного тестирования всех трех клонов InterBase. Чтобы не изобретать велосипед, в качестве тестов были взяты стандартные условия и средства хорошо известного «конкурса красоты» серверов баз данных — TPC-R — на базе данных с коэффициентом 1.0, то есть размером около 1,5 Гбайт. Для тех, кто не знаком с принципами подобного рода тестов, поясню, что они заключаются в создании специальной тестовой базы данных, заполнении тестовыми данными, запуске серии сложных запросов, резервном копировании, восстановлении базы данных и повторении серии тех же запросов. Полученные результаты сравниваются по времени. Разумеется, немаловажную роль играет техническое обеспечение, а потому результаты тестов могут отличаться для разных платформ и компьютерных систем. InterBase, Firebird и Yaffil тестировались на платформе Windows 2000 Service Pack 2, на базе Pentium 4 2 ГГц, RAM 512 Мбайт RIMM, жесткий диск Maxtor ULTRA ATA-5 7200 объемом 40 Гбайт. Умолчания в настройках серверов не менялись, чтобы исключить возможность ухудшения результатов сравнения из-за ошибок конфигурации (использованы материалы www.interbase-world.com). Результаты превзошли все самые смелые ожидания.

Yaffil обошел конкурентов по всем важнейшим пунктам. Конечно, хороший коммерческий продукт отличает не только производительность, но и стабильность работы в реальных условиях. Сотрудники Borland неоднократно подчеркивали, что тщательно проверяют очередные версии InterBase, прежде чем пускать их в эксплуатацию. Конечно, возможностей у Borland несравненно больше, чем у авторов Yaffil, но не будем забывать, что в тестировании Yaffil участвуют уже несколько десятков групп сторонних разработчиков. Что даст лучший результат: большая статистика пользователей Borland и медленная реакция корпорации на отчеты об ошибках или небольшая, но активная группа тестеров Yaffil и быстрые отклики разработчиков на просьбы и замеченные «неисправности»? Скоро увидим. Быстродействие Yaffil было достигнуто за счет переписывания внутреннего автоматического оптимизатора сложных запросов и оптимизации кода сервера для Windows-платформы, то есть как раз той части функциональности, на которую все время указывали любители MS SQL и Oracle. Если в Yaffil удастся достигнуть уровня оптимизации запросов, близкого хотя бы к MS SQL, то последнему будет трудно предложить что-то в противовес — ни кроссплатформностью, ни особой устойчивостью к падениям системы он похвастать не может. Не будем касаться очевидных маркетинговых проблем, поскольку задавить Microsoft «простым» техническим преимуществом невозможно, однако такая цель и не ставилась. Задача у команды Yaffil гораздо более прозаическая и достижимая — предложить рынку качественный, быстрый и недорогой SQL-сервер, с поддержкой русского языка, учетом местных особенностей и прочего. Вот он, наш первый фактор.


BOEING
Как правило, Interbase используется  в малых и средних компаниях. Однако и крупные корпорации зачастую используют эту СУБД для своих нужд (что, впрочем, не исключает параллельное использование Oracle, MS SQL и др.). Зачастую Interbase используется не в конкретных продуктах, а для внутренних корпоративных нужд, поэтому совершенно необязательно искать следы Interbase в продуктах, которые вы увидите на иллюстрациях.

Второй фактор — средство разработки — начал формироваться еще в 2000 году, когда отечественная компания Devrace выпустила библиотеку прямого доступа к InterBase — FIBPlus. Сейчас она входит в число трех самых развитых продуктов этого направления в мире наряду с компонентами IBX корпорации Borland и IBObjects Джейсона Вартона. Среди российских InterBase-разработчиков библиотека FIBPlus уже давно номер один, поскольку поддерживает русский язык, имеет специальную неправдоподобно низкую цену для стран экс-СССР, а ее авторы всегда готовы внести в продукт изменения. Справедливости ради отмечу, что такая ситуация сложилась не сразу. Еще год назад FIBPlus была демонстративно ориентирована только на зарубежный рынок, так как ее продвижение в России руководство компании считало нерентабельным. И сейчас отсутствие русской документации для FIBPlus критично воспринимается разработчиками, хотя сотрудники Devrace стараются свести этот недостаток к минимуму путем активной онлайновой поддержки. Получается у них это или нет — другой вопрос. Тем не менее, библиотека FIBPlus сыграла важную роль в формировании идеи в мозгах российских программистов о том, что неплохо бы вообще-то и покупать средства разработки.
Мы переходим, вероятно, к самому больному месту — русскоязычной документации для InterBase. На самом деле, это относится не только к InterBase, но и к подавляющему большинству других продуктов. Несмотря на огромное число программистов в России, практически невозможно найти средства разработки, локализованные для русского языка. Среди продуктов Borland вы сможете найти немецкую и даже французскую версию Delphi, но о русской версии не стоит и спрашивать. То же самое касается и файлов помощи. Конечно, как говорится: господа, учите языки, но даже при знании иностранного языка читать на родном несравнимо приятнее и удобнее. Однако очевидно, что за границей российский рынок пока всерьез не принимается, а потому вкладывать деньги в перевод значительного по объему материала никто не будет. И все же документация для InterBase на русском языке есть, и появилась она еще в 1999 году. Это перевод стандартной документации от Borland InterBase 5.5, включающий пять книг и стоящий около ста долларов. Несмотря на то, что это нормальная цена за пять внушительных томов, редкие энтузиасты позволяли себе их купить. Если бы книги продавались по отдельности, быть может, они разошлись лучше. В целом же можно сказать, что русская документация была практически недоступна большинству отечественных программистов. «Была», поскольку сейчас сделан первый шаг к решению этой проблемы. Не так давно в продаже появилась первая книга по InterBase с глобальным названием «Мир InterBase», написанная Алексеем Ковязиным и Сергеем Востриковым, сотрудниками упоминавшейся компании Devrace.

«Как, спрашиваю, будем жить дальше?»

В заключение хочу обратиться к тем, кто «думает, сделать бы жизнь с кого». Так вот, делать ее вполне можно с InterBase. Или с Firebird. И уж точно — с Yaffil. Нам не раз твердили, что «крутые» проекты всегда нужно делать на «крутых» серверах типа Oracle или, на худой конец, MS SQL. Это дилетантская точка зрения. Проекты создаются на базе обеспечения, которое лучше подходит к конкретной задаче. «Подходит лучше» — это комплексное понятие, включающее в себя стоимость, трудозатраты, технические требования, профессионализм разработчиков и пр. Конечно, если программисты не умеют оптимизировать свои программы, то самый простой выход для улучшения производительности — наращивание компьютерной мощи и «приляпывание» пиратского ( в девяти случаях из десяти) Oracle для учета жалкой пары миллионов наименований. Разумеется, если менеджеры не знают, что вместо MS SQL, который работает только на Windows-платформе (а значит, требует и сервера NT/2000), можно купить Yaffil, который может работать на бесплатном Linux, прекрасно себя чувствует в многопроцессорной среде и имеет цену, учитывающую российские реалии, то они будут вынуждены тратить деньги зря.

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.