- 締切済み
プログラミング言語の質問です
プログラミング言語の質問です プログラミング言語を今から勉強しようと思います。 そこで、オブジェクト指向の言語として(というより、今の社会で役立つ言語として)習うべきなのはどの言語でしょうか? 私は候補として、javaとC++を知っていますが、どう違うのかは分かりません。 どちらもCからの派生みたいなことは知っています。 そこで、javaとC++を比較して (1)どう違うのでしょうか?(できることの違い) (2)どちらの方がより優れていると思いますか? 今のところjavaとC++を考えていますが、他の言語の方が良いなら教えてください。 その他、プログラミング言語に関して知っておいたほうが良いことがあれば、 ぜひ教えてください。 回答よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- bigbang2010
- ベストアンサー率0% (0/0)
>今の社会で役立つ言語として ということならば、どちらでもOKです。 プログラミング言語としてどちらかを習得していれば、もう一方へはすぐにシフトできます。言語の比較という点ではBuriBuri4さんのおっしゃる通りだと思います。 現場からの視点で言わせていただけるならば、重要なのは、設計力、ロジックの構築力、ドキュメント作成能力です。要は経験です。例えば、C++で作成する案件がある場合、『C++が出来る新人』よりも『VBS経験があるVBSしか知らない人』を選びます。 >今の社会で役立つ言語として 文面から察するに、これから社会に出られる方なのでしょうか? だとしたら、数をこなして経験を積むのはちょっと難しいかもしれませんね。私は、次のような学習方法をお勧めします。 Step1 世の中の入門本を買えば、一通りプログラムは作れるようになります。 まずは、ここまでです。これで基本的なことは出来る(理解ではない)ようになります。 そうしたら、ここからが勉強です。 Step2 まず、簡単なプログラムを作ってみてください。例えば、一行だけ編集できるテキストエディタとか。 そして、それをどんどん拡張していってください。行数を増やす・検索メニューを追加するなどです。わからない事があればネットで調べたり本を読んだりして調べてください。 そんな中で、新しいことが分かるたびに『何でこんな作り方してたんだろう』『こんな便利な方法があったのか』と思うはずです。そう思ったら作り直してください。新しいアプローチで、全く違う構造で作り直すのは、かなり良い勉強になります。そして、どんどんカッコイイプログラムにしていってください。 それから、『プログラム言語を使ってプログラムが組めるようになる』ことと『オブジェクト指向を理解する』ことは別物だと思ってください。世の中の本もそのように分かれているはずです。 …という見方もあります。
- BuriBuri4
- ベストアンサー率28% (150/525)
>どちらもCからの派生みたいなことは知っています。 C++はC言語にオブジェクト指向プログラミングに必要な機能を付け足したもの。なのでC言語の派生と言えるがJavaは全く別物。文法は似ていて通じるところはあるが根本的な思想が違う。 1) JavaはJVM(Java Virtual Machine:Java仮想マシン:実在しないコンピュータのエミュレータだと思えばよい)上で動作します。 JVMが用意されていればWindowsでもMacでもUnixでもLinuxでもプログラムの変更なしに動作します。 Javaは提供形態で大雑把にServlet(サーバーサイドJava)、Applet(Webブラウザに読み込まれ実行されるJava:JavaScriptとは別物)、Application(ローカルコンピュータ上で実行されるJava)に分けられます。 WebシステムはServlet(とOracleの組み合わせ)を利用する事が多く企業内ツールではApplicationも増えてきています。 C/C++はプラットフォーム(実行環境)依存のコードを生成するのでプラットフォームが変わればコンパイルのやり直し(大抵は各プラットフォームに合せた修正が必要、修正自体が不可能な事も多い)が必要 プラットフォームの能力を最大限引き出す事が出来るので、大量のデータを扱う処理(高速処理が必要なシステム)や高度なグラフィック処理が必要なシステム、組み込み系など実行コードサイズを小さくする必要があるシステム等に使用される。 2) 比較するためには比較条件が必要ですが、何を持って「優れている」とするか一概には言えない。 オブジェクト指向言語として比較するならC++が構造化言語であるCの延長上にある都合上「オブジェクト指向とはなにか?」を理解した上でオブジェクト指向になるように使わないとクラス機能を使っただけの構造化プログラムになりやすい。 Javaは最初からオブジェクト指向言語として設計されているのでその点では優れている。