JavaはC,C++の後継言語となりうるのか

このエントリーをはてなブックマークに追加
305デフォルトの名無しさん:2005/04/29(金) 10:50:01
つーか1.4までと互換性あるんだからかまわんと思うが
互換性がないのならアレだが
306デフォルトの名無しさん:2005/05/02(月) 02:26:09
Java5 で、Map< T, V > で受けようと思っても、
Java 1.4 は あくまで Map は Object,Object
結局ストイックに交ぜたければ、Object,Objectで受けてキャストするか、
例外記述になっちまう。

てか、Javaってキャスト大杉。
(型) によるキャストは、C言語と大差ない弊害の多い記述と思われ...
SUNも自覚したためgenerics(なんて御大層な名前で)実装したんだろうが...
そもそもJavaが持つ言語特性とあいいいれにくいと思うよ...
いまさらあんな言語拡張が、世のため人のためだろうか...

Java は、C++ や C# のまねなぞする必要ないのに...


307デフォルトの名無しさん:2005/05/02(月) 11:26:11
いや、そういうときはコレクションそのままつかうのではなく自分で実装すればいいだけかと

混ぜる場合もそれらをパッケージングしたBeans作ってそれをいれるだけ

Objectありきで設計してる時点で間違ってるよ

どっちにしろGenericsは必須
テンプレートの真似事にみえるのは実装側だろうけど、そっちはたしかになくてもいい
308デフォルトの名無しさん:2005/05/04(水) 03:24:26
genericsはどうも最初は頑なに拒んでたがC#の出現で渋々採用といった感じだよな
シンプルなOO言語であることにこだわる余りにキャストの嵐では本末転倒だからさっさと採用するべきだったんだろうけどなぁ
309デフォルトの名無しさん:2005/05/04(水) 08:34:32
オートボクシングが採用されたからはじめて実用的になったともとれるからなぁ
310デフォルトの名無しさん:2005/05/22(日) 14:17:22
Genericsなんて今までなかったのが不思議なくらい必須の機能。

Java(1.4以前)でもC#でも、たかがList使うだけでキャストの嵐になる。
馬鹿馬鹿しくてやってられない。
こんなことちょっと触ればすぐわかる。
311デフォルトの名無しさん:2005/05/22(日) 14:33:33
つーか、コレクションの場合なんでもいれれるようにObject型にしてるだけだし
継承して使えというスタンスだったのでは?
312デフォルトの名無しさん:2005/05/22(日) 23:24:54
>>311
もしそういうスタンスなあらC#用には普通にある
型限定のコレクションクラスを自動生成するツールが
Javaでは全く出てこなかったのが不思議なんだよな
コピペとはいえいちいち作らなきゃいけないのは問題外だと思うが
Javaプログラマはコレクションなんてどうでもよかったのかな?
313デフォルトの名無しさん:2005/05/22(日) 23:47:36
クラス指向が強かっただけかと
プリミティブなものを直に入れるよりは多態で扱うとか
匿名クラスでイベント扱うのがデフォな時点で気がつけ

それにJavaプログラマと一括りにすな、C#厨
314デフォルトの名無しさん:2005/05/23(月) 00:01:34
>>313
本当に見たことが無いんでみんなコレクションのキャスト問題なんてどうでもよかったんじゃないかと思ってさw
315デフォルトの名無しさん:2005/05/23(月) 00:15:53
コレクション使ってないコードなんてあんまりきいたこともないが
新たに大量動員された業務プログラマの8割は多態理解しらなくて
困ったことはある

オブジェクト指向理解しているとかぬかすくせに

List list = new ArrayList();
がずっと理解できないやつがちらほらと

