• ベストアンサー

c言語とJAVAの関係性を教えてください。

聞いた話ですがc言語の発展系がJAVAと聞いたのですが、ということはC言語から入ればJAVAに移りやすいですか? 文体も似てると聞きました。 自分なりに調べてみたのですがあまり納得できませんでした。 無知ですがおしえてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • penguiner
  • ベストアンサー率57% (8/14)
回答No.2

直接的なつながりはありませんが、C言語は最も成功したプログラミング言語の1つで、後続の言語にも大きな影響を与えました。特に文字よりもカッコなどの記号を多用する視覚的に把握しやすい記法は、今でも多くのメジャー言語が踏襲するスタンダードなものとなっています。 Cが登場して以後、ソフトウェアエンジニアリングの世界ではオブジェクト指向という概念が出てきました。Cは素晴らしい言語でしたが、テクノロジーは進歩するもので、オブジェクト指向やジェネリックプログラミングなど新しいテクノロジーを取り込んだ言語が望まれるようになりました。そこで登場したのがC++です。C++はCとの互換性を重視しつつ言語仕様を拡張することにより、それまでのCで書かれたソースコードもほぼそのまま使える上に、Cに親しんできたプログラマにもとっつきやすいというメリットがありました。 しかしC++はCの仕様を受け継いだために古く前時代的な部分も残すことになってしまいました。また、言語設計思想的に「なんでもできるように用意するけど、プログラマが自分で使いたいのを選んでね」というものなので、言語仕様がどんどん肥大化し、言語仕様外の沢山のお約束も覚えないとまともにプログラムできない難しい言語になってしまいました。 そこでCの記法は活かしつつも、C++とは違いCとの互換性を捨て、言語仕様もコンパクトにした新しい言語としてJavaが生まれました。そういう意味ではCが親だとしたら、C++とJavaは兄弟と言えるかもしれません。Javaはそれ以外にも直接マシンコードにコンパイルされるのではなく、中間コードにコンパイルされて実行時にマシンコードにJITコンパイルされるという点も異なっています。これにより例えばWindowsでもMacでも共通のコードベースで実行可能という大きな利点がありました。 また2000年代に入ると、さらに言語仕様を近代化させたC#という言語も登場しました。言語仕様的には非常にJavaに近いと思います。そういうわけで、Cに加えてC++,Java,C#などの言語をCファミリ(C語族)と呼んだりもします。どれもCで確立された記法を踏襲しているからです。 さて、Cから入ればJavaに移りやすいか?ですが、プログラミング言語の基本的な考え方は共通していますし、記法もCを踏襲したものなので移りやすいのは事実です。しかしJavaを使いたいならJavaから入ればいいと思います。Javaも入門書は豊富ですし。わざわざCを経由する必要はありません。もちろん、C自体も近代プログラミング言語のお手本のような言語なので、勉強しておいて損はありませんし、最初に入る言語としては良いと思いますが。

その他の回答 (1)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

たぶんラテン語から入れば、英語もフランス語も楽と行っているレベルに近いと思います。 Javaは書き方は似ていますが設計思想は別物ですので、JavaをやりたいならJavaから入れば良いと思います。

tokiwakai_kondo
質問者

お礼

わかりやすい例えありがとうございます。 自分もそのことを頭にいれ調べてみます。

関連するQ&A