プログラミング言語のイメージ(独断と偏見)
自分が今まで学んだ言語を「初心者が学ぶ場合どれを選ぶべきか」という視点で考えてみます。(自分が今までに学んだことのある言語だけです。)
C言語
利点
-関連書籍が多い。基礎的なプログラミング関連本はC言語を採用していることが多い。
-多くの言語がC言語を参考にしているため、後から別の言語を習得するのが容易
-ハードウェアに近い言語であり、OSの勉強やアセンブリと相性がいい。
欠点
-ハードウェアに近すぎるため、コンピュータに「何をさせるか」より「どうさせるか」を考える割合が他の言語より多め。
-オブジェクト指向に向いていない。
-標準の関数がジャジャ馬のような動きをする。コンパイラによってはそういう関数を使うと怒られるので、教科書通りに書いているのに警告が出て、実行できないことも。
C++
利点
-C言語の知識がそのまま使える
-オブジェクト指向が使える。
-色々なプログラミングの概念を取り入れているので、他の言語を学ぶのが楽になる。
欠点
-仕様がデカすぎる。
Java
利点
-かなり広まっているため書籍には困らない。
-オブジェクト指向の説明にJavaが使われていることが多い。
-どんなコンピューターでもjavaを入れれば動かせる。
-ゲーム、モバイルアプリ、webなど幅広い分野で使える。
欠点
-オブジェクト指向以外のちょっとしたプログラムにはあまり向いていない。キーボードから入力するという単純なことさえ、入力用のオブジェクトを作って、そのオブジェクトに入力を受け取らせるという感じで手間がかかる。
-いちいち関数名やオブジェクト名が長いので、統合開発環境はほぼ必須。テキストエディターでサッと作ってパッと実行したいようなときには不便。
PHP
利点
-webプログラミングに特化した言語でありwebプログラミング関連の書籍が豊富。
-htmlに直接書ける。
-簡単。
欠点
-書くのは簡単だが、簡単にセキュリティゆるゆるのプログラムが書けてしまうのでセキュリティ警察に怒られる。
-一部の関数の名付け方がデタラメ。
perl
利点
-早期に正規表現を取り入れた言語で、正規表現関連の書籍が多い。
-昔はwebプログラミングはperl一択だったので、web関連の書籍も多い。(ただし、ちょっと古め)
-ショートカット記法がたくさんあるので、極めると複雑なプログラムをすぐに書くことができる。
-ワンライナー(一行プログラミング)で簡単にテキスト処理が可能。
欠点
-省略記法が多すぎて、他人のソースコードを読むのが非常に難しい。
-やや古い言語なので、変数の書き方などちょっと煩雑なところがある。
python
利点
-「改行」と「インデント」を文法に取り込んだことで、初心者でも自然とキレイなコードが書けるようになる。
-マルチパラダイム言語で、構造型プログラミング、アルゴリズムとデータ構造、オブジェクト指向など、プログラミングの重要概念をカバーできる。特に初心者にオススメ。
-python3から特に宣言などしなくても日本語を普通に扱えるようになっている。
-言語にシンプルなエディター兼インタープリターがついてくるのですぐそこそこ本格的なプログラミングができる。
-亀を操作してお絵かきするturtleが最初からついてくるので楽しみながらオブジェクト指向が学べる。
欠点
-最近python2からpython3にアップデートされた結果、python2とpython3の解説が混在し、混乱しやすくなっている。
-日本ではあまり広まっていないこともあって、まだ翻訳されていないpython3英語ドキュメントが多め。
ruby
利点
-コードが英語に近く、初めて読んだ場合でもソースの意味が分かりやすい。
-「純粋オブジェクト指向」の言語だけあって、オブジェクト指向関連の書籍も充実。
-日本人の作った言語なので、日本語の解説も多い。
-ruby on railsのおかげで、webプログラミングにも向いている。
欠点
-「純粋オブジェクト指向」の超イケてる感じが初めてプログラミングを学ぶ場合はピンとこない。
VBS
利点
-簡単にGUI(ウィンドウが出てきてクリックとかできるプログラム)が作れる。
-エクセルマクロを作るとき参考になる。
欠点
-学ぶと何故かバカにされる。
-必然的にGUIの解説が混ざってくるので、やや複雑になる。
JavaScript
利点
-htmlを自由自在に操作できる。webプログラミングを勉強するにはほぼ必須。
-ブラウザさえあれば簡単に始められる。
欠点
-簡単に始められるといいながらhtml(とCSS)の知識がある程度必要になってくる。
-基本的にhtml操作以外のことはできないか、向いていない。ファイル操作やテキスト処理がしたいのなら別の言語を学んだほうがいい。
Lisp
利点
-基本文法があまりにもシンプルなので、すぐ覚えられる。
-基本文法があまりのもシンプルなので、自分で自由にカスタマイズしてほとんどオリジナル言語にできる。
-プログラミングの名著「SICP(計算機プログラムの構造と解釈」で解説に使われている言語が、方言のscheme。
-テキストエディターemacsの設定に使われている言語。emacsを自由自在にカスタマイズできる。(その気になればemacsでテトリスもできる)
欠点
-方言(オリジナルカスタマイズ言語)があまりにも多い。
-カッコが多すぎる。
まとめ
初心者向けで無難なのはpythonとrubyあたりだと思います。就職に有利だからと言ってJavaから学び始めると……オブジェクト指向の概念が分かりにくくて、そもそもなぜオブジェクト指向を使うのかが分からず、つまづくことでしょう……(実体験)。C言語も広まっている言語ですが、いざ始めようとすると、windowsだとVisual Studioとかインストールしないとまともにプログラミングできないし、そのVisual Studioも結構お節介で、ちょっとでもまずい関数を見つけると警告を出してくるので、初心者にはつまづくポイントが多いと思います……。
この記事が気に入ったらサポートをしてみませんか?