世界を動かす技術を、日本語で。

マイクロソフトは2007年にFoxProを終了させました。それでも、こちらが復活したFoxProです。

2026年9月23日原文(foxscript.org)

概要

FoxDev Studio は、既存のVisual FoxProアプリケーションを 現代環境でそのまま動作 させる新しいIDE。 プロジェクトやデータ の変換不要、既存ファイルを直接開いて編集可能。 64ビット化 により、テーブルサイズやメモリ制限を大幅に拡張。 旧32ビットアドインやシステム連携 も継続利用が可能。 FoxScript によるWeb対応や新機能追加、MITライセンスで公開。

FoxDev Studioとは

  • Visual FoxPro アプリケーションを 最新マシン でそのまま実行可能なIDE
  • プロジェクト、フォーム、テーブル を変換やエクスポートなしで直接開く仕組み
  • 古いフォルダ を指定するだけで、そのままの状態で作業再開が可能
  • デザイナーやデバッガ もVisual FoxProと同様の操作感を維持
  • データファイル(テーブル、インデックス、メモ) は元の形式のまま直接読み書き
  • 既存のシステムコールや自動化オブジェクト、アドイン も引き続きサポート
  • IDE画面 や実際の動作例も公式サイトで公開

64ビット化による拡張

  • Visual FoxProは32ビット のため、テーブルやメモファイルは2GB制限
  • FoxDev Studioは64ビット完全対応
    • ファイルオフセットも64ビット 化し、テーブル容量が数百GB~TBまで拡張
    • 2GBを超えたテーブル はVisual FoxProでは再度開けないため、片道運用に注意
  • パフォーマンスや安定性 も大幅向上

仮想マシンとコンパイラ

  • Rust製のコンパイラ・バイトコードインタプリタ を内蔵し、WebAssembly上で動作
  • エディタの構文チェック も実行時のコンパイラと同一ロジックで整合性を確保
  • プログラム実行はノンブロッキング で、UIのフリーズやイベント遅延を防止
  • フォームやオブジェクトはReactで描画 し、部分的な再描画で高速化

32ビットアドインとの連携

  • 旧32ビットの.fllライブラリ も専用32ビットプロセス経由でロード可能
  • DECLARE ... DLLや自動化オブジェクト は64ビットネイティブで直接利用
  • 古い資産も新機能も混在運用 が可能

FoxScriptとWeb対応

  • FoxScript は既存FoxPro言語にラムダやWebサーバ等の機能を追加
  • HTTP APIやJSON対応 で、WebアプリやAPIサーバも構築可能
  • 既存コード資産を活かしたままWeb化 が可能

ダウンロード・ライセンス・開発状況

  • Windows(インストーラ/ランタイム)、Linux(AppImage/.deb)、ソースコード をGitHubで公開
  • MITライセンス で無償利用可能
  • ドキュメントやロードマップ も公式で整備
  • レポート機能や2GB超テーブル対応 など、今後の拡張も予定

まとめ・背景

  • Visual FoxProは2007年のv9で開発終了
    • 多くの業務アプリ が32ビット資産として現役稼働中
  • FoxDev Studio は 資産を活かしつつ現代化 を実現する新プラットフォーム
  • Rust/WASMベース、64ビット化、Web対応 など現代的な技術で再構築
  • 変換・再設計不要 で、既存アプリの延命やモダナイズに最適な選択肢

Hackerたちの意見

参入障壁が低くて、開発者の生産性が高くて、カスタマイズ性があって「独自のビジネスプロセスに非常に適合した」アプリができるのは本当にクールなんだけど、これらのシステムが基盤となるプラットフォームの能力を超えちゃうと、マジで辛いよね。今のクソみたいなオーバーレイネットワーク技術を使って「ネットワークドライブ」でDBFファイルにアクセスしようとする企業のことを考えるとゾッとする。アプリへのシームレスなリモートアクセスができないのが、Visual FoxProアプリの失敗するポイントだよね。見た目はいいけど、実際にそれで仕事したくはないな。クライアント/サーバー型のデータベースが透明に組み込まれたらいいのに。

└

これらのシステムが基盤となるプラットフォームの能力を超えちゃうと辛い。確かにそうだけど、今はAIでどうなんだろう?90年代は本当に辛かったよね。あの頃とは状況が違うけど、今の方がいいツールがあるから、未来はもっと良くなるって楽観的に思ってる。

└

いやー、面白い話がたくさんあるよ。今でもこれをやってる会社がいくつもあるんだ。VFPとCitrixを使って何ができるか、驚くかもしれないし、逆にゾッとするかもしれないよ。

最近これについて話さなきゃいけなかったんだ!俺のちょっと変わった名声の一つは、数年前にVisual FoxProのデータベースファイルをPostgreSQLに変換するツールを作ったことなんだ。しばらくの間、古いVFPアプリでデータ入力をするためにcronジョブとして動かしてたけど、他の人たちはPostgresバックエンドのウェブアプリで速いレポートを出せるようにしてた。見た目は良くなかったけど、すごくうまくいって、あの古いスタックから脱出する手助けになったよ。[0]https://github.com/kstrauser/pgdbf

