LabVIEW

LabVIEWというダイヤグラムベースのプログラム開発環境がある。LabVIEWは、計測器制御ソフトの開発のために作られたものだが、一般的なパソコンソフトの開発にも使えなくはない



LabVIEWとはどういうものか? それは Visual Basic (VB) と比較すると分かりやすい。VBはユーザーインタフェースを絵(フォーム)で描き、処理をテキスト(BASIC言語)で書く。これに対してLabVIEWはユーザーインタフェースも絵(フロントパネル)で描き、処理も絵(ダイヤグラム)で描く。VBは表が絵で裏がテキストだが、LabVIEWは表も裏も絵なのだ。

処理をダイヤグラムで描くというのは、計測器制御に関していえば理に適っている。さまざまな計測器を組み合わせて実験系を制御するカスタム仮想計測器をパソコン上のソフトで実現しようと思ったら、データフローダイヤグラムで描くのが直感的だ。

反面、複雑で大規模な処理をおこなうアプリの開発には明らかに向いていない。

変数や構造体や関数に相当するものはブロック、代入はワイヤー。これをひたすらマウスでカチカチとやって、ダイヤグラムを描いていく。単純な処理なら直感的でいいが、複雑なものを描くのは大変手間がかかる。そういうのはむしろテキストで書いた方が圧倒的に楽だ。テキストの素晴らしいところは、検索や置換や比較などが簡単にできるということ。これらはプログラミングの基本だし、大規模なソフトになればなるほどこれらができないとツラい。面倒なだけでなく保守性が悪い。

驚いたのは、単なるデータフローダイヤグラムだけでなく、For や While や Case といった制御構造が独特な形で存在するということ。これらをふんだんに駆使すれば複雑怪奇ダイヤグラムを作ることもできます。Caseなんてまるで紙芝居を描くような感じ。

なにもLabVIEWの短所ばかりをあげつらいたいわけではない。計測器制御に特化した非常に強力な開発環境だと思う。ただVBやVCで作ったほうがはるかに楽な部分まで無理にLabVIEWで作るのはナンセンス。そこは役割分担させるべき。

他人(しかも外国人)の作った複雑怪奇なLabVIEWソフトの仕様変更で泣かされてます。