Ностальгия по Visual FoxPro

Успех и закат славы

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


Введение, или совсем чуть-чуть истории

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

Вот тогда-то и появился инструмент, которому впоследствии суждено было войти в историю индустрии разработки программного обеспечения под именем FoxPro. Началась же история этого, без преувеличений, легендарного средства разработки более четверти века назад, в уже далеком 1984 году, когда компания Fox Software начала проект под названием FoxBase. Долго ли, коротко ли, но в 1992 году компанию приобрела разросшаяся не на шутку корпорация Microsoft, и именно тогда у продукта, который уже назывался FoxPro, в названии появилась приставка Visual. Под руководством Microsoft продукт развивался и совершенствовался на протяжении последующих пятнадцати лет, до тех пор, пока в 2007 году не вышло последнее официальное обновление для Visual FoxPro - до версии 9.0 Service Pack 2. Конечно, на протяжении пятнадцати лет существования Visual FoxPro в историю продукта было вписано немало интересных страниц, но рассматривать их здесь сейчас не стоит, потому что вряд ли кому-то, кроме тех, кто плотно работал с Visual FoxPro, это будет действительно интересно, да и место, которое доступно одной отдельно взятой газетной статье, также ограничено.

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


Что такое Visual FoxPro?

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

Любое средство разработки, в первую очередь, характеризуется тем языком программирования (или несколькими из них), который оно предлагает использовать в процессе разработки программного обеспечения. В случае Visual FoxPro таким языком, соответственно, будет FoxPro. Язык этот, который может показаться уже несколько морально устаревшим с позиций сегодняшних реалий индустрии программирования, до сих пор, тем не менее, обеспечивает вполне качественное решение задач, возникающих у большинства разработчиков прикладных приложений. Язык, который закладывался в эту среду её первыми разработчиками, берет свои истоки от xBase - языка программирования, который изначально был "заточен" под работу с dBase и, конечно, сильно отличался от того языка, который был "на вооружении" людей, имевших дело с FoxPro в те годы, когда эта среда ещё даже не перешла под "покровительство" Microsoft. В Visual FoxPro в распоряжении программиста имеется мощный объектно-ориентированный язык, позволяющий легко оперировать данными благодаря непосредственно встроенным в язык операторам.


Язык программирования

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

&& Create a table
CREATE TABLE randData (iData I)
&& Populate with random data using xBase and SQL DML commands
FOR i = 1 TO 50
 APPEND BLANK
 REPLACE iData WITH (RAND() * 100)
 INSERT INTO randData (iData) VALUES (RAND() * 100)
ENDFOR
&& Place a structural index on the data
INDEX ON iData TAG iData
CLOSE ALL
&& Display ordered data using xBase-style commands
USE randData
SET ORDER TO iData
GO TOP
LIST NEXT 10 && First 10
SKIP 81
LIST NEXT 10 && Last 10
CLOSE ALL
&& Browse ordered data using SQL DML commands
SELECT * ;
 FROM randData ;
ORDER BY iData DESCENDING

Стоит отметить, что поскольку в конечном счете среда Visual FoxPro предназначалась для создания приложений, с которыми должен вести активный диалог конечный пользователь, то в распоряжении разработчика, пользующегося ею, были средства создания полноценного графического пользовательского интерфейса. С учетом того, что Visual FoxPro была ориентирована, конечно же, на создание приложений под Windows, нет ничего удивительного в том, что корпорация Microsoft постаралась снабдить разработчика такими возможностями. Благодаря поддержке объектов в языке программирования Visual FoxPro работать с элементами пользовательского интерфейса достаточно просто. Об этом красноречиво свидетельствует листинг - весьма короткий, но, смею надеяться, достаточно познавательный.

loForm = CREATEOBJECT("HiForm")
loForm.Show(1)
 DEFINE CLASS HiForm AS Form
  AutoCenter = .T.
  Caption = "Hello, World"
   ADD OBJECT lblHi as Label WITH ;
    Caption = "Hello, World!"
ENDDEFINE


Среда разработки

Как ни крути, но современное средство разработки приложений - это не только сам язык программирования, который, конечно, имеет первостепенную важность, но ещё и такая "мелочь", как среда разработки, с которой непосредственно взаимодействует программист. Поэтому поговорить о Visual FoxPro именно с этой позиции будет, я так полагаю, далеко не лишним.

Давно уже прошло то время, когда среды разработки от Microsoft подвергались повсеместной критике и вызывали желание закрыть их поскорее. Конечно, если сравнивать Visual FoxPro с более современными средами разработки, то можно найти ряд достаточно заметных для глаза несоответствий новейшим стандартам. Но если вспомнить о том, что речь идет о программном продукте, последний раз обновлявшемся несколько лет назад, то можно утверждать, что тогдашним стандартам Visual FoxPro соответствует на 100%.

