雑感[001]ごく普通のサラリーマン・OLが学ぶべき実用的プログラミング言語
エンジニア向けの『プログラミング言語人気ランキング』なるものがある。
上位にくるのは、Java、Python、PHP、Javascript、C/C++、C#、Ruby・・などだが、IT系メディアもしきりにこのランキングを煽り、プログラミング学習サイトやプログラマ系ユーチューバーなども急増している。
まぁ、「煽る」というのは言葉が悪いかもしれないが、近年プログラミングの重要性がますます高まっているのは論を待たず、いよいよ今年(2020年)からは義務教育にもプログラミング学習が導入された。
「読み・書き・そろばん」が「読み・書き・プログラミング」になる時代はそう遠くない。。。というか、もうそういう時代だと言っていいだろう。
エンジニアにとってはそれが飯の種になるので当然だとしても、今、小学生よりもプログラミングを必要としているのは、ごく普通のサラリーマンやOLなのではないかと思う。
「働き方改革」の名の元に残業時間を減らされ、残業によってなんとかこなしていた業務は、就業時間内に終わらせなければならなくなった。そこで必要になってくるのが『業務の効率化』だが、それには最低限次の3つのことが必須となる。
- 個々人のスキルアップ
- 情報共有の徹底
- ツールの利用
今や、日常の業務を Excel、Word、PowerPoint などの Office系アプリケーション無しに語ることはできないし、Gmail や Googleドライブなどで情報を共有している職場も多い。
しかしながら、Excel や Gmail を普通に使っているだけでは大幅な業務効率化は期待できない。それを劇的に改善してくれるのがまさにプログラミングなのだ。
プログラミングによって、日常の業務を自動化するツールをつくる、つまり「パソコンに仕事をさせる」ことが重要になってくるし、なによりプログラミングの学習は個人のスキルアップにも大きく寄与する。
そこで、一般のビジネスパーソンが学ぶべきプログラミング言語ランキングを個人的な独断で選出してみた。
ここで注意したいのは、IT系メディアが煽っているプログラミング言語ランキングは、エンジニアもしくはエンジニアを目指している人たちを対象としており、そうではないサラリーマンやOLにはあまり参考にはならないということだ。その理由は、主に3つある。
ランキング上位の言語は、
① PCへのインストールが必要
② サーバサイドで実行するものが多い
③ 難易度が高い
たとえば、Python で動くツールを作りたいとき、そのためにはまず自分の PC に Python をインストールする必要があるし、そのツールを使うすべての人の PC にも Python をインストールする必要がある。
これは、インストールに費やす手間はおろか、おそらく社内稟議を通すことさえ難しいだろう。
また、PHP や Ruby などは主にサーバサイド、すなわち Webアプリケーションの開発に使われており、サーバを弄る機会さえない人には学習しにくい。
さらに、C や C++ に至っては、どのPCでも動く実行ファイルを作ることはできるものの、難易度が高く、それなりの開発環境も必要になるので初心者向きとは言えない。
したがって、上記を踏まえた上でのランキングを以下のようにしてみた。
VBAは、言わずと知れた Excel や Access などの Officeアプリケーションのマクロを記述するための言語で、Officeアプリケーションのいずれかが一つでも入っていればすぐに使い始めることができる。
VBScript にいたっては、あらかじめ WindowsPC に組み込まれているので Office さえも必要とせず、メモ帳などのテキストエディタでいきなり書き始めることができるのだ。
いずれも Microsoft が開発した「Visual Basic」(以下、VB)という「コンパイル型」のプログラミング言語から派生した「インタプリタ型」の言語だ。「スクリプト言語」と呼ばれたりもするが、その辺の定義はあいまいに使われる場合が多い。
プログラミング言語には、すべてのソースコードを機械語に翻訳してから実行する「コンパイル型」の言語と、1行1行逐一機械語に翻訳しながら実行する「インタプリタ型」の言語がある。
処理速度的にはコンパイル型が有利だが、プログラムの動作をその場で確認しながら書き進めることのできるインタプリタ型のほうがコードの修正もしやすく初学者向きと言えるだろう。
そもそも、VB自体が「BASIC」というプログラミングの学習用に開発された言語を発展させたもので、ビル・ゲイツは BASIC が大好きだし、マーク・ザッカーバーグも BASIC でプログラミングを始めた。
バッチ処理の原点。
ファイルのバックアップ処理やテキストファイルの結合、さらにはネットワーク系の操作など、意外と用途は広い。VBScript などと連携させればできることがグンと広がる。
WindowsPC を使うならぜひとも抑えておきたい基本中の基本である。
<第3位> Javascript(および HTML、CSS)
VBScript との違いは、HTML でユーザインタフェースが作れること。
つまり、Office や Google系アプリを使わずに GUI(Graphical User Interface)ツールを作ることができる。
むろん HTML ファイルで保存してもよいが、おすすめは HTA。
<第4位> GAS(Google App Script)
最も有力な使い方はスプレッドシートや Gmail を操作することだろう。文法はほとんど JavaScript なので、JavaScript の経験があればすぐに使うことができる。
ただし、職場が Google Suite を導入していない場合は何の役にも立たない。
<第5位> C#
Windows の標準プログラミング言語と言っていいだろう。Java に似たコンパイル型の言語である。実行ファイル(.exe)を作ることができる。
通常は、Visual Studio などの IDE(統合開発環境)によって開発が行われるが、7以降の WindowsPC には標準で C#コンパイラが組み込まれており、作ろうと思えば(メモ帳などの)テキストエディタだけでアプリケーションを作ることもできる。(かなり大変だが)
<第6位> PowerShell
Microsoft が満を持して開発したシェルスクリプト。
.Net FrameWork との連携が可能で、何でもできると言ってよい。
バッチ用ファイルは拡張子 .ps1 で保存するが、管理者権限がないとファイルを実行できないのが難点。
* * *
以上、第6位ぐらいまでランキングしてみたが、今人気の Python がランクインしていないことに驚く方もいるかもしれない。
Python はコードが簡単でとても学習しやすいし、プログラミング教育用の言語としても相当優秀だ。なので、普通のサラリーマンやOLが自宅で趣味のプログラミングをするなら有力な選択肢となるだろう。
が、職場で使うツールを Python で開発するとなるとハードルがぐっと上がる。とくに Python が得意としている AI開発など、おいそれと素人にできるものではないのだ。そういうのは専門のエンジニアに任せておけばよい。
それよりも、上でも書いたようにいま目の前にある業務を自動化もしくは半自動化する、自分のパソコンに仕事をさせることが大事なのである。