はじめに
これは、Visual Basic Advent Calendar 2021の23日目の記事となります。
以前にRAD Basicを紹介しましたが、twinBasicもVB6.0の互換性+拡張を目指して開発中です。
【2024/09/30更新】
twinBASICのロードマップです。暫定Ver 1.0 リリース:2024年10月1日2024年12月31日
2024/01/13に VBForums に twinBASIC 専用フォーラムが出来ました。
twinBASICで作成したアプリケーションです。 64bit Windows上で32bitのアプリケーションを使用した場合、ハードウェア セットアップ機能の大部分が WOW64 では禁止されているため SetupDiCallClassInstaller API は失敗します。しかし、twinBASIC の WinDevLib では、それを回避することが出来る。
【2022/12/04追記】
twinBASICの応用としてVBScriptをデバッグする方法を見つけました。
【2022/08/07追記】
2022/05/12に説明動画になります。IDEはtwinBasic専用のものが出来上がってます。WebView2を使用している。
【2021/12/25追記】
twinBASICが正式名称のため、TwinBASICからtwinBASICに記事を修正しました。
twinBASICのロードマップです。基本的なフォームGUIのリリース予定日:2022年1月10日
twinBASICとは
既存のすべてのVB6.0およびVBAコードと完全に互換性があることを目的とした最新のBASICコンパイラです。
VB6.0と違いインタプリタではありません。GUI画面については現在作成中となっています。
https://www.vbforums.com/showthread.php?890181-TwinBasic/page13
ビルドして出来たEXEファイルは、最適化されていないネイティブコードです。出力コードは最適化されていませんが、ネイティブマシンコードであるため、通常はVBA(またはVB6のpコードコンパイル)よりもはるかに高速です。
※ランタイムまたは再配布可能なコンポーネントを必要としません。
LLVMをtwinBASICに統合して、コード生成に提供される驚くべき利点のいくつかを取得できるようにするための作業がすでに進行中です。
名前の由来
Youtubeのコメントの日本語訳
私たちはtwinBASICを、私たちのお気に入りの古典的なBASIC言語であるVB6の双子の兄弟と考えるのが好きです。もちろん一卵性双生児ではありません...しかし、おそらく数分(または数十年?)後に生まれ、兄弟の過ちから学んだ賢い双子です:)
GUI画面
GUI画面については現在作成中となっています。
https://github.com/WaynePhillipsEA/twinbasic/discussions/451
YouTubeによる紹介動画
言語拡張機能
VB6.0だとこんなことも出来なかったんだと思う部分が改良されています。
New compiler features
https://twinbasic.com/preview.html
インライン変数の初期化
戻りステートメント
複数行コメントのサポート
VB.NETにもなかった複数行コメントが、Cスタイルで可能になっています。
その他
DeclareWide構文、オーバーロード、パラメータ化されたコンストラクタ、ジェネリックなども追加されています。
ライセンス
32ビットのプロジェクトは、無料で利用可能
64ビットのプロジェクトは、起動時に5秒間のtwinBASICのスプラッシュ画面の表示される、ライセンスを購入すればスプラッシュ画面は表示されなくなる。
twinBASICによる開発
開発IDEとして、VSCodeを使用します。
インストールからビルドまでの動画があります。
下記は動画ではなく、Getting Started - Sample 1 - HelloWorld! の記事形式で書かれています。
インストール
ここからは動画を見ながら、自分なりに構築したのを書いてみました。
拡張機能で「twinBASIC」を検索してインストールします。
新規プロジェクト
F1キーを押して、新規プロジェクトを選択します。
今回はサンプルのHelloWorldを選択しました。
プロジェクトの保存先として「C:¥WorkSpace¥TwinBasic」を選択しました。
ワークスペースの信頼
HelloWorld
VSCodeの表示言語変更
VSCodeの表示言語が英語の状態になっていたので、「表示」 メニューの中の 「コマンドパレット」 メニューをクリックしてコマンドパレットを表示、コマンドパレットで display と入力して「表示言語を構成する(Configure Display Language)」と表示されるのでクリックします。
表示言語の選択画面でja
をクリックします。
デバッグ
ブレークポイントを付けます。
Public Sub Mainの上にある「▶ run ModHelloWorld.Main」をクリックします。
デバッグ実行で止まります。
ステップアウトすると、Hello world!
のメッセージボックスが表示されます。
ビルド
ビルドのアイコンをクリックすると、EXEファイルが作成されます。
BuildフォルダにEXEファイルが作成されています。
EXEファイルをダブルクリックすると、Hello world!
のメッセージボックスが表示されます。
ソースコードのインポートとエクスポート
【2023/06/20追記】
ソースコードが含まれているプロジェクトファイル('*.twinproj')はバイナリ形式になっているのですが、これをインポートとエクスポートできないかなと思って調べたら、公式にありました。
最後に
これは期待できますね、GUI環境が完成したらVB6.0のプロジェクトの読み込みも出来るようにする予定とのこと。
同じVB6.0の互換アプリケーションを作成している、RAD Basicを開発している方と協力して欲しいな。
何かあれば、githubに参加することも出来ます。