メジャーバージョンアップへの迷い

LabVIEW のリリース履歴をWikipedia(英語版)で見てみる。

Name/Version Build Number Date
LabView 1.0 (for Macintosh) ?? 1986
LabView 2.0 ?? 1990
LabView (for Sun & Windows) ?? 1992
LabView (Multiplatform) ?? 1993
LabView 4.0 ?? 1997
LabView 5.0 ?? 1998
LabView Real-Time ?? 1999
LabView 6i ?? 2000
LabView 7 Express ?? 2003
LabView 8 ?? 2005
LabView 8.5 ?? 2/19/2008
LabVIEW 8.6 8.6.0.4001 7/24/2008
LabVIEW 2009 (32 and 64-bit) 9.0.0.4022 8/4/2009

今年からLabVIEWは西暦でバージョンを示すようになった。製品名を西暦で示すのは、MS-Officeしかり、ATOKしかりでマーケティング上の理由なんだろうけど、ユーザとしては互換性が分かりにくくなるのであまりうれしくない。しかしこの表で分かるように、ビルド番号を追うとLabVIEW2009は、バージョン9になっている。つまり、LabVIEW2009はメジャーバージョンアップなんだね。

世の中には無条件に「新しいものは良いものだ」という広告に踊らされているだけの人もいるけども、現実はそうでもない。Windowsも3.0はひどかった。3.1で使えるようになった。Windows95よりは98が良かったし、MS-Officeはちょっと古い2002か2003がもっともよく使われている。F1やラリーカーだって、新しいマシンを投入したときから圧勝なんてことはなくて、次のシーズンぐらいからチューニングが上手くいって調子が出てくるものだ。

これまでも、LabVIEWのメジャーバージョンアップには、新しい機能に喜ぶ反面、互換性に泣く場面も多かった。
よくあるのは依存性が上手く引き継げないケース。自分では明示していないのにバージョン依存性のあるサブviを使っているときに起きるようだ。大きなプロジェクトをバージョンアップすると、あちこちで競合やらパスの行方不明が起きる(あまり聞かないトラブルだけど、ぼくだけなのか?何か書き方がおかしいのだろうか?)。LabVIEW 7 Express のときには128bitのTIME形式が登場して、波形関数のt0がそれまでDBLだったのがTIMEに変わった。ぼくは波形演算を当時多くしていたので、t0がらみのアルゴリズムが一気にバグ発生源になった。
最近のバージョンでは大きなトラブルは減ってきたようには思うけど、それでもメジャーバージョンアップにはためらいがある。LabVIEW 2009が実質バージョン9だと知ったときは、しばらく見送ろうと考えていた。仕事では安定して使えていることが何より重要だからね。今までのLabVIEWでどのバージョンが好きかと聞かれれば、6.1 と8.6.1 だと答えるよ。

そんな迷いも自分用のLabVIEWが手に入ってしまったことで吹っ切れて、ぼくはLabVIEW 2009へのメジャーバージョンアップと格闘中だ。


今回のメジャーバージョンアップで気がついたこと、

  • 競合で困ることは少ない(たまにある)。
  • 8.6との互換性はよく考えられているようだ(バージョンアップ専用のviとかが現れる)。
  • よく分からない依存性がやはりプロジェクト上に現れる。こういうのをみると全部新バージョン上で書き直したくなる衝動に駆られる。
  • 新機能はまだ使っていないけど楽しみだ。3Dグラフとスニペットは面白そう。
  • ワケの分からないバグに遭遇すると、LabVIEWの新しいコンパイラが原因ではないかと疑ってしまい、いつもより疲れる。

今回のバージョンアップで困ったことの筆頭は実行用ランタイムが巨大なこと。たぶん、8.6のときの倍以上あって、DAQを含まない小さなプログラムでも配布用にすると120MBを超えてしまう。これじゃあ、容易に配布できないよ。機能追加で仕方がないとはいえ、何とかならないのかなぁ。

              • -

そういえば、最近のバージョンでは古いサンプルコードが開けないことが多くて困ったので、ちょっと調べてみたよ。

How to Upgrade or Revert a VI to a Different Version of LabVIEW
【VIをLabVIEWの異なるバージョンにアップグレードまたは戻す方法】 (Japaneseを選ぶと日本語もあるけど、表が古い。)

現在のLabVIEWは、バージョン6以降のファイルは開くことができる。それ以前のバージョンのファイルは、いったんLabVIEW8.2で開いて保存してから開くといいみたい。LabVIEW3以前のファイルに遭遇することはたぶん無いからこれで大丈夫。NI Developer ZoneにはLabVIEW 5で書かれたコードが結構あるんだよね。