痔になりやすい生活習慣とは?

初歩的な質問で大変申し訳ございません。
これからC言語もしくはJava言語のどちらかを勉強しようと
考えています。

それぞれの言語において、使用する上でのメリット・デメリットは
あるのでしょうか? どなたか教えていただけますか?

このQ&Aに関連する最新のQ&A

A 回答 (4件)

日々のPC作業にちょっと役立つプログラムが作れると、


学んだことがすぐ役立つのでやる気が維持できます。
C言語はその点でかなり不利です。ちょっとかじったくらいでは役に立つプログラムができません。

Javaも、実はパソコン上で「ちょっと」役立つ程度のプログラムにはあまり向いていないのですが、Cよりはマシかなと思います。

Windows上で、サクッと作れてちょっと役立つ、使いやすい言語としては、JavaScriptをHTAという仕組みで動かすことだと思います。
他にもVBAとか秀丸マクロとかありますが、今のところ私の経験ではHTAによるJavaScriptが一番手軽です。ただし、HTAについての解説がすくないのが難点ですが。

話がそれてしまいましたが、CかJavaならJavaです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。参考にさせて頂きます。

お礼日時:2008/03/31 19:56

何をやりたいのかによって、どちらを選ぶべきかが変わってきます。



例えば、Eclipseのプラグインを作りたいとかであればJava以外の選択肢はほぼないと考えてよいでしょう。逆に、カーネルを開発したいのであれば、(C++ではなく)C言語以外の選択肢はまずないでしょう(アセンブラだけで作ることも可能ですが)。

今すぐ作るかどうか、できるかどうかではなく、目標をどこに設定するかで話が違ってきますし、それぞれの言語のメリット・デメリットの捉え方も違ってくるはずです。
    • good
    • 0
この回答へのお礼

なるほどですね。ありがとうございます!

お礼日時:2008/03/31 19:55

えーと、C/C++はポインタという初心者泣かせの概念があって、


分かってしまえば難しくはないんですが、
それでも初心者にとっては壁になりがちです。

Javaはポインタの概念は表には出てこないのですが、
それでも実は全く存在しないわけではなく裏側に隠れていて、
個人的には、だからこそ厄介なように思います。

ですから、C++でしっかりポインタの概念を掴んでから、
場合によってはJavaに移る方を私としては勧めます。
C++からJavaに移るのはそれほど難しくありませんし。

ちなみに、C言語はもはや「古い言語」であり、
初学者が学ぶのはあまり勧めません。

C++はC言語にクラスとテンプレートという2大機能を導入したものですが、
それだけでなく、細かいところが色々使いやすく改善されていますので、
クラスとテンプレートを使わないとすれば、
Cより学ぶのは楽だと思います。

C++とJavaの違いは、
まず1つにJavaがポインタの概念を表には持たないこと。
そのせいでC++ではメモリの管理を自前で行わねばならず、
若干面倒です。
(ある程度手間を軽減してくれるライブラリも、
C++を少し勉強すれば使えるようになりますが)

そして第2に、Javaはオブジェクト指向であること。
C++もオブジェクト指向とよくいわれますが、
Javaよりは様々な考え方を許す言語であり、
その分使いこなすのが難しく、使いこなせば非常に便利です。
    • good
    • 0
この回答へのお礼

具体的なご説明ありがとうございます。参考にさせて頂きます。

お礼日時:2008/03/31 19:57

特にないけど、初学者なら Java にしておきましょう。

    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC言語:関数を使うメリットとデメリット

C言語初心者の者です。
今度学校の授業で関数を用いるメリットとデメリットを挙げるのですが、全然思いつきません…10個も挙げなければならないのにorz
どなたか親切な方、教えてくださると大変助かります!
よろしくお願いします!

Aベストアンサー

結構あると思われますが、私のソフト制作経験では
以下の感じです

