これ、凄いね!
Microsoft Visual Basic 6.0の後、Microsoftは、.net上で動作するVisual Basicに移行しました。
憶測ですが、Javaの件でSun Microsystemsとの裁判で負け、オルタナティブJavaとしてのC#で、MicrosoftがJavaでやりたかったことをするために、Visual Basicは巻き込まれた感じです。
Visual Basic 6.0の開発者は、次のVisual Basicとして、.net Framework上で動くVisual Basic .netへの移行をせざるを得ませんでした。Visual Basic .netの言語仕様は、Visual Basic 6.0のものとはずいぶん異なり、仕様の進化的には正しいのだろうと思いながらも、既存の資産を全く生かせない仕様変更に途方にくれました。
.net Frameworkは、ライバル「Javaのバージョンと仕様」と 争うように、どんどんバージョンアップし、C#を旗艦言語とし、Visual Basicは置いてきぼり状態。
OSも、いつの間にか32ビット版OSが無くなり、Visual Basic 6.0開発環境をインストールできるOSは、仮想環境のみとなりました。
飼っていたVisual Basic 6.0の開発環境がインストールされている仮想OSのサーバーであるVirtualBoxとHyper-Vの相性は最悪で、Windows 11ではVisual Basic 6.0のソースを弄ることが困難になっています。
不思議なことに、ExcelなどのOfficeに内蔵されるVisual Basic for Applications(VBA)の言語仕様は、Visual Basic 6.0とほとんど変わることもなく、現時点でのVBAのバージョンは、7.1でx64なAPIをコールできるように仕様の拡張がされており、Microsoftは放置しているわけではないが、積極的に弄ることもしない、というスタンスに見えます。
Googleさんの検索で、AI検索が導入され、自然言語での問い合わせに答えてくれるようになったので、「Visual Basic 6.0のクラシックBasicの後継となりそうなものって存在する?」と聞いてみたところ、twinBASICを紹介された次第です。
これこそ、Visual Basic 6.0の開発者が、Microsoftにやってほしかった次期Visual Basicだったのでは!?と思わせる出来です。
もう、これがVisual Basicの直系となる開発ツールで良いと思う。
現在はベータバージョンで完成間際というところのようですが、現時点でもなかなかの出来です。もしかして、VB De FilMtnとか移植できそう?と夢が見れそうです。
以下は、Google検索さんがまとめたtwinBASICの良いところです。
twinBASICの素晴らしい点は、
Visual Basic 6.0(VB6)やVBAとの互換性を保ちながら、最新の言語機能と開発環境を提供していることです。これにより、既存の資産を活かしつつ、最新の開発手法や技術を取り入れることができます。
以下に、twinBASICの主な特長をまとめます。
1. VB6/VBAとの高い互換性
コードの完全移植: 既存のVB6やVBAのプロジェクトをtwinBASICにインポートし、ほとんど修正なしで実行できます。
バグ修正と再現: 古いVB6/VBAコンパイラーにあった既知のバグや、特殊な挙動が忠実に再現されつつ修正されているため、安心して移行できます。
2. 最新の言語機能
64ビットコンパイル: 64ビットネイティブコードのコンパイルに対応しているため、VB6では実現できなかった64ビットアプリケーションを作成できます。
ジェネリクス: 再利用可能で型安全なコードを書くためのジェネリクスをサポートしています。
オーバーロード: メソッドのオーバーロードに対応しており、より柔軟なプログラミングが可能です。
継承: クラスの継承をサポートし、オブジェクト指向の機能を強化しています。
Unicodeの完全サポート: 開発環境とコントロールの両方で、Unicodeを完全にサポートします。
マルチスレッド: 低レベルのAPI呼び出しではありますが、マルチスレッドをサポートしています。
3. 現代的な開発環境
統合開発環境(IDE): 最新のモダンな専用IDEが提供されています。
Monacoベースのコードエディター: VS Codeでも使われているMonacoエディターが採用されており、高機能なコード編集が可能です。
テーマ: ダークテーマとライトテーマの両方に対応しています。
リアルタイムのエラー診断: プロジェクト全体のエラーをリアルタイムに診断し、表示する機能があります。
4. 実行環境の改善
ランタイム不要なEXE: 独立した実行ファイル(EXE)やDLLを生成でき、VB6のように特定のランタイムを必要としません。
パフォーマンス向上: コンパイルプロセスの高速化や、最適化されたコンパイルオプション(Professional Edition)により、生成されるアプリケーションのパフォーマンスが向上します。
5. その他のメリット
ロイヤリティフリー: twinBASICで作成した商用製品は、ロイヤリティフリーで販売できます。
活発な開発: 公開ベータ版のリリース以降、活発に機能追加やバグ修正が行われています。
コミュニティの存在: DiscordやGitHubを通じて、開発者同士のコミュニティが形成されています。
まとめると、twinBASICは過去の資産を保護しつつ、現代的な機能と開発手法を取り入れたいVB6/VBA開発者にとって、非常に魅力的な選択肢となります。時代遅れになりつつあったBASIC言語を、最新のプラットフォームで活用できる可能性を大きく広げます。
