LabVIEWのメリット/デメリット

その他

スポンサーリンク

この記事では、LabVIEWのメリット、デメリットを紹介しています。

元々このブログはプログラミングが苦手だった自分でも扱えたLabVIEWというプログラミング言語を広めたいと思ったことがきっかけで運営しています。

しかし広めるからには、LabVIEWを使用するメリット以外にも、デメリットと感じられる部分もちゃんと書かないと不公平だなと思っています。

本記事で、このブログの記事としては300記事目を迎えて、そろそろメリットやデメリットについて書いてもある程度信頼してもらえるかなと思い、個人的な意見をふんだんに盛り込んでこの記事を書いています。

なお、あくまで私はLabVIEW愛用者なので、デメリットの部分もある程度は「擁護」しておりますので、偏りがある点踏まえて読んでもらえればと思います。

また、LabVIEWというのは開発環境やソフトウェアであって「プログラミング言語」ではない、という議論もあるかと思いますが、この記事ではテキスト言語などと同様、LabVIEW自体がプログラミング言語であるとして扱っている点もご注意ください。

スポンサーリンク

LabVIEWのメリットデメリット

では早速、LabVIEWについてのメリット、デメリットについて順に挙げていこうと思います。

LabVIEWのメリット①とにかくわかりやすい

まず最大のメリットは、そのわかりやすさにあると思います。

データのタイプ、処理の内容、プログラム全体の構造、様々な要素をグラフィカルに表現することになるため、そんなに多くないある程度の数の「読み方の決まり」さえ覚えれば、比較的すぐにコードを読んだり、中身を理解することができるようになります。

もちろん、これは「正しく」プログラムを書いた場合であり、ぐちゃぐちゃに書けば読み解くのが困難になることはありますが、それは別に他の言語でも同じことです。

ですが、「データをワイヤでつなぐので、データのフローはワイヤをたどっていくだけで追える」ことや「各処理がアイコンで表示されているので一目で何をやっているか直感的に理解しやすい」といった特徴は、テキスト言語では感じられない、LabVIEWの差別化ポイントになっている、といえます。

そのため、プログラムそのものをグラフィカルに書ける、これだけである程度のレベルまで習得できるようになるまでにかかる時間(学習曲線と呼ばれるもの)が他の言語に比べるとかなり短いと思います。

LabVIEWのメリット②ユーザーインタフェースの作成が簡単

次のメリットは、ユーザーインタフェース(UI)を自在に作れることです。

他のプログラミング言語でももちろん作ることはできるにしても、LabVIEWはユーザーインタフェースがドラッグアンドドロップだけで構成できるため、ユーザーインタフェース作成のためにコードを書く、といったことが基本的にありません(一部例外はありますが)。

これは、プログラム完成時の様子を初期段階から表現できる、という利点にもつながります。

どういったプログラムか、というのは、どういった機能があるか、といことであり、その機能と密接に関わっているのがユーザーインタフェースなので、完成形が最初から見えるというのは、プログラムを作る上で目指すべき目標が明確であることを意味します。

また、少しずつ実装したアルゴリズムを部分部分で試すことにより、アルゴリズムの中身はもちろん、操作性なども簡単に試すことができます。

最終的にそのプログラムを使うユーザーが考える見た目や使い勝手もすぐに具体的に表現することができるので、仕事でお客さんにシステムを納めるような場合でも使用感の確認をすぐに実際の画面を通して伝えられるというのは大きなメリットになりえます。

LabVIEWのメリット③アルゴリズムの実装もドラッグアンドロップでスムーズ

プログラムで実際に行いたい処理を組み立てていく際に、基本的に関数パレットから必要な処理をドラッグアンドドロップするだけな点もかなりの利点だと思います。

テキスト言語であれば、何かの処理を行うにもその処理の名前(オブジェクト指向の言語でいうところのメソッド名など)を憶えておき正確に記述しないと処理が上手くすすみません(最近のエディタはオートコンプリートしてくれるのでスペルを間違えるようなことは起きにくいとは思いますが)。

私が元々プログラミングが苦手だったのはこの点も大きく、何をするためのメソッドかは英語の意味を考えれば何となくわかるものの、そもそもどんな種類のメソッドがあるかを一覧で知るためにネットで検索を頻繁に行っていたため、嫌気がさしてしまうことがとても多かった記憶があります。

一方でLabVIEWは処理を関数パレットから選んでドラッグアンドドロップするだけです。

もちろんどのような処理ができるかはある程度覚えておく必要がありますが、多くの処理(関数やノードと呼ばれるもの)はアイコンで表示されており、一目で理解しやすいことが多いです。

結局この点はLabVIEWに限らずどの言語も「慣れ」であることはその通りですが、慣れるまでにまずその言語に飽きない、続けていけるということが大前提です。

慣れるまでに苦痛を伴うのであれば、最終的にその言語を習得することはできないので、「慣れやすさ」というのは意外と重要なポイントだと思います。

LabVIEWのメリット④並列化処理が簡単に書ける

