- ベストアンサー
言語を多数習得する意味
プログラミング初心者です。趣味の範囲でWeb上の簡単なシステムの設計を行っています。 現在PHPとMySQLを使っていますが、本格的にAjaxを学ぶ必要があるのか悩んでいます。 というのも、プログラミング言語を学んでいくと、PHPとJavaScript、JavaとC+のように、どうも性質が似通って感じられる言語が多くあり、この双方を習得する意味が、果たしてあるのだろうか、と感じてしまうわけです。 企業などで作業すれば当然その職場で使われている言語を使用しなければなりませんので、そう言う意味で必要だとは思います。ですがもし個人が趣味の範囲で設計を行うとするのなら、例えば「最低限Javaさえ習得すれば何でもできる」といったことが言えてしまうのでしょうか。 抽象的な質問ですみません。 そういう意味での意見、感想、上の質問への回答も含め、答えてくださると嬉しいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>>プログラミング言語を学んでいくと、PHPとJavaScript、JavaとC+のように、どうも性質が似通って感じられる言語が多くあり、この双方を習得する意味が、果たしてあるのだろうか、と感じてしまうわけです。 例に上げられた言語は、どれか1つを完璧にマスタすれば、普通のWebシステムがまかなえるという状況には現在ありません。なので、似通っているけど、複数をマスタする必要がありますね。でも、全部ってわけではなく、Webの世界:(PHP or Java)+(JavaScript), その他の世界:(C++)って大雑把に分けるのが普通でしょう。 >>例えば「最低限Javaさえ習得すれば何でもできる」といったことが言えてしまうのでしょうか。 言えないと思います。とくにJavaが「ピュアJava」を意味しているなら。普通にやりたいことを実現するなら、ごちゃごちゃしたいろんな技術をマスターしないと、やりたいことができないです。このあたりの話題は、「JavaからRubyへ」の「苦痛・低生産性・もたつく立ち上がり」などの単語が見られる第2章とか「実践Ruby on Rails Webプログラミング入門」などのJava(Struts)とRuby(RoR)のコード比較などを読まれると状況が把握できると思います。 さらに、C++がメインの分野(複雑で速いレスポンスが必要な分野)には、やはりC++が必要ですね。 なお、現在では、No.1さんが書かれている「Ruby on Rails(RoR)」が注目されています。これは、「Webシステムをプログラマの能力や頑張りではなく、使いやすい道具(ツール)を開発して生産性をアップする」という発想で作られています。つまりは、「飛行場を作るのにスコップとツルハシと人力」じゃあなく「ブルドーザを発明して効率よく作り上げる」っていう発想ですね。日本人的には、額に汗しないで、楽して仕事をすることが「悪」と考えられた歴史がありますので、RoRに対して反発がある方もいらっしゃるかもしれません。 もしかすると「開発期間が1/5~1/10になるRoRには消えて欲しい。俺のJavaでの請負単価が下がるじゃないか!」なんて考える方もいらっしゃるかもしれませんね。 >>本格的にAjaxを学ぶ必要があるのか悩んでいます。 Ajaxは現在注目されている技術ですが、DB設計など、普遍的で、この先もしばらくは消えないような基礎技術を学ばれるほうがいいと思いますよ。 P.S. 先日、日経BP社のフロアでソフトウエアファクトリ研究会なんてのがあったのですが、そこで「RoR」の話題が出ていました。それはアジャイル開発手法の実例としてでした。アメリカ・中国・ベトナム等のソフト会社の現状との比較で「日本にはアジャイルを否定する会社も多い。でもそれではシステム開発の世界で、”日本だけ一人負け”になるかもしれない。若い人には、そうした危機感のない方も多いように思う」という発言もありましたね。
その他の回答 (3)
- sha-girl
- ベストアンサー率52% (430/816)
>PHPとJavaScript、JavaとC+のように、どうも性質が似通って感じられる言語 それらは、まったく思想の異なる言語です。 まずPHPとJavaScript PHPはサーバーで実行されますがJavaScriptはクライアントで実行されます。 JavaとC++ これだってJavaはVMが必要ですが、C++はネイティブコードをはきます。 根本的な性質が違います。 さらにいえばJavaのジェネリックとC++のテンプレートも思想がまるで違います。 似通ってると感じるとするならHelloWorld のような単純なコードぐらいです。 >最低限Javaさえ習得すれば何でもできる それは要求されている環境でJava-VMが動く事が前提になっていますよね? そのJava-VMは誰が作るのですか? WindowsやUNIXが全てではありません。世の中にあるマシンのほとんどは Java-VMが動きません。 例えば私はゲーム開発をしていますがサーバーサイド以外でJavaを使う事は ありません。 webを使っているということはapacheやbindも使うこともあるでしょう? そのソースがjavaで書かれているでしょうか? 他にもデバイスドライバ等、下位層のものはJavaで作ることは出来ません。 ほとんどのプログラマが上位レイヤーを作っていると考えておられるのなら それは間違いです。例えば貴方の使っているWindowsPCには 多くのメーカーのパーツからなりたっていると思いますが 各メーカーはドライバも作る必要があります。 >「最低限Javaさえ習得すれば何でもできる」 Javaのできる範囲の事が出来ます。 例えJavaが動くWindowsであってもJavaで高速に動く3Dのゲームを作れといわれたら 現時点では無理です。
お礼
なるほど、どの段階で何を開発するかによって最適とされるものも、その前提として要求される技術も変わっていくということですね。 「なんでもできる」という言葉を軽率に言ってしまったようですね、申し訳ありません。私は高水準言語で開発することを主に考えていましたし、何より業として行っているわけではないので、ドライバや、より機械語に近い言語で書かれるべき部分に関しては全く無視して考えていました。 >Javaで高速に動く3Dのゲームを作れといわれたら現時点では無理です。 これに関しては驚きました。正直ゲームなどの開発では、殆どがJavaでまかなわれてしまうのではないかという間違った認識を持っていました。 参考になりました。ありがとうございます。
- rabbit_cat
- ベストアンサー率40% (829/2062)
>PHPとJavaScript、JavaとC+のように、どうも性質が似通って感じられる言語が多くあり、 まさにその通りなんで、 >「最低限Javaさえ習得すれば何でもできる」 というよりも、 「最低限Javaさえ習得すれば、どんな言語でも半日でマスターできる」 というほうが、現実に近いかと。 言語ごとに得意不得意はあるんで、やりたいことに向いた言語を使えばいいかと。
お礼
なるほど。私の知人が通っている大学ではJavaを中心に講義が組まれていると聞いていますが、最低限Javaをマスターすれば問題ない、という考えなのかもしれませんね。一つの言語を習得すれば他が楽になる、というのは私も経験があります。 回答ありがとうございます。
- asuncion
- ベストアンサー率33% (2127/6289)
JavaはC++からの流れをくむ言語ですので、 考え方や文法に似通ったところがあるのだと思います。 ただ、お互いに得意な領域はあると思いますので、 両方知っていて得をすることはたくさんあっても、 損をすることは全くないでしょう。 一方、PHPとJavaScriptは、活躍する場所が全く異なります。 PHPはサーバーサイド技術の代表選手で、 JavaScriptはクライアントサイド技術の代表選手です。 両方をうまく組み合わせて、リッチなWebサイトを構築するのに 役立ちます。 最近の個人的なトレンドは、RubyとRuby on Rails(RoR)です。 まだRubyに取りかかったばかりなのですけれど。 また、今月中に「Ajax on Rails」という本が出るようですので、 私としてはこちらも要チェックです。
お礼
なるほど、ありがとうございます。PHPとJavaScriptは確かにそういった違いがあると本で読んだことがありますね。ですがどうもJavaScriptで行うことはPHPで全て出来てしまう気がして、、修行不足ですね。 Rubyはまだよく知らないのですが、Javaに近い言語という印象を受けています。機会があれば、幾つか他言語の本も読んでみたいと思います。 回答ありがとうございます。
お礼
正に望んでいた回答でした。ありがとうございます。 現在はやはりそれぞれの言語の特徴をしっかり把握した上で、臨機応変に使い分けていく必要がありそうですね。色々と書籍を漁りながら、あまり浮気性にならない程度に知識を増やしていこうと思います。 RoRに関しても興味深いです。効率化や自動化が雇用問題に発展した歴史を鑑みると、開発環境の革新的な変化は色々な弊害をもたらすのでしょう。 日進月歩といわれる業界ですが、日本も世界的な進歩に立ち遅れないよう、個々人が意識を持っていく必要があるかもしれませんね。