<メリット>
・手続き処理を機能ごとに分けられる
・呼び出し元・先と分ける事で修正の削減を計れる
・再帰処理が視覚的容易に出来る
・用途により呼び出し規約式/展開式に分けれる
・多項式において部分式が冗長である時にその部分を関数として
実装することによって、単純多項式のように扱える
・プログラム構造をワーニエ法設計に基づくアーキテクチャに対し
対話的に作成できる
・大規模なプログラムとなった際にモジュール単位に分割しやすい
・キャパシティ指向におけるプログラミング設計においてその後の
オブジェクト化への下準備として必須である
・関数によりデータのやり取りは、タイプに基づく為、
処理の流れの中でのデータの体裁を把握できる
・スタックの動向を抽象化できる
・名前空間による管理で詳細性質はブラックボックス化できる

<デメリット>

・呼び出し元・先の処理の共通性を把握する必要がある
・ポインタを受け渡す際には有効値に注意しなければならない
・再帰処理ではネストが基本的に隠蔽されている為、意図的に
打ち切りを設ける必要がある
・名前空間において予約語などと重複しないよう把握が必要
・各関数ではスコープ制限があるため動的なデータ源泉においては
持続性を考慮しておく必要がある
・その後の修正余地を考慮する場合、オーバーロードにおいての
把握が必要である
・関数の任意展開が出来ない場合、オーバーヘッドを無視できない
・同一スコープで関数ネストを深しすぎるとリーダビリティに欠けてしまう
・遂次型と異なり関数を多用するとフローチャートのブロック数
が増えてしまう
・関数定義においては、先定義か後定義かの順序認識の必要がある

結構あると思われますが、私のソフト制作経験では
以下の感じです

<メリット>
・手続き処理を機能ごとに分けられる
・呼び出し元・先と分ける事で修正の削減を計れる
・再帰処理が視覚的容易に出来る
・用途により呼び出し規約式/展開式に分けれる
・多項式において部分式が冗長である時にその部分を関数として
実装することによって、単純多項式のように扱える
・プログラム構造をワーニエ法設計に基づくアーキテクチャに対し
対話的に作成できる
・大規模なプログラムとなった際にモジュール単...続きを読む

QCとjavaの違い

学校でC言語プログラミングを学んでおり,新たにjavaも習うことになったのですが,
C言語とjava言語の違いはどのような所なのでしょうか?
java言語は「オブジェクト指向」ですが,C言語は何指向なのでしょうか?

よろしくお願いします。

Aベストアンサー

ここには、とても専門的な方がたくさんおりますので、私みたいな人間が回答するのが恐縮ですが、私なりに。。

コンピュータ言語は以前から発達して色々な言語ができました。C言語はだいぶ昔にできたものです。ですから、昔のコンピュータ(ウィンドウ表示などなく、黒い画面に点々と入力していったもの)で便利に使われていたものと思います。もちろんWindowsAPIなどC言語でWindowsアプリケーションを作成できますが。

しかし、最近ではCの機能では足りなくなりました。よってJavaとかC++が開発され、業務アプリケーション開発ではこれらが主流になっているとおもいます。どう違うかといえば、大規模開発にもこたえられるようオブジェクト指向を取り入れたり、それによりクラスライブラリをたくさん作り、開発が便利になったことでしょう(1プログラマが他人(会社?)の作ったソースをつかえばいいだけで開発する手間が省ける)。

Javaは非常に便利なクラスライブラリがたくさんあり、それを応用すれば色々なアプリケーションが簡単につくれてしまいます。たとえばデータベースに接続する際も一からプログラムをかくのではなく、データベース接続クラスを使えば簡単に接続できてしまいます。他にもWebサーバーの応答クラスなど、今のニーズにあったものはいろいろとクラスが作られています。

C言語となにが違うか?といっても、言語の構造自体は関数主体からクラス主体に変わるだけだとおもいます。C言語も関数がたくさん集まって1つのプログラムになりますよね?Javaも色々なクラスが集まって1つのプログラムになります。クラスというのは、変数と関数(メソッドといいます)の集まりです。感覚的にいうと1つのCのソースコード(変数も関数もある)が、1クラスに該当するといえるかもしれません。そんなに難しいことではないです。感覚的には簡単なものです。

ちなみに、forとかifとかwhileとか配列とか文法事項は全く一緒です。

私自身もアマグラマ?なので、厳密にいうと正解かはわかりませんが、初心者の視点には、近いと思います。がんばってください。

ここには、とても専門的な方がたくさんおりますので、私みたいな人間が回答するのが恐縮ですが、私なりに。。