他に、見聞きしたことがあるメリットも挙げていくと、LabVIEWは並列化処理が簡単に書けるという点も特徴の一つとして語られることが多いです。

LabVIEWはプログラムの実行順序を指定することもできますが、敢えて指定しないように書くことで、複数の処理を並列で実行することができます。

それも、特別な書き方をする必要があるわけではなく、最も簡単には「独立したWhileループを複数配置する」だけで実現できるというくらい手軽です。

LabVIEWプログラムでよく使われるアーキテクチャ(デザインパターン)の一つであるキューメッセージハンドラなんかはこの利点をうまく活かし、複数の処理を並列に実行させたりデータの受け渡しをうまく行わせることができます。

LabVIEWのメリット⑤習得後に応用できる範囲の広さ

LabVIEWを開発しているNI社の掲げているLabVIEWのメリットだと、計測器ハードウェアとの接続のしやすさが挙げられています。

これは何もNI社の販売している測定機器に限らず、サードパーティとなる他の会社の販売しているハードウェアであってもLabVIEWで動かすことができるという点に特徴があります。

つまり、LabVIEWを覚えれば、幅広いハードウェア、測定機器の制御も可能になる、ということですね。

(もちろん個々のハードウェア特有の使い方などは別途知っておく必要がありますが)

また、LabVIEWのプログラムの作り方を習得すれば、LabVIEWのアドオンとして位置づけられている「リアルタイムOS下で動作するプログラム」や「FPGAのプログラム」を書いたり、「Web applicationを書く」ということも、新たな言語を習得することなく、比較的スムーズに導入できるという点も挙げられています。

特にFPGAについては専門の言語の習得が難しいとされる中で、LabVIEWプログラムとしてFPGAソースコードを書けるのは、これを必要とする人にとっては大きなメリットといえると思います。

LabVIEWのデメリット①有償ソフトウェア

続いてデメリットをいくつか。

まずは、LabVIEWというもの自体はプログラム開発を行うソフトウェアであるため、有償である点です。

ここは、Pythonを始めとした他のテキスト言語が無料で入手できる点と大きく変わります。

最近でこそ、非商用や非学術目的であれば無償でプロ版の機能を使用できるコミュニティエディションも出ているので、ちょっと試してみるかという方にはとっつきやすくなっていると思いますが、現在のところ英語版しかないので、多少の使いにくさは否めません。

ただこの点について言えば、目的のことをより早く達成できるようになるということを踏まえるとそこまで大きなデメリットではなくなる場合もあると考えています。

(都合のいい例ですが、)例えば仕事でプログラムを書く必要が出てきたとき、C#で3か月かかってできたプログラムと同じことをLabVIEWで2週間でできたら、2か月分以上のその人の人件費が「浮く」ことになる、とも考えられます。

ここまで極端ではなくても、「既存のソフトだと、あと一歩機能が足りないな。短期間だけ特定の用途に使えるプログラムを短時間ですぐに用意したいな」という場合に習得期間が短い言語でパパっとプログラムを用意することができるのは時間の節約につながります。

プログラムの規模にもだいぶよりますが、かかる時間やそこに対する人件費をはじめとした費用を踏まえて考えると、有償のソフトウェアであることのデメリットは実はそんなに大きくないと感じられるケースもあると思います。

LabVIEWのデメリット②ぐちゃぐちゃなコードを書きやすい

次のデメリットは、メリットの1番目の裏返しみたいな話で、「正確に書けばきれいにわかりやすいコードが書ける」一方で、しっちゃかめっちゃかなコードも書けてしまう、そしてそれが曲がりなりにも動作できてしまうという点にあります。

この「曲がりなりにも動作」してしまうことが実は厄介で、それは機能の拡張だったりあとはコードを作る個人あるいはチームが変わった場合に前任の作ったコードを読み取るのがとても困難になる場合が出る可能性につながります。

ネット上に転がっている、文字通り「スパゲッティコード」は、よくこれでプログラム動いているねと逆に感心してしまうほどのコードとなっています。

まぁこれはテキスト言語でもやっぱり同じことが言えるので、LabVIEW特有の問題とも言い切れないとは思いますが、グラフィカルであるからこそ見た目が余計に複雑なプログラムになることがあり得ます。

問題は、「動いてはいる」ので、あまり問題意識を持ちづらいという点にあり、とりあえず機能追加の予定もないし動けばいいやのプログラム以外では、一度完成したプログラムに手を加える際にかなりの労力を費やすことになりかねません。

LabVIEWのデメリット③他の言語と一部の考え方が異なる

次に挙げるのは、他のプログラミング言語でのプログラム作成時の考え方が一部異なる点です。

そのため、他の言語を習得した人がLabVIEWを使うと違和感を覚えるか、あるいは「LabVIEWらしくない」プログラムになることが多くなってしまうかと思います。

わかりやすいのは、いわゆる変数の扱いで、ローカル変数やグローバル変数という言葉はLabVIEWに限った機能ではないのですが、他の言語と考え方が異なります。

テキスト言語の場合、変数は多々存在し、積極的に使用できる機能となっています。

というか、実質変数は「通常の」プログラミング言語では必須になります。

