トップページ⇒tech
81コメント29KB

CよりJAVAのが勢いあるよなぁ・・・

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
質問スレの勢いってCよりJAVAのがあるね。
Cしか出来ない漏れはもうだめぽぽぽぽ〜
0002デフォルトの名無しさんNGNG
Cができれば、あとはやる気の問題
0003デフォルトの名無しさんNGNG
「C しか出来ない」って、いったいどこまで出来てるんだか。
何年か触ってりゃ簡単に Java に移行できると思うが。
0004デフォルトの名無しさんNGNG
俺はAだってまだだぞヽ(`皿´)ノ
0005デフォルトの名無しさんNGNG
>>4を見た後に>>3を見ると微妙に笑える
0006デフォルトの名無しさんNGNG
プ
0007デフォルトの名無しさんNGNG
>> 何年か触ってりゃ簡単に Java に移行できると思うが

簡単なJavaPGには移行できるけど、完全に移行するには2〜3年かかるな
0008デフォルトの名無しさんNGNG
>>1
Javaerはアホが多いからな。ちょっと叩くだけでムキになる。
0009デフォルトの名無しさんNGNG
また言語対決スレか、簡便してくれ
0010デフォルトの名無しさんNGNG
>>1
何言ってるんですか?
確かにJavaは勢いありますけど
C言語だけでも十分喰っていけますよCは無くなりません
私はJavaやってますが。
0011デフォルトの名無しさんNGNG
Cでの構造体
 { プリミティブ変数, 他の構造体へのポインタ, 関数へのポインタ }
が
Javaでの
 { フィールド(プリミティブ), フィールド(クラス), メソッド }
って表記になっただけだろ。

理解できない奴はポインタからやりなおせ。
0012デフォルトの名無しさんNGNG
>>11
お前は
CとC++の比較でもそんな事言うのか?
0013デフォルトの名無しさんNGNG
Cでの構造体
 { 変数, 他の構造体へのポインタ, 関数へのポインタ }
が
Javaでの
 { フィールド, フィールド, メソッド }
って表記になっただけだろ。

理解できない奴はポインタからやりなおせ。
0014デフォルトの名無しさんNGNG
>>1だけど、
別にJAVAのが優れているとかじゃなくって、スレの流れの速さがJAVAのが早い気がするよね。

Cはもちろん無くなるはずが無いと思ってるよ。
一番高級の中で低級だから、かなり低いレベルのプログラムが書きやすいと思ってる
0015デフォルトの名無しさんNGNG
Cでの構造体データ用のメモリ確保および初期化処理
{ 関数へのポインタ } : hoge // これは一つだけ(関数テーブル)
{ hogeへのポインタ, 変数, 他の構造体へのポインタ }
が
Javaでの
Hoge hoge = new Hoge();
って表記になっただけだろ。

理解できない奴はメモリ確保の基礎からやり直せ。
0016デフォルトの名無しさんNGNG
>>14
Javaは入りやすいしな
本屋行っても、Java関係ばっかり
Cの雑誌なんて、Cマガぐらいだろ?(しかも、Java載ってるし・・・)
大学での、授業ではJava>C言語
あるいは、C言語採用しているところはもう無いかも・・
なのでとりあえずこの板に来た場合
参加できるスレはJavaが多いってことじゃない?
ちょっと覚えれば、初心者を煽れるのも魅力
0017デフォルトの名無しさんNGNG
Cでの関数外のstatic変数
 static char hoge;
が
Javaでの
 private char hoge;
って表記になっただけだろ。

ちなみにJavaのstaticはクラス変数って意味。
newしても勝手にメモリを確保して増えたりしない話の分かる奴だ。
だから定数につけると少し幸せになれるぞ?
 private static final char hoge = 'a';

理解できない奴は変数のスコープについてやり直せ。
0018デフォルトの名無しさんNGNG
CでGUIプログラムってかなりキツー(−−;だよね。。。

今作ってるんだけどさぁ、なんかどう作ればいいかが解らなくて躓いてる
0019デフォルトの名無しさんNGNG
おい、関数も全てメソッドに置き換えてみろよ
0020デフォルトの名無しさんNGNG
Cでの何もつけない関数
 void hoge() {}
が
Javaでの
 public static void hoge() {}
って表記になっただけだろ。

でもstaticにするとオブジェクト指向にならない。
Javaで普通の関数をstaticにするやつは話が分からない奴だ。

理解できない奴は関数のスコープについてやり直せ。
0021デフォルトの名無しさんNGNG
>>18
そりゃつらいだろ・・・
0022デフォルトの名無しさんNGNG
>>20
>でもstaticにするとオブジェクト指向にならない。
>Javaで普通の関数をstaticにするやつは話が分からない奴だ。

状態保存する必要ないものはstaticでいいじゃん
0023デフォルトの名無しさんNGNG
>>18
CでGUIを作成できたらもう上級者だぞ。
少し考えてみろ。ダイアログを二つ作りたいときに、ソースを二つ用意せずに済ますには、
オブジェクト指向が必要だぞ。それが最善策だ。
しかしCでオブジェクト指向するのは難しいぞ。
Cの機能、特に構造体と関数ポインタを手足のように使いこなす熟練が必要だぞ。
Win32APIからして既にそういう感じだぞ。
0024デフォルトの名無しさんNGNG
なんか、結局プログラム作るのって熟練と鍛錬なんだなぁ!って思って、でも作れるようになったら楽しそうだなって幻想でしょうかね?^−^;

なんか、意味不明なバグが付いちゃってソコでまた躓いてとってもおそーい製作になってます・・・あはは〜ヽ(。〜゜)ノ
0025デフォルトの名無しさんNGNG
>>23
Cのみでできるものなの?(WindowsのGUI)
どこかで、クラスとか使わない毛ない場面とかない?

もしC言語のみでできるのならちょっとGUI勉強してみようかな
0026デフォルトの名無しさんNGNG
>>24です

>>25
できるよ!
うん、バッチリじゃけんのぉ!(って自分が言えたことじゃないけど

「Win32API入門」でぐぐるとドボンやで
コレはC言語のみ(C++ではない)だけで作る講座です。

自分は初めココを見て勉強してたけど、少ししかわからなかったから本を買って読んでました
(本読んでも分厚くてつらいですよつд`
0027デフォルトの名無しさんNGNG
>>24
いや、そういう「躓き」っていまのうちにしておいた方がいい。
おれなんて、ある一つのバグに1週間も2週間も考えて作業が停滞し「なんでだろ〜」
と悩んだ時期があった。ほんの些細なことが原因だったのだけど。
そういう経験はみんなが通るものだから、ソコで続けられるか否かがポイントだ。
0028デフォルトの名無しさんNGNG
>>26
サンクス
なら、ちょっくらやって見ようかな
0029デフォルトの名無しさんNGNG
>>22
違う。状態保存する必要がないときは、こう書くんだぞ。
public class HogeSingleton {
 {private static Hoge hoge = new Hoge();}//静的初期化ブロック
 public static getHoge() { return hoge; }
}
使うほうはこう書くんだぞ。
 Hoge hoge = HogeSingleton.getHoge();
でないと、Cでいう関数ポインタのような使い方が出来なくなって、
いろいろと不自由するぞ。staticなHoge.hoge()メソッドは受け渡しできないのだぞ。
修正したくてもいまのところstatic修飾子を簡単に外す方法は無いのだぞ。
リスクが高いぞ。きっとデスマーチになるぞ。それでもいいか?
0030デフォルトの名無しさんNGNG
つうか、VC++持ってるんですがC言語しかいまっまでやってなかった・・・
0031デフォルトの名無しさんNGNG
>>29
もしもし?
それは、シングルトンパタンじゃないのですか?
話がずれてるよん

俺の言ってるのはユーティリティークラスのstaticメソッドだよ
ある意味、C言語の関数みたいなものと考えてもいい
0032デフォルトの名無しさんNGNG
えと、バグの箇所がわかってるんですけど。でもなんで?って感じなんですよ。
ソースも張れないしどうすればいいでしょうか?・・・とにかく改良してみます

>>27
はい、コレを一つ作り終えたら理解しきってない所をイメージできるように1から本を読み直します。
(覚えると結構楽しそうな機能ばっかなので、エヘヘ
0033デフォルトの名無しさんNGNG
>>31
そういうものはごく僅かだけあってもいいと思うぞ。
しかし往々にしてクラスに紐付いた処理がユーティリティと呼ばれて
放置されていることもある。悲しいことだ。
 public class Utility {
  public static replaceDot(String arg) { return arg.replaceAll(".", "_"); }
 }
というのは、
 public class StringUtility {
  private String string;
  public StringUtility(String arg) { this.string = arg; }
  public static replaceDot() { return this.string.replaceAll(".", "_"); }
 }
と書いたほうが自然だな。
操作対象は必ず状態として保持したほうがいいぞ。
そうすると次々と、StringUtilityに移したほうが便利な処理が見えてくるぞ。
0034デフォルトの名無しさんNGNG
>>33
間違えたぞ。StringUtilityのメソッドにstaticは不要だったぞ。後悔しきりだ。
0035デフォルトの名無しさんNGNG
>>33
言っていることはわかる、しかし
フィールドの状態保存の意味が無いものはユーティリティー(static)にするっていうことを
覚えたんですが・・・
たとえばMathクラスなんかのメソッドはそうですよね?
で、こういった共通処理を外部に持っていこうとするのが
アスペクト志向です

↑の場合だと
無理やりフィールドを使用しているようにしか見えないのです
0036デフォルトの名無しさんNGNG
>>35
ふむ。Mathはかなり特殊な部類に入るぞ。
あれはJavaの演算機能を拡張するような目的のクラスで、
そもそもオブジェクトでないプリミティブ型を処理するためのクラスだからな。
速度的な問題もあって、オブジェクト指向では無くなっているのだ。
staticは簡単だが、奥が深いぞ。
初めは無理やりに見えたクラスに、非常に複雑な処理が実装されることもある。
0037デフォルトの名無しさんNGNG
>>35
Java1.3までreplaceAllはStringクラスに無かったよ。
代わりにJDK以外のライブラリを使うことが多かったのだぞ。
そういうときに、
 str = Utility.replaceAll(str, "a", "b");
と書くより、
 str = (new StringUtility(str)).replaceAll("a", "b");
と書いたほうがよりオブジェクト指向的だったぞ。

長々と書いたが、どこで切り替えるかは呼び出し回数などによると思うぞ。
どちらかだけに偏ってしまうのは、良くない傾向だぞ。
0038デフォルトの名無しさんNGNG
Javaプログラマーは他の言語に挫折した馬鹿が多いからな。
弱い犬ほど良く吠えるように
頭弱いプログラマーほど2chに沢山書き込むので人数多いように見えるが、
あんなものを人間としての頭数に入れてはいけない。
0039デフォルトの名無しさんNGNG
昔学生運動とかで町の道路をデモ行進してた人たちみたいに?
0040デフォルトの名無しさんNGNG
>>16
> Javaは入りやすいしな
Cからやったほうが入りやすい。

> 本屋行っても、Java関係ばっかり
ネットワーク関係やオブジェクト指向の使い方を説明するにはJavaがやりやすいから当然。

> Cの雑誌なんて、Cマガぐらいだろ?(しかも、Java載ってるし・・・)
なぜかJavaがたくさん載っているのがワラタ。半分くらいJava?。 
だがアルゴリズム関係が載っているのは重宝する。あれは読みやすければCでもかまわない。

> 大学での、授業ではJava>C言語
それはありえん。

> あるいは、C言語採用しているところはもう無いかも・・
んなこたあない。

> なのでとりあえずこの板に来た場合
> 参加できるスレはJavaが多いってことじゃない?
Java質問スレをみるとなんども同じ初歩的な質問がきてうんざりする。
Javaをやり始める香具師が毎年増えているようだ。
■ このスレッドは過去ログ倉庫に格納されています