Visual Basicという遺産

プログラミング言語人気ランキング2020によると、人気のあるプログラミング言語は

  • 1位---C/C++
  • 2位---Python
  • 3位---JavaScript
  • 4位---SQL
  • 5位---C#
  • 以下略

という感じになっているようです。プログラマーの求人を見てもPythonは需要が多く、他にもRubyとかGoとかKotlinとかの比較的新しい言語のプログラマーが多く求められているようです。ところで、SQLってプログラミング言語なんでしょうかね? 知らんけど。

そんな2020年のプログラミング事情ですが、そこのあなた、Visual Basicはいかがですかな? え、ランキング? 12位ですよ。11位のCOBOLより下ですよ。

でも、そんなVisual Basicができる技術者が、もしかしたら今の時代に求められているかも? かもかも?

スポンサーリンク

Visual Basicとは

Visual Basicはその名の通り、BASIC言語の流れを汲んでいます。BASICとは「Beginner’s All-purpose Symbolic Instruction Code」の頭文字を取ったものであり、つまり「初心者向け汎用記号命令コード」のこと。なんだよ、初心者向けかよ。

確かにBASIC言語は初心者向けです。1991年に登場したVisual Basicも、当時のいわゆる「上級者向け」だったC/C++などに比べると「初心者向け」という扱いでした。

VBの歴史

ざっくり分けてみるとこんな感じです。モノによってはクライアントサイドもサーバーサイドもイケるやつとか、ネイティブアプリもWebアプリもイケるやつとかもあるので、ほんとにざっくりです。

この中でVisual Basicは一応、「クライアントサイド・ネイティブアプリ」に適したプログラミング言語という位置付けになっています。そしていつの時代も、上級者向けの別の言語が立ちはだかっており、Visual Basicは永遠の初心者向け言語という地位を(良くも悪くも)守り続けています。

ネイティブアプリとは

ネイティブアプリとは、OSの機能を最大限引き出せるアプリのことです。OSの機能に直接アクセスできるアプリであると言い換えることもできます。

WindowsやiOS(Mac)などのOSは実にさまざまな機能を持っています。ウィンドウの作成や管理、ファイルへのアクセス、グラフィック、ユーザー管理機能などなど。要するにOSは、パソコンでできることの全ての機能を提供しています。

ネイティブアプリを作成することのできるプログラミング言語は、これらの「パソコンでできる全ての機能」を使うことができます。Visual Basicも初心者向け言語とはいえ(Windowsの)ネイティブアプリ用言語のうちの1つなので、(ごく一部の制限を除いて)OSの全ての機能を使うことができます。

一方Webアプリとは、ChromeやFirefoxなどのWebブラウザ上で動作するアプリのことです。ネイティブアプリはOSが提供する全ての機能を使うことができますが、WebアプリはWebブラウザが提供するごく限られた機能しか使うことができません。

これはWebブラウザが非力だからなのではなく、セキュリティ上の理由で敢えて機能を制限しているからです。Webブラウザは主にインターネットと共に使用されますが、インターネット上には有象無象のセキュリティリスクが存在します。つまり、悪い奴がいっぱい居るわけです。

そのような悪い奴のハッカー的攻撃からパソコンを守るために、Webブラウザは敢えて機能を制限しているのです。例えば、パソコン上のファイルに自由にアクセスすることさえ、Webブラウザでは強い制限をかけています。

そんなガチガチに機能制限されたWebブラウザですが、最近はWebブラウザだけで完結するアプリも多くなってきました。例えばtwitterなどがそうですね。もはや、「アプリとはWebブラウザ上で動くもののことである」と言っても過言ではないくらい、世の中はネイティブアプリをあまり必要としなくなってきました。

ネイティブアプリ

今の時代に学ぶべき言語

Webアプリやスマホアプリが隆盛の2020年現在。クライアントサイド(フロントエンドとも言う)のアプリを記述する言語としてJavaScript(+HTML+CSS)を学んでおけば、多くのケースに対応できます。サーバーサイド(バックエンドとも言う)のロジックにまで手を出すなら、Pythonなどの言語を学ぶとよいでしょう。

ソフトウェアとは、インターネットという情報の海を適切に整理してユーザーに届けるツールである。そしてそこには、いまだ世に現れていない無数のアイデアが眠っている。2020年のソフトウェア事情を語るとするならば、それは1つの正しい考え方です。

必然的に、そのようなビジネス的に価値のあるアイデアを実現するための最新のプログラミング言語に人気が集まり、企業もまた、そのような言語を扱える人材を欲するのは自然な流れです。

何より、そのような「夢のある」言語を学ぶことは、まだプログラミングを生業としていない段階の初学者にとっても、大きなモチベーションになります。

その意味で「JSとPythonやっとけ」と言うだけなら、他の多くのプログラミング初心者サイトと同じことを言っているだけに過ぎません。多くの優秀なサイトやテキスト、スクールなどが、あなたのプログラミング学習をサポートしてくれることでしょう。

ソフトウェアの別の姿

しかし、世の中に存在する「ソフトウェア」は、そのような最新のものばかりではありません。世に新しいアイデアをもたらす斬新なソフトウェアが毎日毎日たくさん生まれている一方で、古く枯れ果ててはいるけども我々の生活を常に支えている「昔から変わらない」ソフトウェアもあるのです。

僕がプログラマーとしてソフトウェアを提供している業界がどういうものか、紹介しましょう。

