速報、NS Basic/Palm 5.00

2005/07/20


2003年の11月に登場した、NS Basic/Palm(以下、NSB)のVer.4.0、その後、ARMネイティブランタイムのサポートや、Gridコントロールの追加、各種ライブラリの追加や、Treoなどの特定機種のサポートなど、多くの機能が追加され、既に完成の域に達したと思われます。
そんな状況で登場した、新バージョンVer.5.00。
久々のメジャーバージョンアップ。
正直な話、これ以上、何を望むのか?という気持ちがありましたが、開けてビックリ玉手箱(笑)、2ちゃんねる風に言うところの、
    キタ━━(゜∀゜)━━ッ!!
なバージョンアップだったのです。
今回のバージョンアップのポイントは「エディタが使い易くなった」事ですが、この更新により、既存ユーザーにはもちろん、今からはじめる人にも、NS Basicをお奨めしやすくなりました。
では、適当にかいつまんで紹介したいと思います。
※画面のキャプチャは、開発評価版のものです。正式版とは異なる場合があります。

  • 新規購入:$149.95
  • アップグレード:
    • ダウンロードのみ:$49.95
    • アップグレード+ハンドブック:$69.95
    • アップグレード+ハンドブック+Michael氏の解説書:$99.95

    ※2005年6月1日以降の購入者は、無償アップグレードとなります。NS Basic社のアナウンス
    ※アップグレードの連絡は、リリース日より数日後にNS Basic社から届くと思われます。現時点では、アナウンスのみとなっています。


■統合開発環境(IDE)が使い易くなりました【注目!】

 日本語はもちろん、多くの国の言葉に対応している国語への対応が図られているIDEですが、実際のところ、今まで大きく手が入れられた事はありませんでした。

まず、エディタ(コードウィンドウ)です。
Visual Basicなどに比べると、やや機能的に物足りなかったエディタ類ですが、今回は次のような機能が追加され、対等とはいきませんが、十分に実用的なエディタに進化しました。
  • コードヒント搭載
    入力した関数に必要な引数や書式が、自動的に表示されます。

      ■関数を入力すると、書式を表示。記憶が曖昧な関数には、特に重宝するでしょう

  • コードコンプリーション搭載
    オブジェクト名を入力すると、自動的にプロパティやメソッドの一覧が表示されます。

      ■オブジェクト名の後「.」を入れるとリストが出ます

  • オートインデント
    自動的にTabによる段組がされますので、コードが見やすくなります。

      ■[Enter]を押すと、カーソルは自動的にこの位置へ


      ■こんなコードも簡単に書けるようになりました


  • ドラッグ&ドロップ
    コードウィンドウ内で、ドラッグ&ドロップがサポートされました。

  • 区切り線のサポート
    サブルーチンやファンクションの間に、自動的に区切り線が表示されるようになりました。

      ■区切り線は必要な時に自動表示されます

  • ヘルプ起動の簡素化
    ヘルプをF1キーで起動できるようになりました。

  • ブロックコメント
    複数行をまとめてコメントアウト、またはその逆も可能になりました。
    他にも、大文字や小文字に変換したり、スペース(空白)を表示する機能など搭載されました。
    ※この機能については、Vet.5.01以降、変更されて搭載される場合があります。

      ■(1)例えば、中の3行をコメント行にする場合


      ■(2)コメント化したい行を選択します


      ■(3)右クリック→Advanced→Comment Selection


      ■(4)はい、完了です


■デバッグがより便利になりました【注目!】

 プログラムサイズは、さほど大きくないと言っても、想定していないエラーが出てくると、その原因を特定する事が困難です。
そんなデバッグ作業を支援するために、新しいバージョンには「デバッグモード」が搭載されました。
これは、プログラムの実行を一時中段させ、その時の変数の値を確認することが出来るモードで、デバッグ作業の負荷が軽減される事でしょう。
ここでは、簡単な使い方を紹介しますが、詳しくは「Tech Note 35」をご覧下さい。

 まず、デバッグモードを使うには、次の設定を行います。
この設定にしておき、予めエミュレータ(POSE)を起動しておき、ランタイムをダウンロードしておきます。
ただし、上記の設定にすると、POSEにはデバッグモード用の特別なランタイム「NSBRuntimeDebug.prc」がダウンロードされます。
この状態で、とても馬鹿馬鹿しいプログラムを作ってみましょう。
ボタンを1つ配置して、次のようなコードを記述します。
実行結果を表示するまでもありませんが、ボタンをタップすると、単純に「3」と表示するだけです。
     → 
デバッグモードでは、現在、実行中のプログラムを一時停止させる場所「ブレイクポイント」を設定します。
Visual BASICに慣れた人ならF9キーを思い浮かべるところですが、NS Basicの場合「行の先頭に @ を置く」事で、その行がブレイクポイントになります。
例えば、次のように置いてみます。
何もない行でもブレイクポイントに出来る点は嬉しいのですが、間違えてはいけないのは、行の先頭である「1桁目」に置く事です。
この、3つめのブレイクポイントは「1桁目」ではないため無効です。注意しましょう。

 さて、このプログラムを実行してみます。
POSE上のボタンをタップすると、NS Basicのウィンドウがアクティブになり、ブレイクポイントが反転表示されます。
そう、ここでプログラムが「止まっている」のです。
この状態で「Variables(変数)」を選択します。
開いた変数ウィンドウで、ボタン(object1004)をクリックすると、使用している変数の一覧と値が表示されます。
確かに、この時点で「i=1」ですから、正しい表示をしていますね。
実行を続けるには・・・、残念ですが変数ウィンドウは、その都度閉じなければなりません。
変数ウィンドウを閉じたら、[実行]→[Continue]を選ぶか、[F8]を押します。
すると、次のブレイクポイントで停止しますので、おなじように確認をします。
このように、やや機能的に不十分なところはありますが、変数の値を実際に確認できるので重宝することでしょう。

ただし、このVer.5.00に添付されているデバッグモードは「お試し的」な機能で、まだまだバグが残っています。
このバグについてNS Basic社は、Ver.5.01以降で対応すると言っていますので、もう少し待つのが良いと思います。


■新しい機能と改良点

新しいランタイムにも、いくつかの機能追加、改良が施されています。
 まず、目に付くのが新しいオブジェクト、「スライダー(slider)」が追加されました。
ご存知の通り、左右に動かして値を変化させるオブジェクトで、ちょうどスクロールバーを横に寝かせたイメージと考えればよいでしょう。
Sliderオブジェクトは、Valueで値を取得します。
ちなみに、Scrollbarは、Currentで値を参照していましたが、Valueで取得できるようになったようで、両者は同じように扱う事が出来ます。
ただし、イベントの発生するタイミングが異なるので注意が必要です。
Scrollbarは、値が変化するごとにイベントを発生しますが、Sliderは値を変化させた後、最終的にスタイラスが画面から離れた時点でイベントを発生します。
この辺り、適当なサンプルを作って、実際に確認してみてください。

 また、今まで「Left」「Top」「Width」「Height」というオブジェクトの位置や大きさに関するプロパティは、プログラムの実行中に変化させる事はもちろん、値を参照する事すら出来ませんでした。
意外と言えば意外な欠点ですが、新しいバージョンではこれらの値を参照したり操作することが出来るようになりました。
これによって、オブジェクト類を移動させることが可能になりますが、実行時に画面のデザインをプログラム内から行えるので、デザインの変更や設計が容易になります。


■共有ライブラリが増えました

 今まで、ランタイムに存在しない特別な機能や、機種依存する特殊な機能など、共有ライブラリによって拡張してきましたが、今回のバージョンアップにおいても、いくつかの新しいライブラリが追加されました。
  • DBLib(Tech Note 36)
    Palmのデータベースファイルを扱うライブラリです。
    標準で用意されていない便利な関数が多く含まれるほか、外部記憶装置へのアクセスも網羅しています。
    ちなみに、NS Basic/Palmプログラミングコンテストの応募作品で、シェアウェアです。
    機能は完全に使う事が出来ますが、宜しければ$10以上の寄付をお願いします、との事です。


  • DevInfoLib(Tech Note 37)
    Palmデバイスの情報を得ることが出来るライブラリです。
    機器やメーカーのIDといった機種独自の情報から、HotSync名などの設定情報、バッテリーの状態などの運転状況など多くの情報を得る事が出来ます。


  • DocLib(Tech Note 38)、DocReaderLib(Tech Note 39)
    Docファイルを取り扱うためのライブラリです。
    これらを使う事で、NS Basicから簡単にDocファイルを取り扱う事が出来ます。


  • NSBLifeDrive(Tech Note 40)
    Palm LifeDrive専用のライブラリです。
    LifeDriveが扱っているマルチメディアファイルにNS Basic内からアクセスする事が可能になります。

これらのライブラリのサンプルプログラムは、データフォルダ内のライブラリ専用フォルダに収められています。


■その他いろいろ

 前バージョンのバグ修正に加えて、細かな追加はいくつかあります。
  • Grid.FontMatrix(row,col) の追加
    Gridコントロール上の(row,col)のセルのフォントの種類を設定できます。
    フォントの種類とは1〜7の数字で表されるフォント番号のことで、詳しくは、ハンドブックの巻末に掲載されている表を参照してください。


  • 共有ライブラリやSysTrap命令がよ使いやすくなりました
    これらに対し、バイトイメージの配列やNullを扱う事が出来るようになりました。
    これにより、Nullなどが混在する事で、生じていた不具合の多くが解消されます。


  • SerialClose()の見直し
    ポートが空いていない状態で、SerialCloseによって閉じようとするとエラーが出ていましたが、出ないようにしました。
    代わりに、その場合は、エラーコード=777を返すようにしました。これらに対し、バイト





 より開発言語として使いやすくなったNS Basic、今回、やや非力だった開発の環境そのものを更新し、より便利になった事は、ユーザーにとって嬉しい変更です。
若干、このレビューで紹介した機能は、Ver.5.00当初では不安定であったり、搭載されていない場合もありますが、今後、それらの機能が追加されても、プログラミングの基本部分に大きな変更はないと思われます。
日本におけるPalmの話題が下火になりつつある昨今ですが、日本語版のアプリを、日本人が作らなければ、話題は下火になる一方かもしれません。
ひとまず、NS Basic/Palm Vet.5.00で、自分用のアプリを作り始めては如何でしょうか。