- ベストアンサー
C系とJavaの違い、どちらを学ぶべきか
- C系とJava、どちらの言語を学ぶべきか迷っています。自社のWebコンテンツやサーバ上のデータを自動で処理し、数学的な処理も行いたいです。C系は自分でプログラムを作成する必要がありますが、Javaはライブラリやフレームワークが充実しており開発しやすいです。
- C系とJavaの違いはライブラリやフレームワークの存在です。C系は基本的に自分でプログラムを作成する必要がありますが、Javaは多くのライブラリやフレームワークが存在し開発が楽です。また、JavaはセキュアなWebアプリや携帯アプリの開発に使われます。
- C系とJavaのどちらがパソコン内部でシステムを動かす際に適しているか迷っています。調べても難しくて分かりませんでしたが、C系がシステムに適しているように思います。ただし、Javaはライブラリやフレームワークが豊富で開発がしやすいという利点があります。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
もしかしてスクレイピングがしたいのではないでしょうか? Webページを取得して解析加工する技術全般を指す言葉ですが、実はPHPとスクレイピングは 非常に相性が良いです。 PHPではURLを直接fopenできますし、そんなことしなくてもスクレイピング用ライブラリが 各種存在しています。 C言語では、ソケットの作成からHTTPのヘッダ構築まで全部自分で面倒をみないといけません。 まるでメリットがないと思います。 「データを自動で吸収」するプログラムを走らせるのはLinuxサーバ上でしょうか? そうであれば、cronでPHPスクリプトを定期実行することで実現可能です。 Windowsは詳しくないですが、定期実行の仕組みはあったかと思います。
その他の回答 (4)
- 0909union
- ベストアンサー率39% (325/818)
>自分はPHP、JavaScript等のWeb言語などは習得しているのですが、C系 スクリプト言語と、プログラム言語では、全然違います。オブジェクト指向がなれているからなんて、考えるのはお粗末です。 でNo1さんも言っていますが、お使いのソフトがなぜC++、アセンブラで作られているか考えた事あります? もちろんWindowsなどは.NETを含めたC#などもOSに入り始めていますが、根本はハードに近い所で動作するのか、ユーザーアプリケーションでも、ハードにはほぼ関係なく動作するか、API、SPI、フレームワークがすでに用意されているかで、使用されれる言語が違ってきます。 言い換えれば、用途によって変更する物だ。 て、事です。 極端に言えば、Webアプリを作るのにアセンブラを使う人はいません。画像処理する言語でC#やJavaを使う方はいませんし、苦手というよりできません(できるが細かいところでできないことがたくさん)。 で、 >C系とJavaの違いとして、ライブラリ から始まるくだりは、ほとんど認識ま違いです。呼び方が違うだけで、ほぼ同じ物があり、お互い足りない分を補完できます。 Javaは、単独では動作できません。JavaOS なる物があれば、単独で動作できますが、現在はVMを利用します。 動作方法を探ればすぐわかるはずです、必ずJ2SE等を設置するか http://java.com/ja/download/ にあるような、「Java Runtime Environment を、Java Runtime、Runtime Environment、Runtime、JRE、Java 仮想マシン、仮想マシン、Java VM、JVM、VM」を設置する必要があります。 これをWindowsで単独で動作させるようにEXEファイルに変換する方法もあります。また、サービスとして動作させる方法も提供されていますが、結局VM上で動作します。 http://search.yahoo.co.jp/search?b=1&n=10&ei=UTF-8&fr=ie8sc&p=JAVA%E3%80%80OS (JavaOSについて、該当ページをよく読んでください) Javaの最大の利点は、マルチプラットフォームです。つまり、UNIX系、Linux、PCマシン等、ハードを選ばない所にあります。 とはいえ、実は、それぞれのOSのライブラリーがあり、個別の動作は、それぞれに格納され、呼び出されます。 Cでも全く同じです。それぞれのプラットフォームで再コンパイルすればいいだけです(その時に、そのOS、ハードに対応したライブラリー等がリンクされる<=させる)。 そうなんです、Javaはあまりコード変更をしなくても、マルチに動作する事が最大の利点です。と言うのもデフォルトはユニコードですので、これはどのプラットフォームでも採用されている文字コードです(種類があるが)。 >Javaに関しては、PHP等よりも型指定などにより複雑だけどセキュアな銀行などで使われるWebアプリ、携帯アプリとかぐらいしか この部分も前述の事から来ています。銀行だとメインフレームや、オフコンなんて呼ばれるカテゴリーのコンピューターがメインにありますが、その周りで動作していもにには、ワークステーション、PC(事務処理)と、まさに、マルチプラットフォームです。 これは銀行だけでなく、NASAやペンタゴン、Jaxaなども全く同じです。 なので作成するソフトのカテゴリーをちゃんと理解し、どのような環境で使われるのか、ユーザー(ソフト作成発注者でもある)が何を求めているのかで、使用する言語を変える必要があるのです。 私が担当したWebアプリだと、メインはJavaですが、Windows上では、C++、WSH(VBS, ws), BAT(DOS), VBA(エクセル操作), を使用してOS固有の問題を解決しています。また、WSHなどを利用した方が、いい場合もあります。 UNIX系マシン上では同じくC++、B-ShellスクリプトもJavaと同時に使用してOS固有の問題をクリアーにしています。 Webアプリは、サーバーサイドとクライアントサイドスクリプトに分かれます。つまり、Web処理は、このスクリプト(JSP、ASP、PHP、C#(.NET))で処理するわけですが、 業務用の例えば販売管理や、ATMでの通信とか、業務アプリの部分は、JavaやC++で作成することにより、移植性や処理速度の向上が見込めるわけです。 とすれば、以外にもJavaだと同じ書式で、業務アプリ部分と、Web処理部分が書けるのでプログラマーの負担が少なくなるわけです。と言うことはPHPはいらなくなります。 これと同じ事がC#にもいえます。 複雑な処理はやはり、スクリプト言語よりもコンパイルする言語の方が重宝するし、速度がはやくなる。さらにセキュリティーも強化できます。 とは追え、前述の私が担当したWebアプリだと、その配下に入ったサブシステムではPHP利用したアンケートシステムを動作させています。これは顧客が、ユーザーカスタマイズを簡単にできるように、 PHP、ASPを用意してGUIを簡単に変更させるように作ったためです。
- axsies
- ベストアンサー率64% (38/59)
とりあえず言えることは、この用途だとC/C++はまずないかなぁと思います。 セキュリティはもちろん、設計もコーディングも神経の使い方が全然違うので…。 考えなければならないことが多いし、Javaやスクリプト言語なら大したことない機能を実装するにも面倒な事が多いです。 おそらく目的に適ったようなフレームワークみたいなものは無いと思いますし。 選択肢増やすようでアレですが、PHPが使えるのならPython、Rubyあたりのもう少し汎用目的のスクリプト言語という選択肢もあたってみるといいんではないいでしょうか。
- koko_u_u
- ベストアンサー率18% (216/1139)
> このようにパソコン内部でシステムを動かす際にはどちらの言語がいいのでしょうか? これだけの情報からは何だっていいとしか、あるいは JavaScript だっていいんじゃない、というくらい。 しかし、今から勉強するとして、C はなぁ。という個人的感情から Java を推しとくか。
- kmee
- ベストアンサー率55% (1857/3366)
まず、あなたが使っているほとんどのソフトはCまたはC++で作られている、と考えてよいでしょう。 PHPだって「Cで記述されたPHP処理プログラム」です。 lsやcat等も普通はCで書かれています。 ライブラリも多種に及びます。Linuxをやっているなら、yumとかapt等のパッケージ管理システムを使っている(少なくとも知っている)のではないかと思いますが、そのパッケージで lib~ とか ~lib とか言う名前のものは、ほとんどCまたはC++用のライブラリです。 PHPのライブラリの中にも、これらのCライブラリとの橋渡しだけをやっているものがあります。 ただ、Webとローカルとで、別段なにかが違うわけではありません。 入力先がWebからなのか、ローカルのファイルやキーボードなのか、出力先がWebなのか、ファイルや画面なのか、その程度です。