こういった機械を見たことがないでしょうか? なんか実験室とか研究施設とかにある「計測器」と呼ばれるものです。いろんな種類の計測器があるのですが、高価なものだと1000万円以上するものもあります。

例えば我々のスマートフォンは、傾けた方向が横なのか縦なのか認識できるようになっています。これは、スマートフォンの中にジャイロセンサという極小のチップが内蔵されていて、そのジャイロセンサが重力加速度の働く方向を認識することによって実現されています。その極小のチップにかかる電圧も非常に小さいもので、0.0000001Vとかのものすごく小さい値です。

そのジャイロセンサを製造して出荷検査を行う際、異常な電圧がかかるものは不良品としなければいけません。ですが、異常な電圧と言っても、基準値より0.00000005V以上大きければ異常とみなす、というように、極めて極小な世界です。

そこで、さきほどの高性能な計測器の出番というわけです。精度の高い製品を作るためには、電気屋で2000円くらいで売ってる安いテスターでは全然精度が足りないのです。

このような業界ではさきほどの高性能な計測器が大活躍するわけですが、いかんせん、大量のデータを整理するような機能は持っていません。インターネットに繋いで何か処理を行うこともできません。そこで、一旦計測器のデータをパソコンに取り込み、Excelなどで二次処理を行う必要が出てきます。

僕のプログラマーとしての仕事の1つは、このような計測器をパソコンから制御し、データをパソコンに取り込み、お客様の要望に合わせてある程度整形されたデータの列やグラフなどを画面出力する特殊なアプリを作ることです。

そこでVisual Basicが活躍する理由

こういう計測器業界では、Visual Basicという言語がかなり活躍してくれます。理由は大きく分けて2つあります。

1つめの理由は、Visual Basicがネイティブアプリを作ることができる言語であるということ。計測器をパソコンから制御するにはそれらを接続しなければいけないわけですが、物理的な接続手段がRS-232CやGP-IBだったりすることが多いんです。

聞いたことありますか? RS-232CとかGP-IB。古いパソコンならRS-232Cの9ピンのコネクタが付いていたりしましたが、今のパソコンではほとんど見られないでしょう。

最近でこそEthernetやUSB接続が可能な計測器も増えてきましたが、この計測器業界というやつは「古き良き」を守り過ぎてるせいで、我々が想像する「IT業界」とは少し進化のスピードが違うんです。

このようなRS-232CやGP-IBといった古いインターフェイスを制御するには、OSを直接経由しなければいけません。物理機器へのアクセスが厳しく制限されたWebアプリでは、そもそも制御が不可能なのです。つまり、ネイティブアプリでなければこれらを満足に制御することはできないのです。

Visual Basicが活躍する2つ目の理由は、アプリ自体が主役ではないということ。

このような業界の技術者は基本的に、電気電子の技術者だったり、物理現象の技術者だったりします。彼らが「もう少しラクに計測器を扱えればいいな」ということで、パソコンに取り込むための簡単なアプリを片手間で作ったりします。

ソフトウェア専門業者に依頼することなく、ちょっと軽くプログラミングをしてみる。別に少々のバグはあってもいいし、高度なOSの機能を使うわけでもない。そうだ、Visual Basicを使ってみよう、と。

そういう経緯で、ソフトウェア専門業者が作ったわけでは無い、内作のVisual Basicアプリがこういう企業には多く溢れています。

しかし彼らはプログラミング専門職ではないので、「もっと使いやすく、もっと多機能に」と考えたときに、専門業者に依頼することになります。「途中まで作ったんですが、続きを専門業者に作って欲しい」と。

そんなとき、Visual Basicで書かれたプログラムを読むことができ、さらにそこに機能を追加することができる技術力があればどうでしょうか。重宝されるかもしれませんぞ?

古い遺産にも価値がある

普段我々がメディアを通じて知る「IT業界」や「ソフトウェア業界」が意味するのは、最新で夢のある技術を追い求める世界のことだと思います。

しかしこの世界にはまだまだ、20年前、30年前に作られた遺産が多く存在します。Visual Basicはその遺産の1つですし、冒頭で触れたランキング11位のCOBOLなんかもそうです。

お客様側の企業としては、これらの遺産を破棄してしまうのは勿体ない。でも、今の時代に技術者もなかなか見つからない。居たとしても、「Visual Basicは扱えるけど、考え方も古い」ような人ばかり。どこかに、古い遺産を扱えて、しかも考え方だけは最新のプログラミング言語をエッセンスを取り入れているような若い技術者はおらんかのう?

途中に述べたように、まだどんな業界で仕事をするかを決めていない段階でとりあえずプログラミングを学ぶなら、JavaScriptやPythonなどのような最新のものを学んでおくべきです。仕事も決まってないのに一点張りで古いVisual Basicを勉強するのはおすすめできません。

僕自身も、学生の頃に趣味でプログラミングをしてたときはC++でした。Visual Basicというのがあるのは知ってたけど、「へっ、初心者向け言語なんてわざわざ学ぶかよ」って思ってました。でも、就職先でVisual Basicのプロジェクトに携わることになって、そういう世界があることを知りました。

そんなわけで、何かの縁でVisual Basicを触る仕事に携わることになったら、「古いし初心者向けだし、ダサい」などと敬遠せずに、がっつり取り組んでみてはどうでしょう。もしかしたら、みんなから重宝される唯一無二のプログラマーとしての地位を確立できるかもしれません。

スポンサーリンク