コンピュータ言語は以前から発達して色々な言語ができました。C言語はだいぶ昔にできたものです。ですから、昔のコンピュータ(ウィンドウ表示などなく、黒い画面に点々と入力していったもの)で便利に使われていたものと思います。もちろんWindowsAPIなどC言語でWindowsアプリケーションを作成できますが。

しかし、最近ではCの機能では足りなくなりました。よってJavaとかC++が開発さ...続きを読む

QIOException ってどういうときに起こるのでしょうか?

IOException ってどういうときに起こるのでしょうか?

http://www.atmarkit.co.jp/fjava/rensai2/javaent12/javaent12.html
を見て勉強しています。

  catch ( IOException e) {
    System.out.println( "キーボードが故障しているのかもしれません" );
  }

と書いてあります。
ハード(キーボード)が故障しているのを Java のプログラムのレベル(ソフトウェア)で感知できるというのがよくわかりません。「

NumberFormatException の方はわかるのですが・・・

Aベストアンサー

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接続だったりするわけですけど、
InputStreamは、その入力元の情報を持っていないので、
データを読み取る際は常に
IOExceptionをキャッチするコードを書かなくてはいけません。
たとえ、絶対にIOエラーが発生しないストリームだとしても。

さらに付け加えるなら、
そもそも「標準入力=キーボード」であるとは限りません。
(一般的にはキーボードであることが多いですが。)
Javaでは、
System.setIn(InputStream)
を呼び出して、標準入力を変えてしまうことができますし、
標準入力を指定してプログラムを実行することができるOSもあります。

追伸1:
例外をキャッチしたときは、
スタックトレースをプリントすることをおすすめします。
catch (IOException e) {
e.printStackTrace();
}

追伸2:
そのプログラムでIOExceptionを発生させる最も簡単な方法は、
readLine()を呼び出す前に
標準入力(System.in)を閉じてしまうことです。
System.in.close();

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接...続きを読む

QCとJava、どちらが難しい?

みなさんこんにちは。
自分は現在、理系の学部に所属している大学二年生ですが、今学期からプログラミングの授業が始まります。
そこで、CとJavaのどちらかを選択しなければならないのですが、どちらの方が難しいのでしょうか?
自分はプログラミングは全くの未経験です。
とりあえず単位の取りやすい、簡単な方を選ぼうと考えています。
アドバイスよろしくお願いします。

Aベストアンサー

難しいという視点からだと、どちらが難しいかと言うのは、
勉強する人の感覚で差が出ますので、何とも言えませんが、言語仕様の大きさという点で比較すると、C言語より、
Javaの方が大きいです。

本屋さんで、次の二冊の本を見比べてみると言語仕様の
規模の差が分かると思います。
(単純にページ数で比較しても、なんとなく想像が付くと思います。)

「プログラミング言語C」
http://www.bk1.co.jp/product/1051132/p-bk1tk47886

「プログラミング言語Java」
http://www.bk1.co.jp/product/2038395/p-bk1tk47886

言語仕様の規模は、Javaの方が大きいですので、
一見、勉強する事が多そうに見えますが、
Javaの方が後から出来た言語の為、便利な機能が
豊富に用意されています。
そのおかげで、実際のプログラムの作成では、
Javaの法が楽という事もあります。

取り敢えず、本屋さんに行って、立ち読みをしてみて、
自分に分かり易そうな本が沢山ある方の言語を選ぶと
いう手もありますね。

プログラミング言語を習得する際の難易度は、
自分に合った参考書に出会えるかで変わってきますので、
良い参考書に出会える可能性が高い言語の方が
簡単という事になると思いますが、いかがでしょう?

難しいという視点からだと、どちらが難しいかと言うのは、
勉強する人の感覚で差が出ますので、何とも言えませんが、言語仕様の大きさという点で比較すると、C言語より、
Javaの方が大きいです。

本屋さんで、次の二冊の本を見比べてみると言語仕様の
規模の差が分かると思います。
(単純にページ数で比較しても、なんとなく想像が付くと思います。)

「プログラミング言語C」
http://www.bk1.co.jp/product/1051132/p-bk1tk47886

「プログラミング言語Java」
http://www.bk1.co.jp/product/20...続きを読む


人気Q&Aランキング