2006年に医者のオフィスで働いてたんだけど、リードの医師がVisual FoxProを使って患者追跡のシステムを作ってたんだ。もう、ひどいもので、ネットワークドライブ越しに使うとファイルロックや同じレコードを複数人が変更する問題が起きてた(たいてい医師とフロントスタッフが患者をチェックアウトする時に)。なんとか医師を説得して、.NET WinFormsとASP.NET RPCコールを使ったちゃんとしたクライアント/サーバーアーキテクチャに切り替えさせたら、問題は全部解決したし、スタッフがアプリの上部に自分たちにとって重要な情報を表示できるようにインターフェースを編集できるようにしたんだ。ラボテストのフォームをXMLで作ったから、X/Y座標を好きな場所に移動できるようにしたんだ。これは俺が考えた機能じゃなくて、医師が技術を見てどう動くかを理解した結果なんだ(幸運なことにビジネスとセキュリティのロジックはサーバーにあったから、悪意のある人ができるのは自分のローカルコピーを壊すことだけだった)。

└

AIが出る前に見た恐れの一つは、ある同僚が.NETでリクエストの画面を作ってて、ユーザーがレコードを読み、編集し、書き込むことができるようになってたこと。最後にレコードを書き込んだ人が勝ちってわけ。小規模な会社のITでは、AIが実際にコードの質を改善してくれることを願ってる。たまに「いくつかのレコードを落とす」ようなレース条件のノーロックコードを書いてる人たちが、フォーラムにコードを投稿することはないといいな、もし投稿したらボロクソに叩かれるだろうし。だから、彼らは「やってはいけないこと」としてトレーニングデータにしか含まれないことを願ってる。

└

DBase/Fox Proは、ローカルネットワークが一般的でなかった時代に生まれたもので、シングルユーザー向けのバッテリー内蔵IDEとして優れていたんだ。今これを言われると、今の時代にはそのままでは機能しない理由がわかる。マルチユーザーにするのはそんなに難しくないと思うし、今ではもう解決された問題だよね。

└

ネットワークPCと迅速なアプリケーション開発プラットフォームが人気になったとき、医者ハッカーたちが自分たちの欲しいものを知っていて、なんとか部分的に動かす技術力があったため、カスタム電子健康記録やプラクティスマネジメントアプリケーションの「カンブリア爆発」が起きたんだ。それらは徐々に消えていったけど、商業製品が改善され続け、セキュリティや相互運用性の要件を満たすコストが増加していったからね。でも、AIコーディングツールとヘッドレスEHRプラットフォーム(セキュリティ、ストレージ、APIが組み込まれてる)が組み合わさったことで、実際に動くカスタムEHRを作るのが簡単になったから、サイクルは再び繰り返されると思うよ。

FoxProをどんな形でも復活させるのが難しい理由は、データベースコンテナ(DBC)の設計に大きなセキュリティホールがあるからなんだ。DBCが役立つためには、すべてのユーザーが読み書きできる必要がある(権限の仕組みがない)。DBCには、FoxProのコードを実行できるストアドプロシージャがあって、FoxProランタイムからのWin32コールも含まれてる。ストアドプロシージャは「メモ」フィールドにプレーンテキストとして保存されてる。これがどうなるか分かる?ちょっとした技術知識があれば、そのINSERTトリガーを好きなように変更できるんだ。EDIT: データベースはファイルシステム内のファイルに過ぎないから、テキストエディタを使って修正できて、FoxProランタイムのチェックをバイパスできる。FoxProはそこにあるものをそのまま実行するだけ。俺のおすすめは、DBF/DBCファイルを早急に廃止して、何らかのSQLデータベースに移行することだ。ソースコードがあるなら、ODBCやOLE DBを使ってサーバーを指すべきだよ。ソース: 20年以上前にFoxチームで働いてた時にそのバグを報告した。いや、DBエンジンの動作の大部分を再構築しない限り、修正されることはなかった。

└

誰かがFoxProのコアアイデアをSQLiteの上に乗せてくれないかな。

└

オハイオ州の州務長官が「認定」した(言葉はちょっと違うけど、意味はわかるよね)投票者登録データベースの一つがVFPで書かれてるんだ。ソフトウェアは有権者のリスト、住所、署名のスキャンを管理してる。最近、州務長官の指示に従ってTOTPの「MFA」が追加されたんだ。ソフトを使う人は、データベースファイルを直接開くだけでいい。ファイルサーバーの共有フォルダにあるDBFファイルだからね。全ユーザーはファイルへの読み書きアクセスが必要で、そうじゃないとアプリが動かない。ほんと、頭を抱えちゃうよ。

└

ありがとう、ここで一番役立つコメントだね。FoxDevはVFPと同じようにDBCを読み取るから、今はその穴をそのまま引き継いでる。ランタイムは実際に修正できる唯一の場所なんだ。ストアドプロシージャのテキストのハッシュをビルドされた実行ファイルに入れて、プロシージャが一致しないコンテナは実行しないようにするつもり。リストに追加するね。君のコメントをこの問題に引用してもいいかな?

Hacker Newsで議論の続きを見る