具体的にjavaで何ができるのかがよく理解できていません。
javaではいったい何ができるのできるのでしょうか?
「javaではいったい何ができるのか?」という問いは二つに分けられる。
プログラムというのはコンピュータに命令を与える指示書です。だからコンピュータにできることは基本的になんでもできます。人工知能なんていうのはまだ理論的に確立されていませんがそのうちできるかもしれません。
人間にとってはJavaとCは違います。では機械(CPU)にとっては両者は違いがあるのでしょうか?
実は最終的に機械語に変更されます。というのもJavaとかCとかいう言語は「人間」にわかりやすく機械語を作るために作られたものです。(詳しく知りたいのであればアセンブラ、コンパイラを調べれば良いでしょう)
だからJavaだけにできることは根源的には存在しません。プログラムができること=Javaができることです。
OSに依存しない(Cは依存する。)
安全である。(ただしく書けば、「悪いこと」ができない)
みんな使っている(助言やアドバイスが得られやすい。)
単純なことにも大げさになりがち(PerlやRubyのシンプルさには負ける→webアプリケーション開発では致命的)
遅い(最速化されたC++に勝てない(詳しくはガーベージコレクションとJVMを参照))
OSに依存しないワープロとか。open officeね。
そういえばopenofficeがjavaで作られているのは聞いたことがあります。
OSに依存しないというのはいいですね。
ほかのプログラミング言語と同じく、いろんなことができます。
http://ja.wikipedia.org/wiki/Java曰く、
>現在、Javaの技術は、情報技術のローエンドからハイエンドまで幅広く使われている。 組み込みシステムや携帯機器(携帯電話・PHSやPDA・スマートフォン等)のシステムから、企業の情報システムを担う大規模なサーバやスーパーコンピュータまで、非常に多くの分野で活用されている。
Javaの理念は、プラットフォーム(使用しているCPU、OSなどのいわゆる実行環境)に依存しない動作です。そのため、開発環境と実行環境が異なっていても比較的スムースに動作し、また実行環境ごとに別のコンパイルやコーディングをする手間も比較的少なくなります。
国内では各種認定試験にJavaを使うものも多く、それに見合うだけの需要があるということなのでしょう。そういう意味では、資格の取得にも役立ちますね。
「プログラミング言語で何ができるのか」というと、理論的にはたいていどの言語も同じことができます。しかし、実装の面ではそれは現実的ではなくて、だからこれだけたくさんのプログラミング言語が存在するのですが、Javaは上であげたプラットフォームに依存しない動作のほかに
・オブジェクト指向に基づいて設計されている
・構文がCと似ている
などの個性を持っています。(関数型プログラミング言語を除けば)いまのプログラミング言語の中では、まあかなり一般的な部類で、普通のことが普通にこなせる言語だと思います。
普通のことが普通にこなせる言語ですか、なるほど。
構文がCと似ているということはCを学ぶ上で役に立つんでしょうね。
回答あるかもしれませんが、たとえば、このはてなのシステムだってJavaで作ろうと
思えば、作れます。
実際にJavaが使われているシステムというところでは、
携帯ゲームもJavaですし、企業の会計システム、WEBシステムは、PHPと並んで
Javaが多いですね。
Javaは、プログラミング言語で、単なる手段にしかすぎないので、
使い方次第だと思います。
大学に通われるのに、徒歩、バス、タクシー、電車、飛行機、自家用ヘリという手段が
あって、どれが一番自分にとって最適か?という質問と似てると思います。
どの手段を使っても大学に到着しますけど、企業の場合は、
コスト、時間的に何が良いのか?を比較してどの手段を使うかを決めますが、
Javaは、割といろんな機能が備えられているので、採用されることが多い、
という感じです。
自分が関わったところでは、WEBのショッピングカート、旅行予約システム、
WEBの販売管理システム辺りで使ってました。
使い方次第ですか。はてなのシステムが作れるというのは驚きです。
やはりWEBに強いんですね。
勘違いをしていそうなので、勘違いから手直しさせてください。
JAVAは仮想端末を想定して、仮想端末で動くプログラムです。
この仮想環境を各端末に作ってあげると動くようになります。
つまりJAVAは手段ではなくシステムの考え方です。
基本的にはWindowsもLinuxもJAVAは同じ記述で動きます。
これは丁度PDFに似ています。
JAVAで何が出来るかというと仮想端末で出来るすべての事が出来るといえます。
今使われている理由の一番はCに近いオブジェクト言語であると言う事ではないでしようか。
仮想端末があれば特にブラウザが無くても動きます、Javaappletといいます。
ただしブラウザを利用する事に限定する場合必ずしも一番良い言語とは言いません。PerlとかPHPなどがあります。
そうそうjavaのライバルとしてC#があります。
最後になりますが回答としてJAVAは何でもできるが、インターネットを利用したDB関連は得意分野だと思います。
JAVAはシステムの考え方ですか。言語として習っていたのでそういうことは思いもしませんでした。
仮想端末でできるすべてのこと、すべてというのはまた幅が広いですね。
5で回答したものですが、C言語の部分でCではなくC++の間違いです。
ついCとC++の開発をしていたので略してしまいました。
Cはオブジェクト指向ではありません、C++がオブジェクト指向でJAVAに近いです。というかJAVAがC++に近いです。
Java には細かく分けて三種類あります。一般的に使っているのは J2SE です。
最近は授業でも Eclipse を使ったりすると思いますが、開発環境である Eclipse もまた Java で開発されています (SWT など除き)。
のが Java の強みですが、色々できるので「何ができる」か一つに絞るのは難しいです。
JAVAにもいろいろ種類があるんですね。
何ができるのかを絞るのが難しいということは、やはりいろいろなことができるということでしょうか。
無料で手に入るというのが結構強いと感じました。
「javaではいったい何ができるのか?」という問いは二つに分けられる。
プログラムというのはコンピュータに命令を与える指示書です。だからコンピュータにできることは基本的になんでもできます。人工知能なんていうのはまだ理論的に確立されていませんがそのうちできるかもしれません。
人間にとってはJavaとCは違います。では機械(CPU)にとっては両者は違いがあるのでしょうか?
実は最終的に機械語に変更されます。というのもJavaとかCとかいう言語は「人間」にわかりやすく機械語を作るために作られたものです。(詳しく知りたいのであればアセンブラ、コンパイラを調べれば良いでしょう)
だからJavaだけにできることは根源的には存在しません。プログラムができること=Javaができることです。
OSに依存しない(Cは依存する。)
安全である。(ただしく書けば、「悪いこと」ができない)
みんな使っている(助言やアドバイスが得られやすい。)
単純なことにも大げさになりがち(PerlやRubyのシンプルさには負ける→webアプリケーション開発では致命的)
遅い(最速化されたC++に勝てない(詳しくはガーベージコレクションとJVMを参照))
欠点の単純なことにも大げさになりがちというのは自分で作ってても感じました。
文字を表示するだけでも結構長く書かないとだめですからね。
利点のもみんな使っているというのは学ぶ上で結構有利ですね。
欠点の単純なことにも大げさになりがちというのは自分で作ってても感じました。
文字を表示するだけでも結構長く書かないとだめですからね。
利点のもみんな使っているというのは学ぶ上で結構有利ですね。