ИНСТРУМЕНТЫ РАЗРАБОТКИ
Корпорация Microsoft объявила о предстоящем выпуске в начале следующего года очередной версии одного из своих старейших средств разработки - Visual FoxPro 9.0. Прочитав это сообщение, большинство читателей наверняка подумает (а может быть, и воскликнет): "FoxPro? Он еще жив!?" А кто-то из разработчиков-ветеранов посетует: "Да, жаль что мы поспешили расстаться с FoxPro, поддавшись разговорам о его скорой кончине в середине 90-х годов". А те, кто до сих пор использует этот инструмент, могут с гордостью сказать: "Вот что значит мнение консолидированного сообщества разработчиков! Учитесь, конкуренты - всякие там Clipper, Visual Basic и пр!".
Период расцвета Xbase
Средства разработки Xbase (с использованием баз данных формата DBF и языка типа dBase) - это целая эпоха в развитии современной вычислительной техники. Во многом благодаря именно им персональные компьютеры с середины 80-х годов начали завоевывать рынок автоматизации предприятий - сначала малых, потом средних, затем... По традиции их часто называли СУБД, что было не совсем верно: они имели достаточно развитые средства программирования и создания пользовательского интерфейса и позволяли писать приложения весьма широкого класса. В соответствии с современной терминологией, наверное, их было бы правильнее обозначать как средства разработки БД-ориентированных (DB-based) приложений. Можно также вспомнить, что Xbase-инструменты тех DOS’овских времен были одними из родоначальников направления будущих интегрированных средств быстрой Windows-разработки.
Команда разработчиков Microsoft Visual FoxPro 9.0
Популярность Xbase-средств была огромной, ее пик пришелся на рубеж 80-90-х годов, когда началась скупка ведущих игроков данного рынка более крупными ИТ-компаниями: в 1991 г. Borland приобрела Ashton-Tate (продукт dBase), Computer Associates - Nantucket (Clipper). В 1992-м к ним подключилась и Microsoft, купив Fox Software вместе с ее инструментом FoxPro (он пришел на смену решению FoxBase за три года до этого)*1.
_____
*1 С историей FoxPro можно познакомиться по адресу: www.foxprohistory.org.
Подобный шаг Редмонда выглядел не очень разумным: у компании уже имелся достаточно хороший набор средств разработки, а стратегические перспективы развития Xbase-направления нельзя было назвать очевидными. Однако логика действий Microsoft стала понятной в середине 90-х: такие шаги определялись необходимостью ускоренного перевода сообщества независимых разработчиков из DOS в Windows и далее из Win16 в Win32.
Появление в арсенале Microsoft новой СУБД оказалось очень важным и для только что открытого (в конце 1992 г.) в России представительства корпорации. Дело в том, что в решении задачи общего продвижения продуктов компании сообществу независимых разработчиков всегда отводилась особая роль. Но в России традиционный инструментарий Microsoft (Basic, C/C++, Access) был представлен в тот момент очень слабо, так что приобретение пользовавшегося в нашей стране большой популярностью FoxPro пришлось кстати.
Тут можно вспомнить, что формирование российского сообщества разработчиков Microsoft началось как раз с FoxPro. Именно ему была полностью посвящена первая российская конференция Microsoft DevCon’94; продукт занимал заметное место и потом, в течение всего периода проведения этого крупного ежегодного мероприятия (до 1998 г. включительно). В середине 90-х FoxPro 3.0 стал первым инструментальным средством Microsoft с переведенной на русский язык документацией.
После кризиса открылось второе дыхание
1996-й стал кризисным для FoxPro - в начале года пошли слухи о прекращении его развития корпорацией Microsoft. Впрочем, такой ход событий был вполне прогнозируемым. К середине 90-х годов стало ясно, что потенциал модернизации баз данных класса xBase, во многом основанных на архитектурных возможностях DOS, уже в значительной степени исчерпан. "Снизу" (небольшие БД и клиентские приложения) их активно теснили системы быстрой разработки (Visual Basic, Delphi), а путь "наверх" - к созданию серверных корпоративных решений - перекрывался SQL-системами.
Разработка Web-сервисов в среде Visual FoxPro
Еще одна причина проблем Xbase - фактическое исчезновение этого стандарта баз данных, из-за чего в начале 90-х была утеряна совместимость различных систем этого типа на уровне как структуры файлов, так и языка программирования. Отход от стандарта объяснялся, с одной стороны, конкурентной борьбой внутри Xbase-поставщиков, с другой - желанием увеличить мощность БД (объемов, производительности) за счет неординарных решений*1. В результате в 1996 г. комитет по стандартизации Xbase объявил о прекращении своей деятельности, объяснив это тем, что "никто больше не заинтересован в поддержке данного стандарта".
_____
*1 Ситуация довольно характерная и поучительная для независимых сообществ пользователей публичных стандартов. Об этом нужно помнить нынешним приверженцам Java и Linux.
Что же касается самой Microsoft, то FoxPro к середине 90-х уже явно не вписывался в структуру средств разработки корпорации, испытывая давление сразу с трех сторон: Visual Basic (быстрая разработка), MS Access (настольные базы данных) и MS SQL Server (серверные базы данных). В 1995 г. компания выпустила (одновременно с Windows 95) свою первую версию Visual FoxPro (VFP) 3.0, причем сразу 32-разрядную (VB4 тогда же был представлен в двух вариантах - 16- и 32-разрядных). Но пользователи FoxPro, большинство из которых еще работало в DOS, явно не спешили переходить в новую среду.
Когда анализируешь сейчас дискуссии тех времен, складывается впечатление, что Microsoft сама была источником туманных слухов: она проверяла на прочность сообщество FoxPro-пользователей (их готовность к переходу в среду VB и SQL), одновременно демонстрируя необходимость скорейшей миграции на 32-разрядную платформу. Как бы то ни было, сообщество пользователей FoxPro, а заодно и всех других Xbase-продуктов заметно активизировалось, обсуждая перспективы своего развития и требуя от Microsoft объяснений.
Реагируя на это, корпорация в конце весны 1996 г. опубликовала "Открытое письмо сообществу разработчиков FoxPro", в котором пообещала не бросать их на произвол судьбы, но при этом не сообщала конкретных планов развития системы. Осенью была выпущена следующая версия продукта VFP 5.0 (с реализацией объектно-ориентированного программирования), которая спустя какое-то время вошла в состав первого объединенного набора средств разработки Microsoft - Visual Studio 97.
И все же стратегические перспективы развития VSP продолжали оставаться туманными: большинство экспертов считало, что система обречена на замену новыми средствами разработки. Поэтому появление через два года последней версии VFP 6.0 (в том числе и в составе нового Visual Studio 6.0) многих удивило, а заявление Microsoft о том, что корпорация продолжает считать VFP одним из стратегических средств разработки и гарантирует его развитие в будущем, было отнесено к разряду успокоительных деклараций. Тем более что в 2000 г. Microsoft объявила о создании новой платформы .NET и интегрированного инструментария Visual Studio .NET следующего поколения, в котором FoxPro даже не упоминался. Казалось, времена Xbase остались в прошлом столетии и VFP разделил участь своих собратьев (CA прекратила развитие Clipper в середине 90-х, Borland продала в 1999 г. dBase-бизнес компании Ksoft, из которой, в свою очередь, сразу же выделилась небольшая фирма dBase).
Однако далее произошло нечто невероятное: в 2001 г. почти одновременно с выпуском Visual Studio .NET корпорация Microsoft представила очередную версию FoxPro 7.0, которая уже не входила в состав объединенного пакета инструментальных средств корпорации*1.
_____
*1 На последних двух конференциях Microsoft Professional Conference, на которых мне удалось побывать (2001 и 2003 гг.), тематика FoxPro вообще не присутствовала. Но при этом по ней регулярно проходят специализированные мероприятия.
Почему Microsoft, отличающаяся достаточно жесткой линией в отношении перевода своих пользователей на новые архитектурные решения, посчитала нужным сохранить FoxPro - это остается загадкой. Конечно, можно говорить о большой инсталлированной базе приложений, но их техническая поддержка может выполняться без выпуска новых версий инструментария. Ссылка на интересы сообщества FoxPro-разработчиков выглядит тоже не очень убедительно: в лучшие годы их число не превышало 200 тыс. человек. Для примера: популярность VB 6 оценивалась в 2001 г. на порядок выше, но это не помешало Microsoft (несмотря на активное протесты VB-программистов) "железной рукой" поставить их перед необходимостью перехода в качественно новую (несовместимую с предыдущими версиями) среду VB.NET.
Новшества Visual FoxPro 9.0
Одно из самых главных достоинств инструмента - его полная совместимость с предыдущими версиями VFP и даже приложениями, написанными 20 лет назад в среде dBase II. Обладая собственным внутренним механизмом управления реляционной БД, тесной взаимосвязью между языком и данными, полноценными возможностями объектно-ориентированного программирования и широким спектром функций VFP 9.0 позволяет создавать производительные, масштабируемые БД-ориентированные решения (настольные, клиент-серверные и Web) с поддержкой баз данных с таблицами объемом до 2 Гб. При этом VFP 9.0 выгодно отличается от других инструментов Microsoft умеренными системными требованиями (Windows 2000, любой Pentium II, 128 Мб ОЗУ) и высокой эффективностью разрабатываемых приложений (производительность, размеры БД и программного кода).
VFP пока избежал участи перевода в среду .NET, он сам и создаваемые с его помощью приложения предназначены для работы в традиционной Windows с COM-архитектурой. Он не использует принцип управляемого кода, при этом язык FoxPro сохраняет высокую эффективность - на нем написаны многие компоненты самого инструмента. В то же время улучшение интеграции с .NET-приложениями - одно из главных направлений развития VFP. С помощью VFP 9.0 можно создавать Web-сервисы и COM-компоненты, при этом существенно упростилось их взаимодействие с .NET-приложениями.
VFP последние годы применяется и для мобильных решений. Теперь на его базе можно разрабатывать и приложения для планшетных компьютеров под управлением Windows XP Tablet PC.
Значительное число новшеств связано с механизмом управления данными. Все годы существования VFP особое внимание уделяется поддержке SQL-запросов и взаимодействию с MS SQL Server. С этой целью в версии 9.0 реализованы новые типы данных, сняты многие ограничения SQL-языка, введены дополнительные типы индексов, усилена работа с удаленными данными и т. д. Модифицированный XML Adapter обеспечивает улучшенную поддержку иерархических XML- и XSD-схем.
VFP в силу своей предметной нацеленности всегда отличался достаточно мощной системой формирования отчетов. Эти возможности расширены за счет новых архитектурных решений, повышающих возможности управления выводом и форматирования данных. Например, в отчетах теперь поддерживаются связи "один ко многим", пользователь может гибко настраивать окно Print Preview, отчеты способны работать с различными форматами исходных данных (в том числе XML, HTML и графическими).
Целый ряд улучшений и модификаций VFP 9.0 связан с изменениями в интегрированной среде разработки, библиотеках FoxPro Foundation Classes, синтаксисе языка программирования, элементах управления и т. д.
В то же время, говоря о развитии VFP, нужно отметить, что Microsoft не считает нужным принимать радикальные шаги по повышению масштабируемости создаваемых приложений, сохраняя дистанцию между VFP и своими стратегическими инструментами (SQL Server, Visual studio .NET). Так, корпорация объявила, что у нее нет планов по увеличению нынешнего объема БД FoxPro, составляющего 2 Гб (для SQL Server 2005 Express - продукта для малых предприятий - граница повышена до 4 Гб) , а также по созданию 64-разрядных приложений (это будет реализовано в VS.NET 2005).
15 лет безупречной службы
Сегодня, в эпоху глобализации ИТ-мира, когда, казалось бы, каждый разработчик должен однозначно ответить на вопрос: "Ты за кого - за Java или C#?" ("...Windows или Linux?", "...Oracle или SQL Server?" и пр.), ответ "за FoxPro, DBF" выглядит как-то несовременно и не очень солидно. Но тут полезно напомнить, что швейцарский армейский нож - это, конечно, не автомат Калашникова, но вещь в солдатском снаряжении по-прежнему очень полезная...
Наличие подобных нейтральных, нишевых инструментов - дело вполне естественное, мир средств разработки состоит не только из Visual Studio, IBM WebSphere Studio и Borland Jbuilder. Но уникальность FoxPro заключается в том, что он является безусловным рекордсменом-долгожителем на современном ИТ-рынке: в 2004 г. он отметил свой 15-летний юбилей присутствия на рынке! В чем причина этого - может быть, в неуклонной поддержке совместимости по форматам данных и синтаксису языка? Или в особой сплоченности FoxPro-сообщества? На такой вопрос сложно дать однозначный ответ, как и сделать прогноз о перспективах развития этой системы разработки (особенно принимая во внимание былые пророчества о скорой смерти всех Xbase-продуктов).
Так или иначе, FoxPro продолжает пользоваться устойчивым спросом. По информации московского офиса Microsoft, российское сообщество VFP-разработчиков хотя и не столь значительно, как 7-10 лет назад, но все же достаточно устойчиво и представительно. И несмотря на то что продвижение данного продукта уже несколько лет не входит в число приоритетов в России (о его локализации уже давно все забыли), вполне вероятно, что будущей весной "Майкрософт Рус" проведет технические мероприятия, посвященные презентации версии Visual FoxPro 9.0.
Согласно информации Microsoft, продукт VFP 9.0 должен быть отправлен в производство в последних числах нынешнего года. Почти одновременно он станет доступен подписчикам MSDN. Спустя еще два-три месяца на рынке появятся его коробочные версии: полный вариант продукта будет стоить 650 долл., версия Upgrade - 350 долл., академический выпуск - 75 долл.