まぁ、今はgenerics導入で上記コードが警告でるのも便利
316デフォルトの名無しさん:2005/05/27(金) 20:45:02
まぁ、Java の generics なんて、ただのシンタックス・シュガーでしかないがな
317デフォルトの名無しさん:2005/05/27(金) 21:27:03
型の安全性が増えていい結果になったな>じぇねりくす
318デフォルトの名無しさん:2005/05/27(金) 22:06:21
>>316
Javaの思想からすればむしろそのほうが都合がいい
319デフォルトの名無しさん:2005/06/12(日) 00:29:13
Javaにポインタとアドレスがあれば
もっと分かりやすい言語になるのにね
320デフォルトの名無しさん:2005/06/12(日) 01:00:14
このスレ釣りばっかかよ
321デフォルトの名無しさん:2005/06/17(金) 16:24:32
assertの実装に笑った
322デフォルトの名無しさん:2005/06/17(金) 17:13:55
詳細希望
323デフォルトの名無しさん:2005/06/17(金) 17:17:41
NIOのDirectByteBufferは明らかにCで確保した領域をJavaで扱うために作ったとしか思えない
324デフォルトの名無しさん:2005/06/17(金) 18:32:25
NIOもVolatileImageも1.4からは割り切ってパフォーマンス追求する動きにでてるからな
安全性はそれなりに確保できるしわるくないのでは
325デフォルトの名無しさん:2005/07/25(月) 22:58:07
C++で書いて移植したほうが遥かに現実的だという事実。
326デフォルトの名無しさん:2005/10/23(日) 23:31:52
まだ習い始めたばっかだけど、equalsに一貫性がないのが気持ち悪い。
327デフォルトの名無しさん:2005/10/24(月) 00:19:00
クラスごとに判断基準違うものをどうしろと
328デフォルトの名無しさん:2005/10/24(月) 02:50:24
デフォの動作がインスタンス変数全部比べてくれるってのが良くない?
それで困るときだけ変えればいいし。
このクラスのequalsは〜とかいちいち面倒くさいし、混乱の元じゃん。
toStringもデフォでインスタンス全部出力すりゃいいのに。
329デフォルトの名無しさん:2005/10/24(月) 02:58:46
>toStringもデフォでインスタンス全部出力すりゃいいのに。
これどういうこと?
330デフォルトの名無しさん:2005/10/24(月) 03:48:58
いや、toStringでオブジェクトの現在の状態を表す文字列が出力されるようにオーバーライドするだろ?
それをわざわざしなくても自動的にそうして欲しくない?
これもこれで困るときだけ変えればいいし。
331デフォルトの名無しさん:2005/10/24(月) 12:00:41
その状態ってクラスごとじゃないと結局わからんだろうに
デフォはObjectの動作あるんだしこれ普通だろ
332デフォルトの名無しさん:2005/10/24(月) 17:55:09
>その状態ってクラスごとじゃないと結局わからんだろうに
そりゃ分かんないよ。
ただJavaが元々そういう機能をサポートしてたら大丈夫じゃん。
機能って言うかただのコンパイル時のコードの補完?
全然難しくないでしょ。インスタンス変数読み取って、決まった形式の文字列作るくらい。
だって毎回
"[name="+name+〜+"]"
みたいなわかりきってること書くのだるくないの?
リフレクションで簡略化できるだろうけど、デフォでやってくれた方が楽だし。
これのデメリットが見つからない。
333デフォルトの名無しさん:2005/10/24(月) 18:36:19
それが状態を表すと思ってるの?
Beansならそれなりにやれるけど、それ以外はムリ
334デフォルトの名無しさん:2005/10/24(月) 19:01:48
>それが状態を表すと思ってるの?
そう思ってるけど、もしかして違うの?
335デフォルトの名無しさん:2005/10/24(月) 19:14:24
違う

だからBeans以外は[〜]って表記してないと思うが
336デフォルトの名無しさん:2005/10/24(月) 19:43:17
マジ?俺の読んでるCoreJava2って本で推奨されてるよ。
普通はどうやるの?
337デフォルトの名無しさん:2005/10/24(月) 20:02:18
toStringの使い方は異なる
[〜]と表記しなければならないってことはない

Swing使っていればtoString大量に出てくるからどう使えばいいか分かりそうだが
338デフォルトの名無しさん:2005/10/24(月) 20:46:53
んー、常にこう使うって訳じゃないのはわかるよ。
でも基本はデバッグに便利なようにインスタンス変数の状態を[〜]みたいに書くんじゃない?
>Swing使っていればtoString大量に出てくるからどう使えばいいか分かりそうだが
良く分かんないけど、例えば、JLabelのtoStringはこうだったよ。
javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,〜省略〜,verticalTextPosition=CENTER]
見当違いなことしてたらわりぃ。
339デフォルトの名無しさん:2005/10/24(月) 22:09:25
いや、リストとかテーブルとかのセルや各項目の表示方法などね
toStringを使うようになってるから

