C++とは

今回は、「GitHubPullRequest」のシェア率が2019年1月~3月統計で第4位にエントリーされたC++について見ていきます。

C++は名前から見てわかる通り、C言語からはじまるC系言語の一つです。

ところで、C言語とC++の違いはご存知でしょうか?

正解としては、C言語に対して、オブジェクト指向という考え方が利用できるように仕様を拡張したものがC++です。

C++は開発当初「C with Classes(クラス付きのC)」と呼ばれていたそうです。

クラスとはオブジェクト指向を象徴するキーワードです。

オブジェクト指向とは、オブジェクト(モノ)主体のプログラミングである、と言われますが、実際のプログラミングでは、クラスが肝になっていきます。

具体的にいえば、クラスというのはオブジェクトのベースとなる設計図です。

ただし、この設計図は概念的なもので、例えば、「エンジンと車輪で走れる」「ハンドルがあるから操作できる」「椅子があるから人が座れる」といった“できること”ベースになっています。

実際に作る際には、当然ながら「エンジンの馬力」や「車輪の径」など具体的なパラメーターが必要になってきます。

オブジェクト指向プログラミングでは、クラス(できること)を定義してから、その設計図に必要なパラメーターを投入して、実際に動くプログラムにしていきます。

もっとプログラミングっぽい具体例を紹介すると「与えられた金額から消費税計算ができる消費税計算器クラス(設計図)」を最初に作って、そのクラスをベースに「消費税の割合は8%というパラメーターを設定した、消費税計算器オブジェクト」を作る、というわけです。

クラスの定義が必要なオブジェクト指向は、一見、二度手間に見えるかもしれません。

しかし、オブジェクト指向には拡張性が高く、大規模システムに向いている、というメリットがあります。

例えば消費税の利率が変わったとしましょう。

オブジェクト指向であれば、オブジェクトを作る際に与えるパラメーターを5%にしたり、10%に変えるだけで、簡単に消費税の利率変更に対応可能です。

税率変更のたびに、一からプログラミングを見直す必要がないのです。

こうした点から、オブジェクト指向という考えが昨今、スタンダードになっています。

さて、C++の話に戻すと、C++はC系言語の中でも特にC言語との親和性が重視されており、C/C++と表記されることも多いです。

C++の特色(メリット、デメリット)もC言語とほぼ同じです。

C/C++は特に機械(コンピューター)にとってわかりやすいプログラミング言語という特徴があります。

そのため、他のプログラミング言語より高速に実行することができ、細かなハードウェアの動きまで制御可能となっています。

半面、他のプログラミング言語よりもプログラミングの際に、気を付けないことが多い、文法も機械には優しいかもしれないが、人間には不親切という批判もあります。

そのため、一時は、「習得が難しく、モダンなプログラミング言語に取って変わられる」という風潮もありました。

しかし、高速で動作し、ハードウェア側の制御も可能という長所が人工知能(AI)開発向きということで、近年、注目度の高いプログラミング言語の一つとなっています。

高速で動作しハードウェア側の制御も可能という特性から、ゲームエンジンとして有名なUnityもC/C++で開発されています。

昨年の順位と比較して考察

2019年1月~3月統計で第4位にエントリーされたC++ですが、一年前の2018年1月~3月統計では6位でした。

ここ5年間ほど、5位前後を行ったり来たりしている状況です。

登場時期が1980年代と主要言語の中でも歴史があり、C言語との互換性もあるため、保守などの現場で必要となる場面が多いプログラミング言語です。

同時に、上でもお伝えした通り、人工知能開発やゲーム開発、その他にもハードウェアリソースの限られた組み込み系システムでの利用も多く、新規開発も多いプログラミング言語です。

そのため、非常に安定した利用率を誇っていると言えます。

さらに言えば、人工知能開発の世界だけを見れば、人工知能開発に役立つライブラリが充実しているPythonがライバル言語になるでしょう。

しかし、あらゆる点で、C++の地位を脅かす強力な競合相手はいません。

実際、C系言語でオブジェクト指向に対応したプログラミング言語はC++以外にJavaもありますが、得意分野ごとにすみ分ける形で、それぞれ高い利用率を誇っています。

今後も安定した利用率を維持すると考えられます。

C++は転職に強いのか

アイキャッチ

上でも見た通りC++はニーズが高いため、転職市場でも強いプログラミング言語の部類です。

ベースとなるC言語自体が汎用プログラミング言語として、様々な領域で活躍していることもあり、C++の活躍の範囲も広いです。

人工知能開発やゲーム開発といったIT系企業だけでなく、組み込み系システムや、あるいはCADなどのアプリケーション開発・保守改善に関連し、メーカー系企業からの求人もあります。

選択肢の多さでは、屈指のプログラミング言語と言えるでしょう。

ただし、「プログラミング経験(C系言語に限らず実務経験)がある人」という応募条件が付けられた求人が圧倒的に多数です。

理由としては、C/C++は記述が難しい、つまりは習得難易度の高いプログラミング言語ですので、業界未経験者、プログラミング素人さんには厳しいという点が挙げられます。

また、一昔前(もっというとJavaの登場前)まで、C/C++が代表的なプログラミング言語の地位を誇っていたため、プログラミング教育をC/C++で受けたという方も多く、プログラミング素人さんを苦労して教育する必要性は低い、という事情があるように思います。

活躍できる業種と年収

上でも触れましたが、C/C++エンジニアの活躍できる業種は、IT業界、ゲーム業界、メーカー系と多岐にわたります。

このようにニーズが高いものの、習得難易度も高く、エンジニアの数が少ないということもあり、年収が比較的高いプログラミング言語の一つとなっています。

求人サイトなどの提示年収は概ね400万円~1200万円のレンジに収まっていました。

ただし、これはあくまで「プログラミング経験者や実務でシステム開発経験のある方」を対象にした求人情報の話です。

未経験者になると300万円前後(あるいは、もっと安い年収)からスタートになってしまいます。

教育コストがかかるためか、他のプログラミング言語よりも安いくらいに感じます。

逆に人工知能開発のエンジニアは世界的に供給不足ですので、対応できるハイスキル所有者であれば2000万円も届きます。

そうした諸々の事情を勘案すると、平均年収は600万円くらいと言われているようです。

ちなみに、フリーランス向け求人サイトにおいても、提示月収が概ね70万円以上と比較的高い部類かと思います。

まとめ:C++は安定性があるが

すでにお伝えしたところですが、C++はC言語の正統派後継プログラミング言語として、また、人工知能開発やゲーム開発などホットなところでも利用可能なプログラミング言語として、非常に安定したシェアを誇っています。

昨今の転職市場でも仕事探しに困らないでしょう。

ただし、習得難易度が高く、特に実務経験者しか欲しがられないプログラミング言語である、という側面も持っています。

業界未経験者やプログラミング初学者の方が、C++を最初のプログラミング言語として選ぶのは、学習的にも仕事的にも厳しいでしょう。

JavaのようなC++よりも習得難易度が低いとされるC系言語などで経験を積んでから、キャリアアップとしてC++の世界に進出するのが良いかと思います。

今すぐシェアしよう!
今すぐシェアしよう!