Foxpro умер в 2007-м, но кто-то его воскрешает

23.09.2026 · 5 мин

Меня всегда удивляло, как умирают технологии: не в бою, а тихо, по решению сверху. Microsoft закрыла Visual FoxPro в 2007 году — и будто бы вычеркнула его из истории.

Что именно воскресили

На FoxScript.org я увидел попытку вернуть эту платформу к жизни. Речь не о простой поддержке старого кода, а о полноценном воссоздании среды разработки — FoxDev Studio.

Авторы проекта не стали делать эмулятор или обёртку над прежним движком. Они написали runtime с нуля, но так, чтобы поведение совпадало с оригинальным Visual FoxPro.

Представьте: вы открываете папку с проектом, который не трогали пятнадцать лет. Формы, отчёты, меню — всё на месте. Никакой миграции, никакого экспорта. Просто открываете и работаете.

Редактор и отладчик — формы, классы, меню и отчёты открываются прямо из файлов. Отладчик останавливается на нужной строке, показывает стек вызовов, локальные переменные и watches.

Базы данных — таблицы, индексы и memo-поля читаются и пишутся на месте. Файл на диске остаётся тем же файлом, что и был.

Совместимость — старые системные вызовы, COM-объекты и библиотеки .fll продолжают работать без переписывания.

FoxScript — лямбда-функции, отвечающие на HTTP-запросы. Для 2024 года это звучит необычно, но для FoxPro-разработчиков это шанс запустить свой код в вебе без полной миграции.

АРХИТЕКТУРА FOXDEV STUDIO
──────────────────────────
┌─────────────────────────────────────────────────────────┐
│                    64-БИТНОЕ ЯДРО                      │
├─────────────────┬─────────────────┬─────────────────────┤
│   React-слой    │  WebAssembly VM │   Хост-процесс      │
│   (отрисовка    │  (исполнение    │   (файлы, таблицы,  │
│   интерфейса)   │   байткода в    │   COM, 64-битные    │
│                 │   браузере)     │   библиотеки)       │
└─────────────────┴─────────────────┴─────────────────────┘
                        │
           32-битные .fll библиотеки
           (через прослойку в хосте)
Четыре компонента: интерфейс, виртуальная машина, хост и мост к старым библиотекам

Главное: 64 бита вместо 32

Здесь оригинал упирался в потолок. Visual FoxPro был 32-битной программой, и это задавало жёсткие лимиты:

Причина проста: 32-битные числа со знаком. Максимум — 2 147 483 647. Это примерно 2 ГБ, а не 4, потому что один бит уходит под знак.

FoxDev Studio полностью 64-битная. Разработчики утверждают, что теперь offsets — то есть смещения в файле — тоже 64-битные, и каждый байт чтения и записи адресуется напрямую.

Важно и предупреждение: таблица, выросшая выше 2 ГБ, не откроется в оригинальном Visual FoxPro. Это односторонняя дверь.

ОГРАНИЧЕНИЯ РАЗМЕРА ТАБЛИЦЫ
────────────────────────────
Visual FoxPro (32 бита):
┌────────────────────────┐
│▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓│ ← 2 ГБ max
└────────────────────────┘

FoxDev Studio (64 бита):
┌─────────────────────────────────────────────────────────┐
│▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓│
└─────────────────────────────────────────────────────────┘ ← 9.2 ЭБ max
  (9 223 372 036 854 775 807 байт — физический предел)
Старый лимит был около 2 ГБ, новый — теоретически почти недостижим для обычных сценариев

Зачем это нужно

Тут возникает главный вопрос: кому вообще нужен FoxPro в 2024 году?

Во-первых, компаниям с legacy-системами. Бизнес-логика, написанная двадцать лет назад, часто работает до сих пор. Переписывать её дорого и рискованно.

Во-вторых, разработчикам, которые выросли на этой экосистеме. Не все хотят переучиваться на новые стеки ради моды.

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

На сайте утверждают, что из 1 722 элементов справочника Visual FoxPro 9 реализовано 1 534. Остальное либо не реализовано сознательно, либо ещё ждёт своей очереди.

Выводы

Это не история для всех. Если вы начинающий разработчик, FoxPro — скорее технологическая археология, чем будущее.

Но если у вас есть legacy-система, которую нужно оживить без переписывания, такой проект может быть очень полезен.

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

Ссылки

Дмитрий Полухин — продуктовый дизайнер. Пишу про разработку, AI и дизайн интерфейсов. Обо мне, контакты и профили.