C++はC言語をベースに機能を拡張したオブジェクト指向のプログラミング言語です。40年近い歴史を持ち、2020年現在でも常に人気のプログラミング言語TOP10にランクインするなど高い需要を保ち続けております。汎用性が高い言語として組み込み、Webアプリ、業務アプリなどの開発に使用されております。この記事ではC++を理解するために初心者でも分かる歴史、特徴、できること、基礎知識などを簡単に解説していきます。
C++(シープラスプラス)とは1985年に『AT&Tベル研究所』のビャーネ・ストロヴストルップ氏によって開発されたC言語をベースに機能を拡張したオブジェクト指向のプログラミング言語です。オブジェクト指向の要素だけでなく手続き型プログラミング、データ抽出
、ジェネリックプログラミングなどの複数の要素を兼ね備えるマルチパラダイムプログラミング言語となっております。C++にはいくつかの種類が存在しており代表的なものとして「Borland C++(ボーランドシープラスプラス)」「Visual C++(ビジュアルシープラスプラス)」などが挙げられます。主な用途としては組み込み系システム、WEBアプリケーション、業務システムなどの開発が中心となっております。
中でも組み込み系システムの開発において対象の機器が必要となる機能を実現するために正しく動作及び制御させるために多くの場面で使用されております。誕生から40年近くという長い歴史を持つプログラミング言語ですが2020年現在でも多大な人気を集めており「TIOBE Index for March 2020」の調べによるとプログラミング利用シェア第4位に位置付けております。
C++の読み方は『シープラ』が一般的となっております。正式名称の「シープラスプラス」では呼びにくいこともあり、このように省略して呼ぶことが定着したようです。名前の由来はC言語の上位互換verでもあることから「C言語より一歩進んだ言語」を表す意味が込められております。またC++は公式リリース前の数年間は「C with Classes(シーウィズクラス)」という名称でした。
C++はアメリカのAT&Tベル研究所において計算機科学者ビャーネ・ストロヴストルップ氏によって1985年にC言語をベースに開発されたオブジェクト指向のプログラミング言語です。起源を辿ると1979年にストロヴストルップ氏がクラス付きのC言語である『C with Classes』を開発したことから始まります。このC with Classesは4年間の中で様々な改良を重ね1983年にC++へと名称変更を行い、1985年10月に最初の商用リリースがされました。
1998年になると国際規格であるISO基準の認可を取得し、国際的に認められるようになりました。以降3,4年に一度のサイクルで国際規格に認定をされていおります。(詳細は以下の表をご覧ください)
名称 | 年代 | 国際規格 |
C++98 | 1998年 | ISO/IEC 14882:1998 |
C++03 | 2003年 | ISO/IEC 14882:2003 |
C++TR1 | 2007年 | ISO/IEC TR 19768:2007 |
C++11 | 2011年 | ISO/IEC 14882:2011 |
C++14 | 2014年 | ISO/IEC 14882:2014 |
C++17 | 2017年 | ISO/IEC 14882:2017 |
C++20 | 2020年(予定) | ISO/IEC 14882:2020 (予定) |
C++23 | 2023年(予定) | ISO/IEC 14882:2023 (予定) |
C++の人気推移について見ていきましょう。C++は誕生より40年近い歴史が経った今も多大な人気を集めておりおます。ではここ最近の推移はどのように変化していったのでしょうか。RedMonk言語ランキング
(https://redmonk.com/fryan/2018/03/15/redmonk-language-rankings-over-time/)
の発表している順位推移を同様に長い歴史を持つプログラミング言語であるC言語とJavaと共に以下の表に表してみました。
C++ | C言語 | Java | |
2012年 | 7位 | 8位 | 2位 |
2014年 | 6位 | 8位 | 1位 |
2016年 | 6位 | 9位 | 2位 |
2018年 | 6位 | 9位 | 2位 |
2019年 | 6位 | 9位 | 2位 |
上記の表を見ても分かる通り、多少ではあるものの後退気味であるC言語とは対照的に現在でも需要を伸ばしていることが分かります。C++は汎用的な言語であるためWEBアプリケーション、業務システム、組み込み系システムの開発など様々な場面での使用がされる上にC言語の上位互換であることがこのような結果に結びついている要因と言えるでしょう。業界視点でも見ても需要の大きい自動車関連業界、家電系業界など今後も長く重宝されることが予測されるため大きく人気の順位を落とすことも考えにくいです。将来性でも見ても当面の間、多くの方に必要とされるプログラミング言語であることに違いありません。
C++はコンパイラ型言語という人間が書いたプログラム(ソースコード)をコンピュータが理解できる形式(機械語)に変換するプログラム言語です。コンパイラという言葉は英語の『compile』を表し、『編集する』を意味します。コンパイラ言語の特徴は『処理速度が早い』ということが挙げられます。対比されるインタプリタ言語と比べても実行時の性能が高いと言われております。一方でコンパイラ言語には『修正が容易では無い』というデメリットがあります。代表的なコンパイラ言語としてJava、C言語、Objective-Cなどが挙げられます。
コンパイラ言語の種類や特徴を解説している記事はこちら>>
C++でできることを見てきましょう。
組み込み系システム開発とは様々な電子機器等の独立した機器が仕様書通りの機能を実現するために専用のコンピューターを搭載し開発することです。皆様が日常で活用する電子機器のほとんどが組み込み系システムに該当します。例えば、テレビ、冷蔵庫、洗濯機、デジカメなど商品本体を動作させるために専用のコンピューターが搭載されております。その専用のコンピューターを商品本体が仕様書通りの機能を実現させるためにシステム構築を行うことを組み込み系システム開発と呼びます。
組み込み系システム開発の種類や特徴を解説している記事はこちら>>
AI開発(人工知能を併せ持つシステムの開発)をすることができます。AIとは『 Artificial Intelligence』の略語で日本語訳をすると「人工知能」を意味します。世界各国で最も注目を集める技術分野の一つで、近年革新的なスピードで技術発展を遂げております。他にもAI開発に用いられる主要なプログラミング言語としてGo言語やPythonが挙げられます。
Go言語の特徴やメリットを解説している記事はこちら>>
Python言語の特徴やメリットを解説している記事はこちら>>
Webアプリケーションの開発をすることができます。Webアプリケーションとは Webサーバー上で動くアプリケーションのことです。C++でWebアプリケーションの開発を行うには『TreeFrog Framework』というフルスタックWebフレームワークが有名です。また最近でもC++で書かれたWebアプリケーション用の強力なフレームワークが登場しており『drogon』『oat++』などが人気を集めております。
C++の特徴を見ていきましょう。
C++はオブジェクト指向言語です。
代表的なオブジェクト指向言語としてJava、C言語、Objective–Cなどが挙げられます。
C++はC言語がベースに作られたプログラミング言語です。ソースコードは一見するとC言語とはかけ離れたように見えますが、基本的な構文などはC言語になぞられていることがわかります。他にもC言語がベースで作られた言語としてC#やObjective-Cなどが挙げられます。
C++は非常に汎用性が高い言語として人気を集めております。利用シーンはWEBアプリケーション、業務システム、組み込み系システムの開発など多岐に渡ります。
C++とC言語は『C++がC言語の上位互換ver』という違いがあります。どちらも『AT&Tベル研究所』にて誕生しており、C++はC言語をベースに機能を拡張する形で上位互換verとして開発されました。主な違いとして表現力と効率性の向上が挙げられます。他にも様々な観点で比較した内容は以下の表をご覧ください。
C言語 | C++ | |
誕生時期 | 1972年 | 1985年 |
表現力 | ○ | ◎ |
安全性 | ○ | ◎ |
汎用性 | ○ | ◎ |
フレームワーク | ○ | ◎ |
情報量 | ◎ | ◎ |
将来性 | △ | ○ |
C++の代表的なフレームワークを見ていきましょう。
TreeFrog FrameworkとはC++に活用される日本製のフルスタックなWebアプリケーションフレームワークです。サーバーサイド用のフレームワークとしてプログラミング言語はC++、フレームワークはQtで開発されました。特徴として「高パフォーマンス」「O/R マッピング」「多くのDBに対応」などが挙げられます。アップデートの周期も3ヶ月に1度以上
実施されており安心して使用することができます。
TreeFrog Frameworkの公式サイトはこちら>>
TreeFrog FrameworkのGitHubはこちら>>
QtとはC++に活用されるクロスプラットフォームアプリケーションフレームワークです。リッチなGUIを表現し、高い生産性を実現することができることから高い人気を集めております。公式サイトは日本語ドキュメントへの対応もしっかりと行われているため安心して利用することができます。
Oat++とはC++に活用されるWebフレームワークです。ネイティブコードであるため動きも早く、他のライブラリにも依存しないということから使いやすいという声が多く愛されております。その他の特徴として「5M接続の処理」「コードの一貫性を保つ」などが挙げられます。
C++を理解するために初心者でも分かる歴史、特徴、できることなどの基礎知識を簡単に解説させていただきました。C++を一言で表すと『C言語をベースに機能を拡張したオブジェクト指向のプログラミング言語』です。特徴として「オブジェクト指向」「C言語ベース」「汎用性が高い」などが挙げられます。C++は1985年に誕生して以降40年近い歴史が経ちますが今もなお高い需要を保ち続けております。C++についてこの記事に記載されている最低限の内容は理解しておくようにしましょう。