ホームページ制作・大阪インフォメーションメディアデザイン

06-6809-5021

Staff Blog
スタッフブログ

  • Twitterでシェア
  • このエントリーをはてなブックマークに追加
  • Google+でシェア
  • follow us in feedly

はじめに学ぶプログラミング言語はCかJavaどちらが良いか

c_or_java

専門学校での授業中に先生が「はじめに学ぶ言語はCかJavaどちらが良いか」という質問をされたことがありました。Javaを学び始めた当時の私は「Cで苦労して作ってた機能が標準ライブラリで提供されてるJava便利!」と思ってたのでJavaのほうに挙手しました。

ところが、就職してからは携帯電話(ガラケー)の開発に携わり、5年ほどC言語を書いてたので今となっては一番経験の長い言語になりました。ちなみに今はRubyをメインで書いてます。

そんな私が今、当時の質問「はじめに学ぶ言語はCかJavaどちらが良いか」に改めて答えるならC言語がいいかな、と思ったのでその理由をいくつか綴っておきます。

ポインタの概念が学べる

Javaにはポインタはありませんが、プリミティブ型と参照型がありますね。
C言語のポインタを使ったことがあれば「参照型ってポインタみたいなものかな」という推測ができて理解が早いかなと思います。引数の値渡しと参照渡しもポインタの概念がわかると理解しやすいはず。

メモリを意識するようになる

Javaだとメモリ領域の開放はガベージコレクタがやってくれますが、C言語では自分で解放しないといけません。
ガベージコレクタのありがたみが分かりますね。

また、最近の言語では配列のサイズはライブラリ側で制御してくれますが、C言語では自分で管理しないといけません。
注意しないとプログラマが意図しないメモリ領域に書き込んでしまうことも…
バッファオーバーフロー脆弱性とかよくセキュリティ問題になったりしますね。

アルゴリズムを考える機会が多い

C言語の標準ライブラリはとても貧弱です。
C言語の標準ライブラリ関数一覧とRubyの組み込みライブラリのページを見比べてもらうとその差は歴然…

なので基本的な処理でも自分で作成する機会が多いです。
たとえば、JavaやRubyだと文字列の置換処理はStringクラスのメソッドで簡単に出来ますが、C言語では自作する必要があったり。 そもそもC言語には文字列型がないのでStringクラス自体が革命的ですよね。
そんなわけなので自然にアルゴリズムを考える機会が増えてプログラミングの基本が学べるはず。

あと、機能が豊富な言語は便利なんですが、ドキュメントを読んだりGoogle検索している時間が長くなりがちです。特に最初は。
その点C言語は自分でプログラミングする時間が長くなるので「プログラミングの練習」には最適かと思いますね。 (C言語でも外部のライブラリを使う場合はドキュメント読まないといけないですが。)

まとめると

プログラミングの基本が学べるので、その後の他の言語の習得が捗るということですね。

ただ、全然とっつきやすさはないですし、役立つGUIアプリケーションとかつくろうと思うと途方に暮れると思うので、社会人の方が独学でやる場合はRubyなどのスクリプト言語のほうがおすすめです。
これから本気でプログラミングを学んでいこうと考えている学生さんなどはC言語もちょっとやっておくといいかな、と思いますね。

うーむ、もっと他にもあるような気がするのですが、文章力のなさで伝えきれない感がありますね…
とりあえず、C言語でのプログラミングは楽しさがあったなあと思うんですよねぇ(思い出補正あり)

この記事を共有する

投稿者:i.M.D. Staff
    2015年08月21日金曜日 | 17:30
    Rubyも楽しいですよ!

    この人が書いたその他のブログ記事

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    ranking 人気記事ランキング

    • I.M.Dコーポレートサイト
    お問い合わせ