それにその表記はbeansだから可能な
340デフォルトの名無しさん:2006/01/01(日) 03:19:59
意味も無くage
341デフォルトの名無しさん:2006/01/01(日) 04:44:33
長寿スレだなw
10/24付近のは、言語でやるんじゃなくてRefactoringの機能とかで
持ってればいんじゃね?
setter,getterを作るような感じで。

少なくともtoStringは決まった形式に言語で縛るのは危険。
342デフォルトの名無しさん:2006/03/21(火) 03:39:44
Java はプリミティブ型で参照を渡せないのがしんどい。
Tiger で踏み込んで欲しかったけど
C# の真似と言われたくなかったんだろうか。
ボクシング・アンボクシングなんて瑣末なものは後回しにして欲しかった。
(瑣末どころか曖昧さが増えてむしろ迷惑だ。)
343デフォルトの名無しさん:2006/03/25(土) 13:14:08
なんでプリミティブ型もObjectの派生物にしなかったんだろう
344デフォルトの名無しさん:2006/03/26(日) 22:38:05
そこだけはパフォーマンス上妥協したとのと
生成コスト短縮したと見た。
345デフォルトの名無しさん:2006/03/27(月) 00:34:55
プリミティブ型の参照渡しをサポートしなかったのって何故?
type* 相当はまぁ分からんでもないが
type& 相当あったところで、混乱起こすとは思えないんだが。
オブジェクト型は type& 相当のことやってるわけだし。
346デフォルトの名無しさん:2006/03/27(月) 01:48:21
>プリミティブ型の参照渡しをサポートしなかったのって何故?

ラッパークラスがあるタメに不要だから。

347デフォルトの名無しさん:2006/03/27(月) 01:49:05
リフレクションのときの面倒を減らす効果があるから。
リファクタリングしやすいから。
348デフォルトの名無しさん:2006/03/27(月) 02:48:23
>346
プリミティブ型のラッパークラスは不変オブジェクトになってて
参照渡し的な使い方は一切出来ないんですが。。

>347
なるほど。
349デフォルトの名無しさん:2006/04/02(日) 23:42:21
mallocの本質はフリーチェーンと呼ばれる使用可能メモリブロックの長い連結リストだ。
mallocのパフォーマンスは決して速くなく、しかも、クリーンアップのために
ときどき予期できないタイミングで非常に遅くなる

Javaはガベージコレクションがあるから・・・なんてしたり顔で話すC++プログラマが、
デフォルトのメモリアロケータを平然と使っているなんてことは良くある。

頭のいいプログラマは、mallocによる処理の中断の可能性を最小化するために、
いつも2の累乗のサイズでメモリブロックを割り当てる。
この方法はフリーチェーンの中のヘンな断片化の量を最小化するのだ。
…尤も、Javaの世代別GCに比べれば余りに原始的だがな。
350デフォルトの名無しさん:2006/07/04(火) 21:26:31
時給1000円でJava教えてくださるかたを募集します
場所 所沢(池袋・高田馬場から直通)

i−want−to−study−java@hotmail.co.jp
(アドレスは全角で書いてあるので半角に直してください)
よろしくおねがいします
351デフォルトの名無しさん:2006/07/04(火) 23:44:46
とりあえずc++0xがどうなるか様子見。

(永遠に様子見してしまいそうだが…)
352デフォルトの名無しさん:2006/08/20(日) 19:44:03
>>2
Cocoa-Javaならインタープリタじゃないけど
Cocoaは仕様違うし・・・
どっかでネイティブコンパイルできるJavaコンパイラとかない?
353デフォルトの名無しさん:2006/08/20(日) 22:41:44
GCJ
354デフォルトの名無しさん
ランタイム入れないと動かないとかカンベンシテくださいよ