一方のLabVIEW、極力ローカル変数やグローバル変数は使用しないことが推奨されています。

機能としてある以上、全く使えないかというとそうではなく、必要に応じて使う場面はあるのですが、それでも他の言語ほど使う機会はありません。

LabVIEWを知らない方からすれば、「変数も使用できないとなるとプログラム書けないじゃん」と思われる方もいるかもしれませんが、工夫次第で、変数を使わなくてもプログラムを書けます。

ただこの点は、それなりに高度なテクニックが必要になったりするので、初心者の方がすぐに実装できるような内容でもないかなと個人的には思います。

また、データ型を宣言してから使用するタイプのプログラミング言語(Cなど)に慣れていると、LabVIEWで不必要に変数を使用してしまうことになりがちなので、ここも他の言語と違うポイントになります。(人気言語であるPythonはこの点はLabVIEWと同じく型宣言をする必要はないですが)

LabVIEWのデメリット④学習する方法が限られる

プログラミングというのは、ただ単に文法を覚えるだけではプログラムを書けるものではなく、様々なテクニックを身に着けて少しずつ書けるようになるものだと思います。

とはいえ、最初の導入段階ではやはり基本的な文法、使い方の部分を知ることは絶対に必要なので、この点は通常書籍だったり学習サービスで補うことが多いと思います。

特に人気の言語なんて、本屋に行けば山のように解説書やプログラミングのレシピ集などが見つかり、むしろどれを読んだらいいかわからない!という事態に陥りそうです。

この点、LabVIEWは学習ができる機会がとても限られていると言わざるを得ないと思います。

まぁLabVIEWというもの自体がそもそも「製品」である以上、仕方がないかなと思う面もあるのですが、例えば本屋やネット上で書籍はあまり見つかりません(あっても古いかあるいは日本語じゃないものばかりですね)。

学習サービスも、LabVIEWを開発しているNI社が提供するオンライントレーニングがあったりUdemyにあったりするものの、選択肢の数が多いかというとそうではないのが現状だと思います。

自分でいうのも何ですが、このブログはLabVIEWの初心者の方が知っておくべき内容を日本語で説明したネット上のサイトとしては、そこそこ貴重なものだという自負があります。(説明が常に丁寧だったり詳しいかと言われるとわかりませんが・・・)

このブログの他の記事を通してLabVIEWに慣れもっと使ってみようと思ってもらえる人が増えるのを願うばかりですが、それはそれとして、やはり学習する方法が限られていること自体は他の人気のプログラミング言語と比べると不利な点かなと思います。

LabVIEWのデメリット⑤人気言語?

あくまで正直にLabVIEWについてレビューをするという記事なので書きますが、LabVIEWという言語の知名度は他のテキスト言語と比べるとまだまだ低いと思います。

これが何を意味するか・・・例えば就職時のアピールポイントになりにくかったりします。

ポピュラーな言語であるほど、多くの求人が見つかります。

しかし、LabVIEWができる人を積極的に採用、という求人はそこまで多くはないのが現状かと思います。

個人的に見聞きした情報で言えば、日本以外の国、例えばアメリカでは、日本よりかはLabVIEWが重宝されている印象です。

以前別の記事でも紹介しましたが、NASAやSpaceXが認知しているくらいには知名度、有用性が保証されているわけですし。

https://www.analyticsinsight.net/10-programming-languages-for-working-at-nasa-in-2024
SpaceX社のロケットを動かすのは、どんなハードウェアやソフトウェアなのか? - SeleQt【セレキュト】
・SpaceXの宇宙船には、デュアルコアx86プロセッサが搭載されている。 ・Linuxの他、Windows上で動作するグラフィカルプログラミングツールであるLabVIEWを使用。 ・SpaceX社のプログラマーはC++

しかし、日本で使用するとなると・・・ここはどんどんLabVIEWユーザーを増やしてコミュニティを広げ、「無視できない存在」にするしかないですね。

以上のメリットデメリットを踏まえて、最終的に「LabVIEWを自分の仕事に使ってみよう」「LabVIEWを趣味にしてみよう」といった考えに至るかどうか、判断はこの記事を読んでくださっている皆さんにお任せします。

ただ私から一つ言えることがあるとすれば、全く興味がわかない、という方以外は、少しでも触ってみることをオススメします。

本文中に書いたように、コミュニティエディションであれば無償で使えますし、まずはどんなものか使ってみて、そこから仕事や趣味として使うのに合っているかを判断してみてください。

また、もう少し具体的にLabVIEWでどんなことができるのか知りたいと興味を持たれた方は、以下の記事も参考になるかなと思います。

本記事では、プログラミングを学習する目的を中心にその方法としてLabVIEWを選んだ場合のメリットやデメリットについて、個人的に思うことを紹介しました。

既にある程度LabVIEWを触っている方には、何か共感できるものがあることと思いますし、これからLabVIEWを始めよう、あるいはLabVIEWというものを初めて知ったという方には今後学習を続けていくかどうかの判断としてつかえる情報が少なからずあると思うので参考になればうれしいです。

ここまで読んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました