なぜ、プログラミング言語の数が年々増え続けるのか
プログラミング言語は、人間がコンピュータを動かそうとするときに、具体的な手順やロジック、目的をコンピュータに伝えるための言葉です。
プログラミング言語は、もちろん、私たち人間によって作られたものです。プログラミング言語は主要なもので10種類以上、細かなものでは数百種類ともいわれています。1種類あれば十分な気もするのに、なぜ人間は、こんなにも多くのプログラミング言語を生み出したのでしょうか。
大きな理由の一つはテクノロジーの進化です。例えば、約20年前にスマートフォンが登場したことで、ポケベルやいわゆるガラケーの時代には馴染みのなかったモバイルアプリという存在が、私たちの生活に欠かせないものとなりました。この変化が、モバイルアプリの開発に適したプログラミング言語を新しく登場させました。
昔はパソコンを持っている人が少なく、インターネットを利用する人も限られていて、ウェブサイトはそれほど重要ではありませんでしたが、いまは誰もがスマートフォンやパソコンを持ち、インターネット上で買い物をするのが当たり前になっています。ユーザーが使いやすいデザインのウェブサイトを作る需要が高まった結果、JavaScript(ジャバスクリプト)というプログラミング言語が発展を遂げました。
料理するとき、万能な三徳包丁が1本あれば、確かに事足りるかもしれません。でも、小さいペティナイフのほうが果物は切りやすいし、パン切りナイフのほうがパンはよく切れる。包丁にたくさんの種類があるのと同じで、プログラミング言語が複数存在するのは、時代のニーズに合わせて、用途に適したツールが生み出されてきたからです。
近年人気が高まっている言語は何か?
それでは、主要なプログラミング言語を見ていきましょう。前述したJavaScriptは、ウェブサイトの見た目であるフロントエンドを作るときに非常によく使われる言語です。
対して、ウェブサイトのバックエンドの開発に使われる言語は、Ruby(ルビー)やPHP(ピーエイチピー)が代表的。弊社のプログラミング学習サービスProgateも、Ruby on Railsという、Rubyを使った枠組み(「フレームワーク」)を利用しています。
近年人気が高まっている言語には、データ分析や機械学習などにも用いられるPython(パイソン)や、Googleが開発したGo(ゴー)などがあります。
古くに開発されたにもかかわらずいまでも現役なのが、C言語です。ゲームをしていると、キャラクターが歩いたら足跡が残る、攻撃を受けたら血が出るといった、細かい動きがたくさんありますよね。このような複雑な指示をコンピュータに与える必要があるとき、よくC言語が使われます。Java(ジャバ。JavaScriptとは別物)も、その汎用性の高さから根強い人気を誇っています。
各プログラミング言語の特徴を把握するには、設計思想を知るといいでしょう。一つひとつのプログラミング言語は、「何の用途で使うものか」という理念や目的に基づいて設計されており、設計思想が違えば、当然、特徴も違ってきます。
ほかにも「レベルが高いか低いか」という視点も、各言語の特徴を理解する重要な切り口です。
プログラミング言語に優劣があるということではありません。簡単に言うと、人間が話す言葉に近いのが高レベル言語(または高水準言語、高級言語)で、コンピュータが直接理解できる言葉に近いのが、低レベル言語(または低水準言語、低級言語)です。
高レベル言語は、人間にとって理解しやすく直感的な文法を持っているので、比較的学習の難易度が低く、プログラムを簡単に書いたり読んだりすることができるというメリットがあります。Pythonがいい例でしょう。
対して低レベル言語は、人間が普通に話す言語とは異なる部分が多いため、使いこなすためには時間がかかります。ただ、コンピュータにとってはわかりやすい言語ですから、コンピュータへの負荷が小さく、実行速度も速くて、高いパフォーマンスを発揮できるというメリットがあります。日本語の翻訳を介さずに、英語話者と英語で直接会話ができるというイメージです。C言語は、上に挙げたプログラミング言語のなかでは最もレベルが低く、コンピュータへの負荷が小さい言語と見なすことができます。
言語を選ぶときに管理職が確認すべき3つのポイント
システム開発にあたり、使用するプログラミング言語を文系管理職がひとりで決めることはあまりないはずですが、エンジニアからの提案を上長として判断しなければいけないシーンは実際にあると思います。言語の選定が妥当かどうかを判断するポイントは、主に3つです。
まずは、言語の性能の高さです。システムのパフォーマンスは言語のポテンシャル次第で大きく左右されます。複雑なプログラミングが必要な場合はC言語が適していますし、高度な計算処理が必要な場合はJavaが有力です。
次に、言語の可読性。つまり、わかりやすさです。わかりやすいということは学習しやすいということですから、その言語ができる人材が比較的多くいることを意味します。プログラムを書きやすいということでもありますから、開発速度も速い。また、読みやすいので、メンテナンスもしやすい。あとからほかの人がプログラムを見ても何が書いてあるか理解しやすいので、バグの修正やアップデートなどもスムーズに行えます。
最後のポイントは、新しい言語かどうか。言語が新しいほど使いこなせる人は少ないわけですが、実は、新しく開発された言語を使うプロジェクトほど、エンジニアの応募が多く集まります。
エンジニアは知的好奇心が高い人が多いので、新しいものを学ぶことにやりがいを感じ、他の人がまだやったことのない領域を開拓するというチャレンジを好む傾向があります。自分の技術力が給料に直結する業界のため、給与を上げるために新しい言語を学んでスキルアップしたいという考えも強く持っている。
そのため、開発プロジェクトに新しい言語を採用すると人材を確保しやすくなる傾向があります。ただ、「メンバーが全員初心者」という状況も発生しえます。できるだけ不確実要素を減らしてしっかり成果を出したいと考える管理職にとって、これはジレンマだと言えるでしょう。
言語選定の際、エンジニアに必ず質問するべきこと
どのプログラミング言語にも、メリットとデメリットがあります。重要なのは、プロジェクトの目的や優先事項、方向性に照らして、最適な言語を選ぶことです。
判断の際には、「なぜこのプログラミング言語を選んだのか」をエンジニアに質問しましょう。そのうえで、「今後システムを大きくしていく可能性があるけれど、JavaScriptで問題ない?」「PHPは少し古い言語だけど、人は集まる?」「今回のプロジェクトは遅れが許されないけれど、比較的新しいGoでも問題はないかな?」というように、エンジニアにあなたの懸念事項を共有し、アドバイスを聞きましょう。
このようにエンジニアと十分なコミュニケーションをとれば、プロジェクトに相応しい言語を選定できるだけでなく、会社あるいは管理職として達成しなければいけない「マスト」と、現場がやりたいと考えている「ウィル」をすり合わすことも、可能になります。