На самом же деле, среда Visual FoxPro, как и другие продукты, названия которых начинаются с "Visual", весьма дружелюбна к разработчику. Подсветка синтаксиса кода, разнообразные подсказки по ходу написания кода, отладчик (какая же интегрированная среда разработки без него?), визуальный редактор форм, существенно упрощающий жизнь разработчика при проектировании интерфейса... В общем, как ни крути, среда разработки, созданная крупнейшим в мире разработчиком софта, так или иначе должна была соответствовать этому высокому званию.


Закат

Возвращаясь к вопросу о том, почему дальнейшая разработка Visual FoxPro была прекращена, стоит обратиться к первоисточнику - то есть, к объяснениям, которые дала по этому поводу сама корпорация Microsoft.

Во-первых, по словам представителей корпорации, дальнейшее развитие этого программного продукта не мыслилось без создания его 64-битной версии. Для этого пришлось бы практически полностью переписывать "ядро" Visual FoxPro, что не входило в планы Microsoft. Во-вторых, дальнейшее развитие Visual FoxPro - продукта, использовавшего собственный "движок" для работы с базами данных, - выглядело не слишком логично в свете достаточно солидных инвестиций в создание полноценной промышленной СУБД SQL Server, имеющей бесплатную версию SQL Server Express Edition, практически полностью покрывающую потребности большинства пользователей Visual FoxPro. Ну а в-третьих, популярность Visual FoxPro стабильно снижалась, и слухи о том, что это средство разработки планируется перестать совершенствовать, ходили ещё с начала 2000-х годов.


Visual FoxPro сегодня

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

Если вдруг вам понадобится когда-нибудь освоить этот инструмент разработки, то на помощь придет замечательный русскоязычный ресурс по Visual FoxPro - www.foxclub.ru. Ну и, конечно, не стоит забывать о печатной (и отсканированной) литературе, которой за годы существования Visual FoxPro было выпущено изрядное количество.

Вадим СТАНКЕВИЧ,
[email protected]

Версия для печатиВерсия для печати

Номер: 

11 за 2010 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя Al
Очередная статья ни о чем, больше похожая на некролог ("был", "было"). И что значит "2007 году вышло последнее официальное обновление для Visual FoxPro - до версии 2.0 Service Pack 2", если последняя версия - 9-я?

"можно увидеть основные черты, присущие коду на этом языке - то есть, возможность работы с объектами и прозрачность работы с базами данных." И где это в примере кода работа с объектами? Где там ООП?

"если сравнивать Visual FoxPro с более современными средами разработки, то можно найти ряд достаточно заметных для глаза несоответствий новейшим стандартам." - С какими? Каким? Слова...

Я бы еще добавил, что FoxPro является самым быстрой СУБД из семейства dBase. Это мы тестировали на различных одинаковых задачах, сравнивая FoxPro, Paradox, Clipper и не помню еще какой. Фокс опережал местами в разы.

В общем, не то, не так, ни о чем... ))) Таково мое скромное мнение бывшего одного из лучших фоксистов БССР.

Аватар пользователя Вадим Станкевич
Версия, конечно, была 9.0 - пардон, опечатка.

>>В общем, не то, не так, ни о чем... )))

Давайте предметнее обсудим, как стоило бы правильно. Пока, кроме сравнений по скорости, предметных предложений не вижу:)

Аватар пользователя Al
Вадим, я считаю, что нельзя объять необъятное. Если писать о фоксе, то это по большому счету тема объемом с книгу. А кратко... Ну, слету так скажу - перечень xBase'ных языков основных. Почему выжил только один. За что его любят программисты. Оптимальные системные требования. Чем хорош для юзера - состав поставки для юзера, объем, скорость работы. Оптимальные базы, их размер. Недостатки по сравнению с реляционными базами типа Oracle, MS SQL... что-то так... Т.е. поменьше слов, побольше конкретики. Я понимаю, что без хорошей практики и толкового общения с коллегами такое написать и так писать трудно, но читать было бы интересно.
Аватар пользователя Вадим Станкевич
Спасибо, теперь уловил Вашу мысль.
Аватар пользователя Boban
Неплохо было бы в статье отразить основные направления миграции фокс-программистов.
Аватар пользователя Boban
Про сбор подписей фокс-программистов всего мира против закрытия продукта не отражено. Можно было бы и ссылку на сайт акции дать.