C言語でできること
プログラミングを始めるからには何かこんなことをしてみたい、という目標があることでしょう。
ここではC言語がその目標を適えられるものなのかどうかについてお話します。
結論から言うとC言語は何でもできます。
他の参考書や入門サイトを見ても同様の説明があるでしょう。
C言語はライブラリを読み込むことで機能を追加できる、ハードウェア的な自由度の高さから幅広い目的に対応しています。
C言語の歴史は古く、40年以上も研究が進められてきました。そのため使用者も多く、ライブラリも充実しています。
また、C言語が難しいと言われる所以でもありますが、他の言語では自動化されてしまうハードウェア的な処理を手動で行うことが出来ます。
ポインタによるメモリの制御がその例です。C言語ではアドレスを使って自由にメモリを制御することができます。
これらの理由からC言語は何でもできると言われています。
具体的には?
先ほどから「何でも」と表現していますが、具体的にはどのようなことが出来るのでしょうか。
- アプリケーション
- OS
- ミドルウェア
- webアプリ
- スマホアプリ
- 組み込みシステム
exe形式で実行するいわゆるソフトウェアです。オンラインゲームから業務パッケージまで幅広いジャンルのソフトを作れます。
WindowsやLinuxといったようなオペレーティングシステムもC言語で書くことが出来ます。ハードウェアの管理が可能なCだからできることです。
アプリケーションソフトウェアとOSの間に入るシステムです。よく使われるシステムを部品化して集約します。
あまり使われませんがwebアプリも作ることができます。
JAVAやObjective-Cが主流ですがC言語でも作ることが可能です。
家電製品などに搭載したマイクロコンピュータ上での動作です。
C言語を使う場面
「何でも出来る」ので何でもC言語で書けばよいかというとそうではありません。
現在200以上のたくさんの言語がありそれぞれに特徴があります。なので多くのプログラマは目的に応じて複数の言語を使い分けます。
ではどのようなときにC言語を選べばよいのでしょうか。
C言語の特徴は高速であることと、記述が難解であるという点です。
そのため作業効率を考えると、より簡単な言語があればそちらを使うべきでしょう。
C言語でなければいけない場合は何よりも速度が求められる場合です。オンライン処理や3Dのゲームなどが代表的です。
また、現在はC++というC言語の完全上位互換の言語が存在します。
今後C++に移り変わっていくと思われますが、C言語を学ぶことが無駄というわけではありません。
今でも古いプログラムはCで書かれています。情報が多いのもC言語の利点です。