次世代Javaの動向 2at TECH
次世代Javaの動向 2 - 暇つぶし2ch325:デフォルトの名無しさん
06/06/10 03:17:28
次世代Javaスレなのに5.0で導入された機能の話ばっかりでつまらんので、
投下してみる。

JavaにContinuation(継続)機構は必要か?
URLリンク(blogs.sun.com)

俺はあんまり良く知らないんだけど、SchemeとかRubyにはContinuationという
機能がある。これは言うなれば、メソッドを呼び出す時に「おまえ、自分の処理
が終わったらこれを呼べよな」とクロージャを渡してしまう感じだろうか。

もちろんクロージャは(ちょっと前に話題に出てたけど)その時のスタック状態
さえも保持してるので(スコープから外れても、クロージャ内ではまだローカル
変数にアクセスできる、とか)、一種のlongjumpとして働くってことですな。
(というか、そこまでしか分からんかった....)

リターン値を見てから処理を決めて....という処理が不要になって、プログラムは
シーケンシャルにどんどん突き進めるという利点と、呼び出し元じゃなくても一気に
復帰できる上に、その時のスタック状態まで復元してしまうという、いわば「スタック
フレームごとあとで使うから保存しちゃえ」という強力な機能なんだってな。

なんだかContinuation-based Web Serverとかいうものもあるらしい。

で、この機能がJVM(JavaじゃなくてJVMだよ)に必要かどうかという議論。
リンク先ブログの人は、「ウェブアプリはAJAXとかで遷移の少ない方向へ移って
いってる過渡期で、移行が完了したらContinuation-based Web Serverの利点は
過渡期の遺物になっちゃう可能性があるし、JVMの大改造が必要だしセキュリティ
モデルに影響を与えるからイラネ」といってる模様。

いろんなサイト見て、Continuationは便利そうだが、正直分かりにくいし使いどころ
が難しい気がするので、俺もイラネ、という感じだな。

326:デフォルトの名無しさん
06/06/10 03:43:38
JVMみたいなスタックマシンには継続は辛い。
欲しい新機能は、switchの代替になるようなパターンマッチング。
ラベルにGOTOするんじゃなく、値を返す奴がいい。
int result = match<Integer>(obj) {
 A : execute(); return 0;
 B : return -1;
 default : return 1;
}
って感じの。

327:デフォルトの名無しさん
06/06/10 06:24:44
>>325
細かいところだけど、ちょっとツッコミをば。

> これは言うなれば、メソッドを呼び出す時に「おまえ、自分の処理
> が終わったらこれを呼べよな」とクロージャを渡してしまう感じだろうか。

これは、継続渡しスタイル(Continuation Passing Style)と呼ばれるテクニックで、SchemeとかのContinuation
とは違う。SchemeとかRubyにある継続ってのは、call/ccと呼ばれるもので、1引数の関数を引数としてcall/cc
を呼び出してあげると、その関数を「call/ccの呼び出しが終わった地点に制御を移動するような関数」を
引数として呼び出してくれるという感じ。Javaっぽい文法で書くと、大体下のような感じになる。
このプログラムっぽいものを実行すると、ABCBCと表示される。

Continuation process() {
 Continuation result = null;
 System.out.print("A");
 call_cc(new Function(){
  public void call(Continuation c){
   result = c;
  }
 });
 System.out.print("B");
 System.out.print("C");
 return result;
}
...
first = true;
Continuation c = process();
if(first){
first = false;
c.jump();
}
System.out.println();

328:デフォルトの名無しさん
06/06/10 10:34:32
その前にproper tail call optimization可能なVMかな。

329:デフォルトの名無しさん
06/06/10 10:57:52
>>324
コンパイラがifに展開するんだとさ
int&switchによる高速さはenum&switchにはない

330:デフォルトの名無しさん
06/06/10 11:15:29
>>329
Enum.ordinal() 使ってint型にして switch するだけなんだけど。

この話も Mustang にも Dolphin にも関係ないね。

331:デフォルトの名無しさん
06/06/10 11:17:43
ん?実装が変わったのか?

332:デフォルトの名無しさん
06/06/10 11:29:36
>>329
>>330
俺もifに展開してると思ってた(というか、記憶が正しければ、
1.5のαかβではほんとにifに展開してたはず)のだが、今の実装は
確かにswitchを使うみたいだね。下のコードをコンパイルして、
逆アセンブルしてみたら、確かにEnum.ordinal()を使ってswitchする
コードに展開されてた。

public class TestEnum {
 enum AnEnum {A, B, C}
 public static void main(String[] args){
  AnEnum a = AnEnum.A;
  switch(a){
   case A: System.out.println("A"); break;
   case B: System.out.println("B"); break;
   case C: System.out.println("C"); break;
  }
 }
}

333:デフォルトの名無しさん
06/06/10 18:15:07
>>332
実際にどう実行されるかは JVM 側のオプションでも変わって来るんじゃなかったっけ?

334:デフォルトの名無しさん
06/06/10 18:43:02
>>323
>タイプセーフenumの実現も可変長引数の実現も拡張forの実現も
>みなGenericsのお陰で可能になったことなんだよ。

なんで?
for (String str: list) {
 ...
}

for (Iterator $it = list.iterator(); $it.hasNext(); ) {
 String str = (String)$it.next();
 ...
}
に展開するだけだと思うんだけど、Generics関係なくね?

335:デフォルトの名無しさん
06/06/10 18:59:16
>>324
おまえはtype safeという意味がわからんのか?

336:デフォルトの名無しさん
06/06/10 18:59:49
>>320
おれの記憶だとparameterised typingが希望されてて、その例としてC++のテンプレートが挙げられていた。
C++のテンプレートそのままが欲しいやつっていたのかな。欲しかったのはあくまで型引数がつかえることじゃない?
でも昔はGenericsとかGeneric Programmingという言葉はあまり浸透してなかったから、
話としては「テンプレートみたいなのが欲しい」という表現がよく使われていた。
つまりC++のテンプレートが欲しいんじゃなくて、型引数が欲しかったということ。
だから
>>172
>いっておくがC++のtemplateとJavaのgenericsとはまったく別もんだよ。
のようなのには、なんというか話がずれてるように思える。
どっちもparameterized typingなんだからおんなじじゃん?実現方法を問題にしてるんじゃないんだよ。
C++のtemplateは否定してJavaのgenericsは肯定してるやつらって。
まあいつものことか。


337:デフォルトの名無しさん
06/06/10 19:12:04
>>336
templateを否定してgenericsを肯定してるやつらは
template固有の話を問題にしているんだから、
>>336と話が合うはずがないよ。

とオモタ。

338:デフォルトの名無しさん
06/06/10 19:15:50
>>336
実現方法を問題にしてたんだよ。

339:デフォルトの名無しさん
06/06/10 19:18:29
6.0って構文に関するなんかって変わるっけ?
5.0と7の間にあるバージョンだから、印象が薄すぎて・・・

340:デフォルトの名無しさん
06/06/10 19:23:50
5と7の間だとなぜ薄いのかよく分からない

341:デフォルトの名無しさん
06/06/10 19:33:15
そらおまえ、GenericsだのXMLリテラルだのキモイ仕様てんこもりじゃないか

342:デフォルトの名無しさん
06/06/10 19:37:36
>>335
流れおかしくないか?

343:デフォルトの名無しさん
06/06/10 19:44:29
>>340
5と7は変更が大きいからね。
6はもともと5.1になる予定だったわけだし。

344:デフォルトの名無しさん
06/06/10 19:55:18
5.0は言語仕様の変更は大きいけどAPI的に1.4とくらべてたいした進化はない
せいぜいコンカレントまわりくらい

6は結構大きい変更が多いので楽しみ
中でもSwingの大規模修正はびっくりなくらいでは?

345:デフォルトの名無しさん
06/06/10 19:57:32
あのバタ臭い見た目は何とかして欲しいけどな。

346:デフォルトの名無しさん
06/06/10 20:22:20
デフォルトのLAFはSystemLAFでいいようなきがするな

347:デフォルトの名無しさん
06/06/10 20:22:49
お前はバタ子さんに恨みでもあるのか

348:デフォルトの名無しさん
06/06/10 23:06:59
>>344
Swingの大規模修正ってどんなの?
あんまり詳しくないので純粋に聞いてみる。
最近Swingに興味を持ったもので....

349:デフォルトの名無しさん
06/06/10 23:50:35
>>334,335
foreachに関してはともかくtype safe enumは
Genericsのおかげで「簡単になった」。

タイプセーフの実装は、自分で色々書けば出来たよ。
Effective Javaとか読んでみないか?

350:デフォルトの名無しさん
06/06/10 23:53:57
>>348
えーっと、漏れは>>344じゃなくて何が大きいか何とも言えないが、
個人的に助かってるのは
・GroupLayoutの搭載
・WindowsLAFの改善
・サブピクセルAAレンダリング
あたりかな?中では最適化がかなりゴロゴリありそうだけどよくしらない。

351:デフォルトの名無しさん
06/06/11 00:05:12
>>349
type safe enumを定義するのに、Genericsはほとんど使わないわけだが・・・。

352:デフォルトの名無しさん
06/06/11 00:06:10
enum A{ ONE, TWO, THREE}
のどこでGenericsがいるのだろうか。

353:デフォルトの名無しさん
06/06/11 00:19:01
>>351
>>352
Java 5.0のAPIドキュメント見ればわかるけど、列挙型の基底クラスである
java.lang.Enumの定義自体にGenericsが使われているよ。

354:デフォルトの名無しさん
06/06/11 00:23:07
>>353

Effective Javaのtypesafe enumの実装みたことあるのか?

355:デフォルトの名無しさん
06/06/11 00:37:25
>>350
一番大きいのはAWTスレッドがとまっていてもウインドウが描画されることかと

あとはJava2DでOpenGLパイプラインがLinux系でデフォになるようでクライアント分野も
DirectX使ってるWindowsに速度的に追いつくかなと

ただ、5.0のOpenGLサポート見てると非常に期待が出来ないのだけれども
JOGL使ってるなら大丈夫かな
つーかJOGL標準APIにしてください

>>354
そういうこといってるわけじゃないだろ?たぶん


356:デフォルトの名無しさん
06/06/11 00:49:22
>>354
そりゃもちろん見たことある。というか、何故Effective Javaのtypesafe enumの
話になる?Java 5.0のtypesafe enumがEffective Javaのそれが元になっている
のは知ってるが、全く同じというわけじゃない。

357:デフォルトの名無しさん
06/06/11 01:00:42
>>356
そりゃGenericsがなくてもtypesafe enumが作れるからだろ
GenericsがないとJava 5.0と全く同じものはつくれないけど
typesafe enum自体はつくれる

Genericsのおかげで作れたなんて変だって話でしょ

358:デフォルトの名無しさん
06/06/11 01:18:45
>>357
いや、そりゃtypesafe enum自体はGenericsが無くても作れるけど、
Enum同士のcompareToによる比較などが型安全にできないでしょ?で、>>349
そういうのを指して

> foreachに関してはともかくtype safe enumは
> Genericsのおかげで「簡単になった」。

と言っていると思ったんだが。あ、もちろん>>323の言っている
ことは変だと思ってるけど、>>351>>352>>349に対する言及
だと思ったので。

359:デフォルトの名無しさん
06/06/11 02:07:13
Generics とか enum とか、Tigerで追加された機能の話題はこっちでやったら?

【JavaFive】C#からJ2SE5.xへ進化【TigerShot】
スレリンク(tech板)

360:デフォルトの名無しさん
06/06/11 02:50:30
いいんじゃないの?ここで。

361:デフォルトの名無しさん
06/06/11 03:31:27
Generics とかは現行世代の機能だから次世代スレでやるのは筋違いでしょ。

362:デフォルトの名無しさん
06/06/11 04:28:00
流れってもんも大切だし、極端に筋違いなわけではないし、そもそもこのスレの「次世代」というのは、Mustangスレの次スレをTigerスレでやろうかという意見があったときに、じゃあ次世代Javaというスレをたててまとめてというのがあったわけだし。

363:デフォルトの名無しさん
06/06/11 04:29:13
それに、enumとかGenericsとかについて意見が食い違うという時点で、次世代ということにしてもいいと思うわけで。

364:デフォルトの名無しさん
06/06/11 08:59:34
>>358
compareTo以外に何かある?

365:デフォルトの名無しさん
06/06/11 13:03:25
なんか一人genericsが嫌いなやつがいるようだな

366:デフォルトの名無しさん
06/06/11 15:11:08
>>325
それはWeakest Post Conditionという奴か?

ならば、Template Method パターンまたはアスペクト指向で
実現できまいか?

367:デフォルトの名無しさん
06/06/11 15:15:06
>>334
展開する前の前処理にGenericsが関与してるに1バイト

368:デフォルトの名無しさん
06/06/11 15:23:10
>>351-352
EnumクラスのJavadocを見ると
Enum<E extends Enum<E>>
使われて無くはない。

Genericsが使われているかいないかで
Javaのenumの仕様がかなり異なってくる。
C/C++のようなtype unsafeなenumにするわけにはいかないから
Genericsを導入するまでenumを導入するわけには
いかなかった理由がよくわかる。



369:デフォルトの名無しさん
06/06/11 15:24:19
>>357
Genericsのお陰で作りやすくなった
以前より比較的正しいenum実装ができるように
なった、とでも言うべきだろう。


370:デフォルトの名無しさん
06/06/11 15:29:58
>>364
equals(), clone(), hashCode(), toString(), valueOf()

371:デフォルトの名無しさん
06/06/11 15:47:30
>>362
そのMustangの話題ですらないわけだが。

372:デフォルトの名無しさん
06/06/11 15:55:01
今後はもうベンチマークに期待できなくなってくるのかな
Swing周りの改良は今後も進むかもしれないけど、業務では変わらない?
JVM統合の流れになっていくのかな

373:デフォルトの名無しさん
06/06/11 16:14:19
>>367
くわしく

374:デフォルトの名無しさん
06/06/11 17:15:01
>>372
業務でSwing使えばいいじゃない
すでに社内システムはWEBアプリは衰退していてリッチクライアントが普及してきているよ

不特定多数ならWEBアプリだけど、開発効率が段違いにわるいので
コスト増が問題になってるという感じ

375:デフォルトの名無しさん
06/06/11 20:23:42
今更であれだけど、Genericsっていいの?
コンテナに間違ったモノ突っ込むなんてバグはもとから経験無いけどなぁ。

376:デフォルトの名無しさん
06/06/11 20:50:16
キャストが要らないからそのままメソッド呼べたり、すっきりするってのが一番の恩恵でしょ。

377:デフォルトの名無しさん
06/06/11 20:58:09
自分だけで作ってるとあまり恩恵はないね
他人の作ったコード呼ぶ部分でListとだけ書かれてると困るので助かる

JavaDocとか整備されてないライブラリとかで泣きながらソースよんで苦労することが減った・・・
List<Map<Key,Value>>とか業務系だと頻繁に使うしね

大規模開発こそ結合部のドキュメント系が必要なのに整備されている率が低い傾向にあるのはどういうことだろう
ウォーターフォールの出来上がってくる設計書類にそんなものがまったくないという

少人数でライトウェイトな開発していればまずインターフェース作りましょうとかドキュメントは
大事なところだけ書いてあとはJavaDocにガンガン記述していきましょうとかそういうのが多いな

とりあえず何も考えなくてもよくなるEnumはかなり恩恵があるのは確かだが

378:デフォルトの名無しさん
06/06/11 21:09:27
>>370
valueOf はそうだけど、他は関係ないような気がするよ。

379:デフォルトの名無しさん
06/06/11 21:13:13
>>377
そのList<Map>構造の部分、今度はXMLになるかもね
また構造わかんねwwww

380:デフォルトの名無しさん
06/06/11 21:16:08
>>375
例えばMapでキーや値の型を仕様変更した場合に、
根っこの一箇所変えれば
コンパイルエラーがどこを直せばいいか教えてくれるのが楽。
ってのもある。

381:デフォルトの名無しさん
06/06/11 21:18:59
>>372
JVM統合って何?

382:デフォルトの名無しさん
06/06/11 21:23:26
-serverオプションが消えるとか

383:デフォルトの名無しさん
06/06/11 21:36:46
>>375
間違ってダウンキャストしなくて済むし
いちいちドキュメントにこの型にはこれ以外入れるなとか
書かなくて済む。


384:デフォルトの名無しさん
06/06/11 21:38:12
>>378
Enumの中に入れ子になっているオブジェクトの型が一致しなかったら
あれなのでequals()とか、hashCode()も重要

385:デフォルトの名無しさん
06/06/11 23:04:03
業務系のソフトウェアでは、Mapの中にMapが入っていて、しかもそのMapの要素は
Listが3つ、なんてざらにある。

で、そのListに何が入っているのかはドキュメント化されてないし、うっかりしてると
Mapを入れるべきところにListを入れてしまったり....と、orzになる機会は山ほどある。

genericsについていろいろ言われているようだけど、Collectionフレームワークの型
安全性を高めるという点について「イラネ」と言ってたヤツを俺はしらないな。

Goslingタンもそこをとても重視していたみたいだよ。ソースが見つからないがそんな
こと言ってた。

386:デフォルトの名無しさん
06/06/11 23:19:53
genericsいらないって言っていた馬鹿は探せばいるだろ。
どんな馬鹿でもいるもんだから。
そんな馬鹿が手のひらを返してgenerics便利だと言ったところで一体なんだというのだ?

387:デフォルトの名無しさん
06/06/11 23:21:55
しかし今頃この話題が出てきたということは6が出そうなこの時期に
やっと5.0つかった開発がスタートしはじめているということだろうか


388:デフォルトの名無しさん
06/06/11 23:24:02
>>386

何でもない

いや、それがこの話の結論のはずなんだが
それで納得できない暴れたい盛りのやんちゃ坊主がたくさんいてな・・・

前向きでない議論は無駄。
現行Genericsの不備点を挙げて、こうなればいいのに・・・とかいう話ならまだ広がるんだが・・・

389:デフォルトの名無しさん
06/06/11 23:31:53
>>387
そろそろドカティもJava5に入り始めるんじゃない?

390:デフォルトの名無しさん
06/06/12 00:03:01
>>389
・)ノシ
1.3で開発してるドカティが来ましたよ
こんな太古のアプリ改造するくらいなら新規で作れよそもそも設計からして腐ってんだからさぁとか言いながらコード書いてますよ
5で書きたいよぅ>>377が言ってる問題にぶちあたりまくりで元からバグバグなコードいじる度にビクビクしなきゃならんのは嫌だ

391:デフォルトの名無しさん
06/06/12 00:18:57
>>390
そういうなおいらは去年ようやく1.1から1.4へのUpgradeに成功した
2年ほど前に出した見積がようやく日の目を見たって所だ

392:デフォルトの名無しさん
06/06/12 00:26:07
保守的な奴らが居るとうんざりするときあるな
1.4.2で作ってるんだが、_??の部分までぴったり合わせるよう指定が来る
いやいや、それってバグフィクスのバージョンだろと突っ込みたくでも突っこめない
仮にバグっててもそれのお陰でうまく動いてるのを当てにするんだろうな

393:デフォルトの名無しさん
06/06/12 00:27:19
>>391
なんか生き残れるのか心配になるようなローペースさだな。

394:デフォルトの名無しさん
06/06/12 00:50:10
>>389
J2SE5.0使ったシステム2つうけてるけど、ついていける人とついていけない人がやはり現れますな

勉強し理解する人は5.0すごくよくなってるといい、勉強しないで分からないというだけの人は
なんでこんなバージョンにしたの?といってくる

知的労働者なんだからまったくついていけないようだったら首を切るのを勧めたほうがいいだろうね
そういうのはだいたいCOBOLメンテしてきてVBやってる人に多いかと思えばそんなことはなく
COBOLもしってCもやれてJavaもきっちりしってる人も割と多い
言語の得て不得手をしっかりと理解できているかどうかはが大事

逆にJavaやCでずっとWEBアプリ業務でやってきましたという人種でもかなり危険なやつらが多い
1メソッド数百行をスコープ範囲狭めることなく平気で書くのが特徴だから分かりやすいといえばそうなのだが

395:デフォルトの名無しさん
06/06/12 01:34:52
>>392
涙が出るほど共感を覚えるが、スレ違いではあるまいか

396:デフォルトの名無しさん
06/06/12 01:46:24
雑談スレだし、いいんでないの?

397:デフォルトの名無しさん
06/06/12 02:19:45
いったいいつから雑談スレに.....orz

398:デフォルトの名無しさん
06/06/12 03:55:55
_XXを気にするなんて、まともな所なら常識だろ。
_XX変えたらテストやり直し。保守的とかじゃなくてブロの常識。

399:デフォルトの名無しさん
06/06/12 04:23:10
まともなところとかまともじゃないところとかは関係ないと思うな。
常識かどうかも。

そこまでの信頼性が求められるかどうかだと思われ。
信頼性もとめるなら、まだJava2SE5.0は使えないんじゃないかな。

400:デフォルトの名無しさん
06/06/12 04:32:56
ただ、障害が出たときのサポートと、サポート期間考えると最新使わないわけにもいかない
5年単位の利用期間に対して、それ以前にSUNのサポートが切れるJVM使うのもできないし・・・
1.4.1のGCのバグで散々な目にあったよ・・・orz

しかし、Tigerはそろそろ使えるようになってると思うんだが・・・
Mustangが出るってのに2世代前しか信頼できないって状況はないんじゃない?
というか、信頼性なんて自分たちで確かめるもんだし。

401:デフォルトの名無しさん
06/06/12 05:56:32
ハイエンドのサポートはSunだけじゃないからな。
自分達で確かめれる程度の信頼性なら、自分達で確かめればいいと思う。

402:デフォルトの名無しさん
06/06/12 06:13:52
使う範囲で信頼できれば十分だからね。

403:デフォルトの名無しさん
06/06/12 10:58:35
>>398
それにかかるコストを誰が払っていると思っているんだ。
誰も払わなければやるだけ無駄でSunに踊らされているだけだろ。
ちょっとバージョンアップしたくらいでまたそのバージョンに
遭わせて無駄に過剰テストして無駄に管理を厳しくするのは
コストの無駄。テストの自動化もできない奴がそういうことをしたがる。

404:デフォルトの名無しさん
06/06/12 11:09:35
自分の常識が世の中全体の常識と思ってるヤツがいるな。

405:デフォルトの名無しさん
06/06/12 11:24:21
>>403
問題が出てからの対処で良いならその考え方もあるが
何でか知らないが開発会社に全てのコストを押し付ける顧客が多すぎるよな
やって欲しいならそれに見合う金を払えってんだ

406:デフォルトの名無しさん
06/06/12 12:30:30
>>403
おまいは、安かろう(品質)悪かろうのシステムしか経験がないのかも知らんが、
それを一般化するなよ。>>399の言う通り、どこまで品質が求められるかどうかがポイント。
自分の基準で過剰テストだの無駄だの、安物PGにしか見えないからあまり言わない方がいいよ。
だいたい、テスト自動化となんの関係があるんだか…。


407:デフォルトの名無しさん
06/06/12 13:19:56
>>406
ひとこと言わせて貰うと、お前は考え方が古い。
20年くらい前のCOBOLerが大好きながむしゃら管理手法で
やっている。

Java5でないとうごかない製品ももうすでにかなり出ている。
すでにJava5は実績としてはかなりのものだ。

408:デフォルトの名無しさん
06/06/12 13:39:06
もはや Generics の話題ですらないな。
説教したい/されたいならマ板でどーぞ。

409:デフォルトの名無しさん
06/06/12 13:45:06
おれはJavaSE5が使えんとは書いてないが…。
運用トラブルリスクはそっちのけで安価・短期が最優先という考え方もアリだろう。
だが、システムの必要品質を確保するのに、古いも新しいもない。全然理屈になってないよ。
そんな事言ってると、底辺PGとバレるから気を付けた方がいいぞ。

というか、テスト自動化されてんなら、テストやり直しに何でファビョってんの?

410:デフォルトの名無しさん
06/06/12 15:26:14
商用アプリサーバのSE5のサポートって
最近じゃない?
やっとベンダにとって、サポートコストがぺイするレベルに枯れてきたって事か。

411:デフォルトの名無しさん
06/06/12 15:34:32
どっちがファビョってるんだか。

たまにJavaすれにVBあがりのドトネト厨が
割り込んで来ることがあるけどそれ系の厨かなw


412:デフォルトの名無しさん
06/06/12 15:36:07
>>410
商用じゃなきゃ信用できない
なんていったらLinuxがアップデートされるたびに
過剰テストにものすごく無駄に時間をかける羽目になるんだが。
Java5の枝番号が変わっただけでその都度細かいテストするのも
まさに効率悪い。


413:デフォルトの名無しさん
06/06/12 16:19:10
全員スレタイ見直してくれ・・・頼む・・・orz

414:デフォルトの名無しさん
06/06/12 17:28:41
まあ、この手の素人PGが次世代Javaのバグ出しをしてくれて、
堅いシステムにも使える様にしてくれる、と言うことで。

415:デフォルトの名無しさん
06/06/12 18:04:05
素人PGがまともにBugParade登録出来るとも思えないけど。

Genericsの現実的な使いどころって、
コンテナ(ぽい)オブジェクトの中身の明示以外どんなのがある?

416:デフォルトの名無しさん
06/06/12 20:10:02
>>412
おまえ、ハイエンドの品質の厳しさわかってる?

417:デフォルトの名無しさん
06/06/12 20:10:44
>>413
次世代Java厨の動向

418:デフォルトの名無しさん
06/06/12 20:15:15
>>415
type safe enumだろ (以下ループ

419:デフォルトの名無しさん
06/06/12 20:38:31
>>415
Observer/Observableを型安全に使えるようにするとか。
残念ながらJava5のそれは、Generics対応になってないが。
あとは、コンテナと無関係ではないが、型に依存しないアルゴリズム
のライブラリ化とか。C++のtemplateみたいに、今までできなかったことが
できるわけじゃないので、今まで型安全にできなかったこと(Object型で代用して
いたこと)を型安全に行えるようにする、というのが主な使い道じゃないかなあ。

420:デフォルトの名無しさん
06/06/12 21:30:17
仮定のない品質など議論する意味はない。

>>419
俺もそう思う。
Objectを突っ込みまくっていた部分を見直して
綺麗なロジックが書きやすくなるという部分かな、と。

アスペクトとまでは行かないけれど、ロジックだけを切り出して
実装できるのも、何という機能というわけじゃないけど面白い。
言ってみれば、Map,ListなどGenericsの恩恵を直に受けたライブラリは
そのMap,Listという振る舞いを型に依存しないで実装できたいい例だったということだから。

421:デフォルトの名無しさん
06/06/12 23:09:20
で、ながれを戻そうとしてもなぜ現世代Javaの動向に戻るんだ?

次世代はどうした。

422:デフォルトの名無しさん
06/06/12 23:39:48
んじゃ次世代らいく・・・

お馬さんのJava2Dレンダリングどーなってるの?
Windows版はデフォはDirectXのまま?
あいかわらずほとんどの描画がアクセラレーションきかないの?

423:デフォルトの名無しさん
06/06/13 02:31:28
>>421
次世代Javaプログラマの動向

424:デフォルトの名無しさん
06/06/13 10:33:25
そもそもJavaプログラマの定義なんて曖昧。
煽ってる奴やJavaが嫌いな奴はJavaプログラマ=Javaしかできないプログラマと
脳内変換して話を進めたがるから話が当然噛み合わないわけだし。
実際に、Javaの仕事をするときにJavaしか知らないでは、まったく
仕事ができないものだが。


425:デフォルトの名無しさん
06/06/13 10:35:03
>>424
実際にJavaしか知らないって奴がいっぱい居るじゃん
まあそういう奴はJavaすら知らないって事が多いけど

426:デフォルトの名無しさん
06/06/13 11:04:30
だから

Javaしか知らない奴
という表現は論理的に矛盾していると

427:デフォルトの名無しさん
06/06/13 12:17:24
続きはマ板で。
本当に底辺野郎じゃなければ
もっと融通が利いているはず。

428:デフォルトの名無しさん
06/06/14 00:10:18
なんだが、Genericsを否定したい奴がいちゃもんつけてるようにしか見えないな。
彼の主張は「C++Templateはいらないと言ってい他奴がGenericsは欲しいと言いだした」
ということらしいがな。
彼の脳内ではC++Template == Generics
でないと気が済まないようだ。




429:デフォルトの名無しさん
06/06/14 00:34:43
もうGenericsは入ったんだから便利に使おうぜ。
それよか、久々にMustang案内入れるか・・・

Mustang b87
URLリンク(download.java.net)
URLリンク(www.java.net)

changeを見ると壊れてんのかな?と思うが新しいフィーチャーはない。

Java SE 6.0 Release 1 Developer Preview 3
URLリンク(connect.apple.com)

Appleも追従してDeveloperPreviewを出してきている
こちらはb82ベース
NewFeatureは
* Applet support (plug-in)
* Java Web Start
* Java SE 6 Java Preferences utility
PowerPCのJITはまだらしい。

430:デフォルトの名無しさん
06/06/14 01:12:23
>>429
> PowerPCのJITはまだらしい。

というかMacはもう…

431:デフォルトの名無しさん
06/06/14 10:30:43
えーと、CocoaにはJavaAPIの新規追加はもうない、って話かしら?

432:デフォルトの名無しさん
06/06/14 11:04:34
PowerPC終了でしょう?

433:デフォルトの名無しさん
06/06/14 12:31:07
>>428
どうしてもtemplate!=genericsにしたいようだが
parameterized typeという点ではどっちも同じ
仕組みが違うのはあたりまえ


434:デフォルトの名無しさん
06/06/14 12:37:43
Javaから見たらgenerics≒templateで良いじゃないか


435:デフォルトの名無しさん
06/06/14 13:04:04
>>433
いや、違いすぎるだろ。
C++ templateはかなり独特だから。


436:デフォルトの名無しさん
06/06/14 13:32:58
>>428 >>433 >>435
3人ともtemplate!=genericsと言ってるのに論争になるのワロス

437:デフォルトの名無しさん
06/06/14 13:49:42
ところで、>>1のマルチタスクの実現ってのはどうなったんだ?
既に実装済み?

438:デフォルトの名無しさん
06/06/14 14:26:33
>>436
template<genericsとtemplate>genericsとtemplate>>>genericsじゃ論争になるだろ

439:デフォルトの名無しさん
06/06/14 14:38:50
template<genericとtemplate> generics
と区切ってしまい、何のことかわからんくなってた。

440:デフォルトの名無しさん
06/06/14 15:55:59
それぞれどういう意図で発言しているかがつかみずらいが、
もし、templateとgenericsが実現の仕組みが**多少**違うくらい
で、同じようなものだと思っている人がいるとしたら、もうちょっと
(C++の)templateのことを勉強した方がいいと思った。実際、
templateとgenericsはある程度までは同じ目的で使えるが、
かなり違うセマンティクスを持っている。優劣をここで述べる
つもりは無いが、それだけは確かだ。

441:デフォルトの名無しさん
06/06/14 16:19:17
>>439
おまえまだgenericsに慣れてないな。
「genericsとtemplate」を扱えるtemplate<?>型のgenericsという変数を宣言しているのだよ。

442:デフォルトの名無しさん
06/06/14 17:00:18
お前ら、頼みがある。Genericsに関しては既に実装された機能だから、他のところでやってくれないか。
せっかく新ネタ持ってきてくれてる人がいるのに、いつまでも粘着しないでおくれ。

443:デフォルトの名無しさん
06/06/14 17:06:45
>>442
劣勢だな。
流れだし、いいんでねぇの?

444:デフォルトの名無しさん
06/06/14 17:22:21
>>443
マ板的なネタで盛り上がるぐらいなら閑散としてたほうがマシ。

445:デフォルトの名無しさん
06/06/14 17:39:26
そうかなぁ

446:デフォルトの名無しさん
06/06/14 18:25:45
>>438
templateクラスがgenericsとtemplate型をパラメータに持って

と思ったらなんだその文法わ

447:デフォルトの名無しさん
06/06/14 18:48:06
6のSwingはWindowsOSにも恩恵はありますか?

448:デフォルトの名無しさん
06/06/14 19:31:09
恩恵ってなんですか

449:デフォルトの名無しさん
06/06/14 19:36:55
トレイが使えるようになる。
Desktop#browse, mail, edit, open, printなどができた。

450:デフォルトの名無しさん
06/06/14 19:40:37
レンダリングに関しては別にって感じですか。
まあそれらの機能だけでも十分かもしれませんね。

451:デフォルトの名無しさん
06/06/14 20:06:43
>>449
全部 AWT の機能だけど。

452:デフォルトの名無しさん
06/06/14 21:00:43
Genericsとかの話用にスレ立てた。
何かすっきりしないと思ったんだよね。

現世代Javaの動向 1
スレリンク(tech板)

【JavaFive】C#からJ2SE5.xへ進化【TigerShot】
スレリンク(tech板)
はどうすんだって話はあるけど、ま、Mustangリリース後は、
ここがDolphinの話題になって、現世代にMustangが含まれる、でいいかと思って

453:デフォルトの名無しさん
06/06/14 21:13:48
>>447
フォントのAAがヒントに従ってかかるようになった。
5のswing.aatext=trueのように、UI Gothicにまでかかることはなく、tahomaなんかには
なにもしなくてもAAがかかる。

454:デフォルトの名無しさん
06/06/14 21:24:23
( ゚д゚)、AAだと!

455:デフォルトの名無しさん
06/06/14 21:28:53
>>453
ビットマップ情報使えるサイズの場合はアンチエイリアスかからないだけなんでは?

456:デフォルトの名無しさん
06/06/14 23:31:36
個人的にはAAはどうでもいいかな。
browseとトレイはありがたいね

457:デフォルトの名無しさん
06/06/15 11:50:22
>>452
スレ違いを文句いいながら、板違いのスレ建てるわけか。

458:デフォルトの名無しさん
06/06/15 14:13:46
無駄に重複してるだけに見えるがな

459:デフォルトの名無しさん
06/06/15 23:07:20
一時的なスレ違いのために、永続的な重複スレを建てるヤツ

460:デフォルトの名無しさん
06/06/16 10:08:20
たいてい重複スレのほうが長生きするんだよね。レスがないから。

461:デフォルトの名無しさん
06/06/17 00:01:52
Mustang beta2
URLリンク(java.sun.com)

Top 10 Things You Need to Know
1. Web Services
簡単にWebService書けるようになってな、アノテーションで簡単やねん
2. Scripting
PythonとかRubyとか使えるし、みんな使えよ
3. Database
JDKにApacheDerby入るで。@Query(sql="select * from user")とかのアノテーションでSQL埋め込めるし。
4. More Desktop APIs
沢山デスクトップ用改良入ったから期待しとけよ。
JTableとかソートとかフィルタとかできんねよ、すごいやろ?
5. Monitoring and Management
何も考えんでもモニタとかできるようになったで。
Jhatっちゅうヒープ分析ツールも入れといたさかいにあんじょう使うてや。
6. Compiler Access
JSPとかPHP作る人には便利になったやろうなぁ。うごいとる時にコードの
コンパイル動的してJavaCodeにできるんや。
7. Pluggable Annotations
アノテーション自分で付けれるようになってみんなニコニコだお( ^ω^)
8. Desktop Deployment
GUI綺麗に簡単になったで。まぁそれはそのゴニョゴニョや。
9. Security
XML署名とか入ったり、セキュリティの管理簡単になったの。
10. The -ilities: Quality, Compatibility, Stability
まぁ、なんや、みんな、これまで通りよろしゅうな

462:デフォルトの名無しさん
06/06/17 00:28:51
VMで動いてるんだからVMwareみたいにSuspend/Resumeできればいいのに

463:デフォルトの名無しさん
06/06/17 07:03:58
>JDKにApacheDerby入るで。
うわぁマジで?俺も使ってるけど標準はやりすぎだろ…
HSQLのが速いし組み込む目的ならこっち

464:デフォルトの名無しさん
06/06/17 07:20:30
HSQLDBは、通らないSQLが多いからなぁ。
まあ、IBMの政治力の勝利ってことでしょう。
DB2互換だし。

465:デフォルトの名無しさん
06/06/17 07:22:48
Apache Derbyじゃなくて「Java DB」が組み込まれるということになってるけどね。
NetBeans5.5のメニューが「Derby DB」から「Java DB」に変わったときから気になってた。

466:デフォルトの名無しさん
06/06/17 07:25:44
DerbyといえどSQL92に完全準拠してるわけではないよな
JVMのベンダー互換が崩れるきっかけになりそうでやだな
JDOQLだかに準拠させる規格でもあるのかな

467:デフォルトの名無しさん
06/06/17 08:09:14
JDOはもう死んでるでしょ。
それを言うならJPQL(旧EJB-QL)かな。
IBMの意図はわかるけど、Sunの意図がわからない。

468:デフォルトの名無しさん
06/06/17 10:05:42
PersistenceAPIのためだろ

469:デフォルトの名無しさん
06/06/17 10:44:55
OJB&Derbyで標準化して、実際使うときはHibernate&HSQLにするということだね

470:デフォルトの名無しさん
06/06/17 10:51:17
HSQLDBはスタンドアロン用だからな
まったくターゲットが違うしJDBCドライバサポートが1.0レベルだったようなきが
HSQLDBの後継のやつはシンプルさが失われてるらしいのがちと心配

スタンドアロンアプリで付属DBとしてならHSQLDBのほうが楽かと
Windowsの業務系スタンドアロンパッケージのほとんどがMSDE使ってるのと同じような感じで
あちらは将来MSSQL鯖にかえるのが目的にもなってるが

471:デフォルトの名無しさん
06/06/17 13:38:37
Mustang b88
URLリンク(download.java.net)
URLリンク(www.java.net)

MSVC 2005 Expressでのビルドエラーが解消されている。
只でビルド環境そろえられるって素晴らしい。

日本語ドキュメントのレビューがしたい方はこちら
URLリンク(jdk-api-ja.dev.java.net)

472:デフォルトの名無しさん
06/06/18 12:58:55
>>471
俺は、
> 6382711JComboBox incorrectly rendered with alternate WinXP theme
がうれしい。

473:デフォルトの名無しさん
06/06/18 20:27:38
>>461
> 1. Web Services
> 簡単にWebService書けるようになってな、アノテーションで簡単やねん
Java EE絡みのものがなぜかJava SEでできると?

> 3. Database
> JDKにApacheDerby入るで。@Query(sql="select * from user")とかのアノテーションでSQL埋め込めるし。
これは凄い。なんでHSQLDBじゃなかったんだろう。
機能性の高さからかな? 採用されたのは背後でIBMの関与でもあったのかな?
Appletからメモリ上にテーブルを作成してクエリ呼び出すようなことできるのかな?

> 9. Security
> XML署名とか入ったり、セキュリティの管理簡単になったの。

簡単になるのか。Javaのポリシーファイルはなんだかイマイチだったのか
嬉しいかも。
署名がXMLってどういうこと? genkeyで作るものはバイナリでは?
ポリシーファイルがXMLになるだけ?


474:デフォルトの名無しさん
06/06/18 20:28:51
>>466
> DerbyといえどSQL92に完全準拠してるわけではないよな
> JVMのベンダー互換が崩れるきっかけになりそうでやだな
そのうちSQL92互換になってゆくのではないかと。
SQL99互換になればいいんだけどねえ

475:デフォルトの名無しさん
06/06/18 20:43:02
Mustanggが出たとき、
HSQLDBを搭載しているJBossはどのような動きを
示すのか?

HSQLDBをJBossから外してゆくのかな?

476:デフォルトの名無しさん
06/06/18 20:46:49
BEAは面白くないだろうなJava6シリーズは。

477:デフォルトの名無しさん
06/06/18 21:04:14
>>473
XML署名ってRFC3075のことでしょ。
URLリンク(www.w3.org)
URLリンク(www.ietf.org)

この辺り、XMLで統一的に扱えるように。
URLリンク(www.w3.org)
URLリンク(www.w3.org)
URLリンク(www.w3.org)
URLリンク(www.w3.org)

478:デフォルトの名無しさん
06/06/19 00:58:30
>>473
SEでWEBサービスが、というのはクライアントの話だろ?
JDBCやRMI、クライアントのソケットと同じでは?


479:デフォルトの名無しさん
06/06/20 12:55:00
XMLパージングとJavaオブジェクトマッピングを、
アノテーションを使って簡単に。ってことみたいだな。

今時クライアントサイドでも色々やりたいしな。

480:デフォルトの名無しさん
06/07/02 18:41:14
Bata2 に ApacheDerby って入ってるの?
インストールしてみたけど、
どこにあってどう使うのかがわからん。

481:デフォルトの名無しさん
06/07/02 19:42:57
>>480
さぁ?アレ適当に訳したから。
原文は、
final Mustang development kit(JDKだね) will(だからまだかも) co-bundle....
ってなってるからまだ入ってないかもよ。

482:デフォルトの名無しさん
06/07/02 20:00:33
URLリンク(www.javalobby.org)
β2ってb84だったような・・・


483:デフォルトの名無しさん
06/07/02 22:15:01
URLリンク(journal.mycom.co.jp)
の辺りの記事では
Beta2 に入ってるっぽく書いてあるんだけど、

URLリンク(www.in-vitro.jp)
のように
%JAVA_HOME%/db
には入ってなかった

484:デフォルトの名無しさん
06/07/03 01:10:44
せっかくweekly buildされてんだから、β2にこだわらず、最新build使うってのがいーんじゃない?


485:デフォルトの名無しさん
06/07/03 02:50:44
b90 のインストールに失敗するんだよね
「変換するときにエラーが発生しました。
指定された変換のパスが有効であることを確認してください」とかいわれる。

jdk-6-rc-bin-b90-windows-i586-30_jun_2006.exe って奴を
3回落としてきてるんだけど、3回とも同じメッセージが出て駄目だった。

b89 だったらインストールできるんだけど。

486:デフォルトの名無しさん
06/07/03 03:10:10
>>485
漏れも出る。
インストーラのアイコンも変わってるし、
何か派手な事またしてんのかなーっと思って、b89入れ直しました

487:デフォルトの名無しさん
06/07/04 09:31:22
b90でRhino削除されてないか?

488:デフォルトの名無しさん
06/07/04 20:51:34
時給1000円でJava教えてくださるかたを募集します
場所 所沢(池袋・高田馬場から直通)
よろしくおねがいします
i-want-to-study-java@hotmail.co.jp

489:デフォルトの名無しさん
06/07/05 02:20:38
コンビニのバイトより安いですが、よろしくお願いします。

490:デフォルトの名無しさん
06/07/05 02:42:38
この時給って事は、その分、生徒が夏帆みたいな子なんだよな?



491:デフォルトの名無しさん
06/07/07 20:39:21
URLリンク(jdk-api-ja.dev.java.net)
APIドキュメントの翻訳進行中

492:デフォルトの名無しさん
06/07/12 00:26:45
b90でコケて(?)以来、snapshotがとまったな。

493:デフォルトの名無しさん
06/07/12 02:29:38
>>492
いや、forumではannualだからビルドねーよ、とのこと
SUNWは7月から会計年度始まるからな

494:デフォルトの名無しさん
06/07/12 03:01:13
>>492
> There won't be a promoted build on July 6th because of 4th-of-July holidays. [July 3, 2006]

495:デフォルトの名無しさん
06/07/12 08:41:36
>>490
所沢に行くとチーマーに拉致監禁されて
出会い系サイト作らされてry

496:デフォルトの名無しさん
06/07/12 09:46:35
>>488-489
なんだその安すぎる時給は。なめとんのかゴルァ!

時給5000円以上じゃないと絶対に引き受けない。



497:デフォルトの名無しさん
06/07/12 10:12:48
>>496
毎回手作りケーキと紅茶が付くとしても?

498:デフォルトの名無しさん
06/07/12 10:14:23
>>497
だれの手作りかによる
まずは写真とプロフィール(略

499:デフォルトの名無しさん
06/07/12 10:37:40
>>497
割に合わんな。毎日同じもん食っても飽きる。
毎日中華丼やキムチ食わされたらさすがにキレる。

そんな子供だましなことに乗せられる騙される奴は餓鬼や新人や新卒くらい。
そんな給料で結婚子育て生活ができるとでも思っているのか!!!!!!!!!!!!
二人の子どもを大学院に行かせる金も用意できないだろがゴルァ!
授業料がいくらかかると思っているのか貴様!

ケーキが100円、紅茶が150円だとして、時給1000円
だとしても、
一日8時間勤務だとしたら、日給8250円相当にしかならない。


500:デフォルトの名無しさん
06/07/12 17:52:25
>>499より>>498に賛同する。
人間、夢を持てよ。

501:デフォルトの名無しさん
06/07/12 17:59:56
>>499
ケーキが欲しいんじゃない、人はケーキの向こう側に夢を見るんだよ

502:デフォルトの名無しさん
06/07/12 18:18:09
>>499
> ケーキが100円
「手作り」ということを忘れている。Priceless

503:デフォルトの名無しさん
06/07/12 18:27:45
そうか・・・・
>>499  は今が幸せなんだな・・・・
手作りケーキがタダのケーキとして扱える位に・・・ちくしょう・・・orz
こんな小さな幸せでも拾いたいのは不幸せということか・・・

504:デフォルトの名無しさん
06/07/12 18:35:16
小さなことを幸せに感じることができるのは幸せなことだと思うぞ。

505:デフォルトの名無しさん
06/07/15 11:51:22
うーん、jdk-6-rc-bin-b91-windows-i586-13_jul_2006.exe もインストール失敗する。

いろいろ弄って、
C:\Documents and Settings\username\Application Data\Sun\Java\jdk1.6.0\jdk1.6.0.msi
を使うと英語版のインストーラが起動して、インストールできるっぽい。
っても、無理やり動かしてるからちゃんとインストールできてるかちょっと不安だけど。

ちなみに、エラーメッセージ出た直後に OK 押してインストーラ終了させちゃうと、
ファイルが揃ってない事があった。そのまま OK 押さずに放置して
~\Application Data\Sun\Java\jdk1.6.0 に 12個 52M のファイルが
出来るのを待つのがコツっぽい。12個 52Mってのは b91 の場合ね。他は知らん。

b91 とか b90 とか普通に exe でインストールできてる人いるんだろうか?

506:デフォルトの名無しさん
06/07/15 23:11:22
>>500-502
相手が男だったら夢も潰れるよ。

それだったら高い給料から
差し引いて自分の金でケーキを買って食べるよ。
ついでに彼女にケーキをプレゼントする。

ケーキもらって喜ぶのは男より
女の子のほうだからな。

男はケーキより金のほうがいいに決まってる。
ケーキの上や中に不味いものや嫌いなものや
むさ苦しい男の手垢によって付着した黄色ブドウ球菌が
入っていたらそれだけで嫌な気分になるどころか
食中毒を起こして治療費負担が増大するからな。

それだったら自分でケーキを買った方がマシ。

>>497はせいぜい女を騙して働かせるんだな。

507:デフォルトの名無しさん
06/07/15 23:12:17
>>504
線香花火のように長続きしない幸せだ。
そんなことで幸せを感じるのは貧乏人や女だけ。
馬鹿な経営者に洗脳されて長時間労働させられて
幻覚を見ているだけだ。


508:デフォルトの名無しさん
06/07/15 23:44:57
幸せを感じる力は一種の才能
埋もれるほどの財を得ても他人を呪い明日の裏切りに怯える悲惨な人生もある

509:デフォルトの名無しさん
06/07/16 00:40:55
>>499=>>506は人格障害気味だな。
結婚子育てとか言ってるけど、無縁じゃないの?

510:デフォルトの名無しさん
06/07/16 12:28:52
>>508
カーネギーやナポレオンヒルやロックフェラーはそんなに悲惨かね。
堀江被告みたいなバカじゃあるまいし。


511:デフォルトの名無しさん
06/07/16 12:29:40
>>509
うーむ、そうやって人を見た目で判断しちゃ逝けないなー


512:デフォルトの名無しさん
06/07/16 14:13:59
>>506
何かいやな事があったんだな・・・強く生きていこうぜ・・・

で、俺もb90,b91のインストール状況は気になる。
b90で、
Eliminate installshield dependency for JDK offline msi installer
って言ってる変更が気になるんだよな・・・

513:デフォルトの名無しさん
06/07/16 18:44:24
会社で給与交渉や重労働のことで
都合が悪くなると昇給する代わりに
飯を奢って食わせてどうにか凌ぐ社長って奴じゃね?

半年に一回5000円の飯奢って貰うんだったら
昇給として月収5万アップして貰って自分の金で
伊勢海老なりフランス料理なり食った方がましってことだろう。


514:デフォルトの名無しさん
06/07/17 11:45:34
Rhinoの質問していいでしょうか。
JDK6にむけてRhinoの勉強をしているんですが、int値がかってにdouble値になって困ってます。
具体的には、int値をもつ変数に対して演算をすると、int + int => double になります。

import org.mozilla.javascript.*;
public class RhinoTest {
 public static void main(String[] args) {
  Context context = Context.enter();
  Scriptable scope = context.initStandardObjects();
  String code = "var x = 3;¥n"
        + "var y = 3 + 2;¥n"
        + "var z = x + 2;¥n"; // int + int が double になる
  context.evaluateString(scope, code, "(filename)", 1, null);
  String[] varnames = { "x", "y", "z" };
  for (int i = 0; i < varnames.length; i++) {
   String var = varnames[i];
   Object value = scope.get(var, scope);
   String cname = value.getClass().getName();
   System.out.println(var + ": class=" + cname + ", value=" + value);
  }
 }
}

実行結果:
x: class=java.lang.Integer, value=3
y: class=java.lang.Integer, value=5
z: class=java.lang.Double, value=5.0 # ← doubleになってる

どなたか、解決方法を教えていただけないでしょうか。よろしくお願いします。

515:デフォルトの名無しさん
06/07/17 11:51:56
ECMAScriptの数値型って浮動小数点型しかないから、
むしろxとyがint型なのがおかしい気がする……

516:デフォルトの名無しさん
06/07/17 16:38:11
>>515
ありがとうございます。
>ECMAScriptの数値型って浮動小数点型しかないから、
そうなんですか。初めて知りました。
それだとすごく困りました。どうしよう。


517:デフォルトの名無しさん
06/07/17 17:25:42
Excelも浮動小数点しかないから誤差だしまくりだし
イコールでの数値判定は危険
だが、Excelは使われてる


もちろんそれが困る用途もあるが
要は用途による割り切りかたかと


518:デフォルトの名無しさん
06/07/17 20:15:34
>>517
誤差がどうとかではなくて、型が勝手に変わってしまうのを問題にしています。
JavaScriptを設定ファイルがわりに使おうと思ってたんですけど、型が勝手に変わるとなんぎします。
x = 1;
y = x + x;
で y が double になってしまうなんて。
for (i = 0; i < n; i++) {
 ...
}
で i がdoubleだなんて。
どうしたものやら。

519:デフォルトの名無しさん
06/07/17 20:55:17
時給1000円でJava教えてくださるかたを募集します
場所 所沢(池袋・高田馬場から直通)
よろしくおねがいします
i-want-to-study-java@hotmail.co.jp
教える対象は超初心者です。

専門学校などでJavaを勉強されていて夏休みだけ教えたいという方も歓迎です


520:デフォルトの名無しさん
06/07/17 21:12:37
==使わない限りDoubleでさほど問題ないのでは?

521:デフォルトの名無しさん
06/07/17 21:36:03
>JDK6にむけてRhinoの勉強をしているんですが

なんかRhinoがJava6から脱落したみたいなレスがどっかにあったような…。

522:デフォルトの名無しさん
06/07/17 21:40:01
>>519
夏帆クラスの女の子の手作りケーキは付くのか付かないのか、
それが問題だと(ry

523:デフォルトの名無しさん
06/07/17 21:45:18
>>521
>>487 ただし、b90インスコに失敗するので試せてない

524:デフォルトの名無しさん
06/07/17 22:04:31
b91 だと Rhino あるよ。rt.jar の中っぽいけど。

525:デフォルトの名無しさん
06/07/17 22:41:51
>>520
JavaScript側で設定した変数の値を、Java側にとってこようとしています。
そのため、JavaScript側でintを設定したつもりなのに、Java側に渡るとDoubleになっているのは困る訳です。

526:デフォルトの名無しさん
06/07/17 22:54:10
scriptでは常にDouble
精度速度保障のために値が変更されなければintのまま扱ってるだけだろうな
定数だけという感じで

だからJavaではDoubleをすべてvalueofで拾うのが正しそうだが

527:デフォルトの名無しさん
06/07/18 18:12:28
>>525
ウチで試したら、代入したときからDoubleみたい。
というか、何か呼び出し方が違うなぁ・・・・Binding使ってるから変換されてる?
この挙動から推察すると、JavaとのインターフェースではDoubleになるのが仕様なのでは?

/*ソースはインデントの為、半角→全角変換しています*/
package script;
import javax.script.*;
public class TypeTest {
 public static void main(String[] args) {
  try {
   ScriptEngine se = new ScriptEngineManager().getEngineByName("js");
   Bindings bdg = se.createBindings();
   bdg.put("x", null);
   se.setBindings(bdg, ScriptContext.ENGINE_SCOPE);
   Object res;
   res = se.eval("var x = 1;");
   System.out.println("JS Binding:"
     + bdg.get("x").getClass().getName() + ":"
     + bdg.get("x"));
  } catch (ScriptException e) {
   e.printStackTrace();
  }
 }
}

結果:
JS Binding:java.lang.Double:1.0

528:デフォルトの名無しさん
06/07/21 17:58:47
b90以降インストール出来ない件は
やはりバグでした。b94でfix予定。
URLリンク(bugs.sun.com)

回避策は、
jdk*.exe /lang=1033
としてインストーラを起動。
英語版として起動させるという手段らしいです。

529:デフォルトの名無しさん
06/07/22 23:13:33
Java5のGenericsなクラス、Genericsによって
型指定されたクラス(たとえばList<String>とか)を
クラス図で記述できるUMLモデリングツールがほしい。

Jude3.0では対応していなかった。



530:デフォルトの名無しさん
06/07/23 12:58:22
Judeはいまだに5.0未対応か
1.4系のSystemLAFはぜんぜん似てないからちとな

531:デフォルトの名無しさん
06/08/08 09:03:43
>>528
b94の変更点一覧によると、インストーラの不具合は予定通り修正されたようだな。


532:デフォルトの名無しさん
06/08/09 02:17:11
>>531
いっぺん、アンインストールのときにエラーがでるかもしれんけど
気にせず2回目実行すれば大丈夫だな

533:デフォルトの名無しさん
06/08/09 19:38:40
そーいや、7月に Dolphin プロジェクト始まるとか言ってなかったっけ?

534:デフォルトの名無しさん
06/08/16 16:38:37
>>533
チェックしたら7/21にビルド始まってた
URLリンク(download.java.net)
ビルドサイクルは、まだ確立されてなさげだけど

535:デフォルトの名無しさん
06/08/16 16:47:24
>>534
追記:
ベースになってるのがb90-b93らしいので
>>528 の回避策を使わないとインストールできませんので。

536:デフォルトの名無しさん
06/08/20 17:29:10
Javaは引数の参照渡しができない
とんでもない駄作

537:デフォルトの名無しさん
06/08/20 17:35:07
536は引数の参照渡しができないとスワップもできない駄プログラマ

538:デフォルトの名無しさん
06/08/20 17:49:09
Javaは参照の値渡しをしているだけだ。
参照そのものは渡せない。だからライブラリが作りやすいのに。

539:デフォルトの名無しさん
06/08/20 19:12:00
> 536
問題なし。

void hoge(int[] a){
 a[0]=a[0] * 2;
}

void main(){
 int[] lap = {2}
 hoge(lap);
 int v = lap[0];
 System.out.println(v);
}

540:デフォルトの名無しさん
06/08/21 14:08:50
C言語風だな。


541:デフォルトの名無しさん
06/08/21 14:59:40
>>539
Arrayでラップか、でもその場合つづりはwrapじゃないか?


542:デフォルトの名無しさん
06/08/21 15:06:53
>>522
STARDUST OFFICIAL SITE
URLリンク(www.stardust.co.jp)

こんな子がでたらそりゃどきどきするわな。
ただし時給1000円だと、こんなかわいい女の子と仲良くなった途端
仕事辞めちゃうもんだなw

543:デフォルトの名無しさん
06/08/21 18:51:32
>>542
こんなかわいい女の子がプログラミングに興味持つのだろうか?
周りを見回すと、数少ない女はみんな…ry
誰かかわいい女の子がいる職場知ってる?

544:デフォルトの名無しさん
06/08/21 19:04:01
可愛いってのはそれだけで才能だからな。それを活かせるのは
プログラムするところじゃないだろう。本人が好きなら分らんけど、
そうなる可能性は奇跡のように小さいだろうね。

545:デフォルトの名無しさん
06/08/21 22:03:24
peter ahe のブログみてたら クロージャの文法っぽいpdf が落ちてた。
URLリンク(blogs.sun.com)

クロージャ変換というのが提案されてて、
java.lang.Runnable みたいに 1つしかメソッドを持たない interface と
同じシグニチャを持つ クロージャは変換可能になるみたい。
(void() 型のクロージャは Runnable にも変換できるらしい?)

ただこれ、java.uril.concurrent.Executor executor = ...;
execurot.execute( (){ System.out.println("test"); } ); は
コンパイラが暗黙に Runnable の匿名クラス作ればOKっぽいけど

例えば Runnable と似たようなインターフェイス
interface MyInterface{ void method(); } があったときに
void() closure = (){ System.out.println("test");
Runnable r = closure;
MyInterface m = closure;
とかされた時どーすんのかな? とか思った。

あと、null が正式に型に昇格する事も検討されてるらしい。
null.class とかできるようになるとか?

546:デフォルトの名無しさん
06/08/21 22:30:15
nullがクラスになったらどういう事が出来るようになるの?

547:デフォルトの名無しさん
06/08/21 22:47:37
reflection とか型推論とか通常は値を返さない関数のように動くクロージャに必要って書いてあるけど、
よくわからん。

548:デフォルトの名無しさん
06/08/21 23:04:29
あ、判った。匿名クロージャは引数型は必要だけど戻り値型を書かなくていいらしい。
で匿名クロージャで return 文を書かずに、その匿名クロージャが中途完了する場合
(必ず例外投げる場合とか?)は戻り値型が null になるって事らしい。
正常完了する場合とか、引数無しの return がある場合は戻り値型 が void になるって書いてあった。

549:デフォルトの名無しさん
06/08/21 23:08:15
それって、戻り値が「必ず」nullになるんなら、nullじゃなくてvoidにしたらなんで駄目なんだろうか。

550:デフォルトの名無しさん
06/08/21 23:14:42
戻り値が必ず null になる場合に void にしたら拙いじゃん。

Object closure() ってのがあって、
そのつもりで (){ return null; } って匿名クロージャ書いて
戻り値型を void にされたら適わん。

551:デフォルトの名無しさん
06/08/21 23:16:05
あれ?
nullが型になるってことは、そういう場合は
Null closure()
って書かないといけないってことなのかと思ったんだけど。

552:デフォルトの名無しさん
06/08/21 23:20:07
よーするに、中途完了する匿名クロージャは、
値を返すクロージャと型の互換性が無いと拙いって事では無いかと。

値を返すメソッドを持った interface を書いて、
実際には必ず例外投げる匿名クラスを作りたいとする。
匿名クラスの場合は戻り値型があるから良いけど、
匿名クロージャは明示的に戻り値型を書けないっぽいので。
戻り値型を null にしておけば、どんな戻り値型のクロージャとも
互換性ができるのでは無いかと思う。たぶん。

仮にそーだとすると、null は void の上位クラスって感じになるのかな?

553:デフォルトの名無しさん
06/08/21 23:25:47
void の上位クラスっつーか、null は void と Object の上位クラスって感じか……

554:デフォルトの名無しさん
06/08/21 23:38:53
>>545には、そんな難しい事書いてない。
値nullが存在する限り、値nullには型が必要ってだけ。

closureの文法では陽に書く場合があるので、これを機会に導入。
もともと型推論的には必要だったもの。


555:デフォルトの名無しさん
06/08/22 03:54:04
>>553
その辺はSubtypingのところに書いてあるな。
> A function type T is a subtype of function type U iff all of the following hold:
> ・Either
>  ・The return type of T is either the same as the return type of U or
>  ・Both return types are reference types and the return type of T is a subtype of the return type of
U, or
>  ・the return type of U is void.
(以下、引数型や例外に関しての条件が続く)

以下の条件の全てをみたすなら関数型Tは関数型Uの下位型である。
・以下の何れか
 ・Tの戻り型がUの戻り型と同じ
 ・二つの戻り型が共に参照型であり、Tの戻り型がUの戻り型の下位型である
 ・Uの戻り型がvoidである
(以下、引数型や例外に関しての条件が続く)

556:デフォルトの名無しさん
06/08/22 04:20:12
Referencing names from the enclosing scope のところ見ると、
匿名クラスの時みたいに final 付けろって書いてあるね。

557:デフォルトの名無しさん
06/08/22 12:30:17
>>556
逆、逆。
匿名クラスのように、finalを*付けなくていい*と書いてある

テキトーに訳してみると

>> We do not propose a rule that requires referenced variables be final,
>> as is currently required for anonymous class instances.

現在、匿名クラスのインスタンスに対して要求されているような、参照される
変数がfinalでなければならないという制約は提案しない

>> The constraint on anonymous class instances is also relaxed to allow
>> them to reference any local variable in scope.

また、匿名クラスに対する制約も緩和され、スコープ内のどんなローカル変数も
参照できるようになる

558:デフォルトの名無しさん
06/08/22 12:35:56
>>545

> 例えば Runnable と似たようなインターフェイス
> interface MyInterface{ void method(); } があったときに
> void() closure = (){ System.out.println("test");
> Runnable r = closure;
> MyInterface m = closure;
> とかされた時どーすんのかな? とか思った。

closureをラップするクラスをそれぞれの代入に対して、自動生成すればいいんでない?
 Runnable r = new Runnable_closure_bridge(closure);
 MyInterface m = new MyInterface_closure_bridge(closure);
みたいな感じで

559:デフォルトの名無しさん
06/08/22 19:35:52
>>557
あ、本当だ。嘘ついてすまん。

このスレの >>12 とかでも話題になってる変数の扱いとか、
どーなるんだろね? 後は VM に変更なしで実装できるんか?とか。

560:デフォルトの名無しさん
06/08/22 21:36:40
>>559

基本的には、ほとんどの機能はVMに変更なしで、コンパイラのみで
実装できると思う(ただし、クラスファイルフォーマットの変更は必要か?)
ただ、クロージャの中からそれを囲む関数をreturnする機能
(Non-local transferの部分)はVM変更なしでやるのはつらそう
簡単に実装するには、例外を使えばいいだろうけど、それだと性能出ないだろうし

561:デフォルトの名無しさん
06/08/22 21:38:12
>>560
自己レス
> クロージャの中からそれを囲む関数をreturnする機能
クロージャの中からそれを囲む関数の外側へreturnする機能、の間違いだ

562:デフォルトの名無しさん
06/08/22 22:11:08
Non-local transferは、p.5-6に記述がある。
その中でも>>560が心配しているケースはUnmatchedNonlocalTranser例外になる。


563:デフォルトの名無しさん
06/08/23 17:50:22
URLリンク(journal.mycom.co.jp)
Javaにクロージャだって。

564:デフォルトの名無しさん
06/08/23 17:57:58
上を見てみろ

565:デフォルトの名無しさん
06/08/23 18:05:27
('A`)

566:デフォルトの名無しさん
06/08/23 18:49:28
苦労じゃ

567:デフォルトの名無しさん
06/08/23 19:07:55
くだらん

568:デフォルトの名無しさん
06/08/23 19:49:51
で、結局このクロージャ内からローカル変数は参照できるの?
それとも引数渡し?

569:デフォルトの名無しさん
06/08/23 22:18:36
馬も出てないのになぜjdk7の仕様を気にするのか・・

570:569
06/08/23 22:23:10
あ、ごめんここ次世代スレだった
スレ間違った

571:デフォルトの名無しさん
06/08/23 22:29:11
ん?なんでスレ違い?Java6はもうすぐ出るしここでもいいような・・・

572:デフォルトの名無しさん
06/08/24 00:48:51
Java6は、メンテナンスリリース色が高いからな。
今後も、偶数バージョンは小変更、奇数バージョンは大変更という感じになるみたい

573:デフォルトの名無しさん
06/08/24 01:01:50
だが、あいかわらず5.0update8でエンバグとかやらかしてるからなんとも・・・

Java2DのOpenGLがWin環境でもちゃんと動作するようになってるかが見もの

574:デフォルトの名無しさん
06/08/24 17:32:21
Java7でクロージャの導入か。
いまいちクロージャって理解できていないのだが、

「外側のメソッドのローカル変数にfinal がついていなくてもアクセス可能な匿名クラス」

が仮に認められたら、これはクロージャ?

575:デフォルトの名無しさん
06/08/24 20:48:36
>>574
ちょっと違うとおもう。

それよりもマルチスレッド下でローカル変数束縛するとスタック上の実体をコピーで解決するつもりだったらアウトだし
ローカル環境を生かしておくとGCでメモリ断片化激しくなりそうとか厭な考えがよぎっちゃうんだけど、どういう風にするつもりなんだろう?

HotSpotがSelf由来だと考えればなにか考慮されているのだろうけど、関連論文とか乗っかっている書き込みとか見かけた人いる?


576:デフォルトの名無しさん
06/08/24 21:00:11
スコープを変数化するのがクロージャって感じかな。
ECMAScript触ってると特にそう思う。

577:デフォルトの名無しさん
06/08/24 21:03:03
クロージャからのローカル変数のアクセスは暗黙的に排他すんじゃないの?
それよりスレッドにクロージャを渡すような使い方は俺はしたくねーな

578:デフォルトの名無しさん
06/08/24 21:19:25
スタックを保存してヒープにもってくとかそんな感じ?よーわからんなぁ。
スクリプトだとthisの扱いがいつでもmixinって感じで使いにくいから
クロージャ使わないとデリゲートにならないんだよな

579:デフォルトの名無しさん
06/08/24 21:52:28
文書読んでみたが、並行性については特に何もやる気ないみたいだね
必要なら今まで同様プログラマが対処しろって感じ

580:デフォルトの名無しさん
06/08/24 22:47:06
Java in the BoxさんとこにJava 6では
「Server VM と Client VM の動的な変更」がサポートされるとあるんだけど
これってSwingとかで文字列置換メソッドは
Server VMでJITコンパイルできるとかそんなん?

581:デフォルトの名無しさん
06/08/24 23:46:44
クロージャはifやforの{}が引数と戻り値持った感じだと思う

>>577
Rubyやってると割と普通な気がするんだが、どの辺がいやなの?

582:デフォルトの名無しさん
06/08/25 00:13:18
匿名クラスでコンストラクタ定義できればそれだけでいいんだけどな。

583:デフォルトの名無しさん
06/08/25 00:23:38
そんなことより、Genericsの仕様、
さらなる変化は無いのか?

パラメタライズドクラスを作るのが大変なんだが。
タイプセーフなため、配列と違って、List<Integer>はList<Number>のサブクラスにはできんし。
<>の中にさらに<>を入れ子に書いてとクラス設計が難しい。
パラメタライズされたクラスの継承でのパラメータの扱いといい、
慣れるのが大変。






584:デフォルトの名無しさん
06/08/25 01:32:15
解ってないんだけど、ローカル変数ってもともとスレッド毎でしょ?
マルチスレッドで、何の問題があるの?
スコープ抜けたときにスタックからヒープにコピーすればいいだけじゃん?

585:デフォルトの名無しさん
06/08/25 03:48:23
クロージャってC++にも追加されるんでしょ?
流行ってるね

586:デフォルトの名無しさん
06/08/25 06:38:13
>>584
そのスレッドで、Runnableなオブジェクトを作って
クロージャを引き渡したらどうなると思う?
そういうこと。

また、今のListener系のような使い方をした場合、
マルチスレッドになるのは目に見えてる。
ただ、先の文書ではそこらへんは保証しないみたい。
主張を読むと、そういう場合は、今まで通り匿名クラスを使うか、
Javaで既に用意されてる並行性の仕組みを使えってこと。
なぜなら、そんなのを必要としない大多数の開発者には
パフォーマンスが落ちるだけで有り難迷惑だから。

587:デフォルトの名無しさん
06/08/25 06:47:06
>>583
つワイルドカード

 List<Integer> ints = new ArrayList<Integer>();
 ...
 List<? extends Number> nums = ints; //OK

588:デフォルトの名無しさん
06/08/25 10:19:17
>>587
List<T extends Number> nums = ints;
はだめなのか

589:デフォルトの名無しさん
06/08/25 10:25:11
>>588

public <T> void aMethod() {
List<T extends Number> nums;
//
}
とかならTが型パラメータと分かるので可能だが、そうでなく唐突に
Tが出ても未定義シンボルになる。

590:デフォルトの名無しさん
06/08/25 10:26:20
と思ったら出来なかったorz

591:デフォルトの名無しさん
06/08/25 10:45:45
>>582
いや、普通にできるが。

592:デフォルトの名無しさん
06/08/25 21:40:02
インスタンスイニシャライザではダメなんですたぶん

593:デフォルトの名無しさん
06/08/25 21:52:34
>>589
うーむ。Tの定義ってメソッドの頭かクラス宣言の後だったんだね。
継承使うとき、どうりで変だと思った

class A<T> implements SuperA {}
という表記はうまくいっても
class A implements SuperA<T> {}
はうまくいかず未定義といわれる。

当然、
class A implements SuperA<T extends Number> {
は怒られる

class A implements SuperA<?> {

も怒られる。


594:デフォルトの名無しさん
06/08/25 23:08:22
変なのはおまいの頭だと思うよ…

595:デフォルトの名無しさん
06/08/25 23:21:55
いきなりむかつくこといいやがったなおめえ。

確かにgenericsにはまだまだ慣れていないが、

情報が少なすぎていつもGenericsで悪戦苦闘して
こっちは大変なんだよ。

しかし、Genericsでパラメタライズされたクラスを
作ってる奴は少ないんだな。

2chでも稀なほうか。

C++Templateとは似てるようで違うためか、
使いこなせない奴も多いもんだな。


596:デフォルトの名無しさん
06/08/25 23:34:05
>>595
情報とか言う以前に仕様書を読めよ。
あと
class A implements SuperA<T> {}
なんか A を使うときにどうやって T が型パラメタか
普通のクラスか見分けるんだよ。少なくとも
class A<T> implements SuperA<T> {}
とやらないとパラメタ指定できないだろ。

597:しろうと
06/08/25 23:59:55
ちょっと質問なんですが、クロージャが実現できると、何がウレシイのでしょうか?

実行時評価するわけじゃなくて匿名インナークラスのSyntaxSugar+α程度のもの
でしかないのなら、別にどっちでもいいんじゃねえのとおもうんだが。

ここのところ、大々的に言語仕様かえるといっといて、結局やってることは
プリコンパイラにどっちでもいいだろという機能を追加してる程度のケース
が多いようなのだけど、どういう圧力からそういう結論になるのでしょうか。

後方互換を保つために妙な妥協して、あるべき論と掛け離れた中途半端な仕様
を差し込むくらいなら、何もしないほうがいいと思うのは私だけデスカ?



598:しろうと
06/08/26 00:09:24
>>595
別に無理に使わなくても、ちょっと頑張れば同じことができてたから
じゃないの。

おいらの場合、コードがコンパイラ依存になるのが嫌なので、当分セ
コセコデリゲートクラスとか自作して頑張ってくつもりです。


599:デフォルトの名無しさん
06/08/26 00:15:01
関数型のメリットは多いよ
・delegateの実装が楽(クロージャ)
・スクリプトフレームワークの拡張がしやすくなる
・継承では補いきれない差分プログラミングが可能(保守性向上)

600:デフォルトの名無しさん
06/08/26 00:17:08
>>597
> どういう圧力からそういう結論になるのでしょうか

VMにでかい機能を追加すると遅くなるだろ。
しかしGenericsの仕様はいくらなんでもあれだが。

601:デフォルトの名無しさん
06/08/26 00:20:42
>>598
Javaは私企業のプロダクトだから結局C#対抗な訳よ
マイクロソフトに負けたくないっていうSunの言語オタの意地とオナニー

602:デフォルトの名無しさん
06/08/26 00:22:15
.classみたいな感じで.methodってできるようになったら良くない?
ってとっくに議論され、破棄されたんだろうが。。。

いまでもリフレクションでできるけど面倒なんだよね。
メソッドにアノテーションつけた時に参照するのも
obj.getClass().getMethod("method1").getAnnotation(anno);
とかだぜ。タイプセーフの意味がない。
これが
method1.method.getAnnotation(anno);
となりすっきり。。。

603:しろうと
06/08/26 00:24:17
>>601
Javaもめでたくオプソになるらしいし、そのうちC#コンパイラとか
出るんでねえのかなとか思う毎日。…って、APIのサポートがむずいかな。

604:デフォルトの名無しさん
06/08/26 00:26:39
ECMA標準のC#なら余裕だろ
SUNもJava VMを.NET化させるつもりだし

605:デフォルトの名無しさん
06/08/26 00:29:14
Sunっていつも後手後手だよね

606:デフォルトの名無しさん
06/08/26 00:30:09
夏休みもそろそろ終わりなのになぁ。。。

607:デフォルトの名無しさん
06/08/26 00:32:42
>>605 ???

夏だな

608:デフォルトの名無しさん
06/08/26 00:36:37
もうJavaもおわりだなと感じる今日この頃

609:デフォルトの名無しさん
06/08/26 00:37:49
JavaOneの聴講者数は年々増加の一途なのだが

610:デフォルトの名無しさん
06/08/26 00:38:56
>>608
そう思われる様になってからが華


611:デフォルトの名無しさん
06/08/26 00:40:26
>>609
それに比例して、馬鹿がますます増えてきたな。

612:デフォルトの名無しさん
06/08/26 00:41:08
Java人口の増加と先進性は反比例

613:デフォルトの名無しさん
06/08/26 00:42:48
>>602
Hoge.classがClass.forName("Hoge")の言語糖衣だと知った時はショックでした。

614:デフォルトの名無しさん
06/08/26 00:47:55
>>597の感想はもっともだよな
後方互換を気にしながらC#の後追いしてるくらいなら
新たな言語環境を提案してくれないかな
もっともSunにもIBMにも無理そうだな

615:デフォルトの名無しさん
06/08/26 00:49:30
>>613
ちがくないか?
Class<Hoge> c = Hoge.class;

Class<?> c = Class.forName("Hoge");
でしょ?オレが間違って覚えてるのか。。。?

616:デフォルトの名無しさん
06/08/26 00:49:58
> 新たな言語環境を提案してくれないかな
100%ぽしゃるから。今の時代はライブラリ>言語仕様

617:デフォルトの名無しさん
06/08/26 00:58:11
>>615
日本語は間違って覚えてるね。

618:デフォルトの名無しさん
06/08/26 01:00:31
>>615
でそのGenericsも糖衣な訳だが

619:デフォルトの名無しさん
06/08/26 01:02:44
Javaの欠点はGUIライブラリの貧弱さ

620:デフォルトの名無しさん
06/08/26 01:04:00
>>619
Swingの実装感は.NETのライブラリとたいして変わらんと思うが。

問題は性能なのか?

621:デフォルトの名無しさん
06/08/26 01:06:06
>>618
そういえばそうか
でも.classリテラルはforName()とは使用場面が異なると思うんだが
それでも糖衣っていうのか。

622:デフォルトの名無しさん
06/08/26 01:08:42
>>621
Hoge.classはコンパイラ通すとClass.forName("Hoge")に
コンパイルされるってこったよ。

623:デフォルトの名無しさん
06/08/26 01:11:59
>>620
クライアントアプリを作るにはまだまだ
たとえるならXToolkitレベル
標準のFontChooserとかGridControllerとかなんで出てこないんだろ

624:デフォルトの名無しさん
06/08/26 01:13:48
>>623
目指すはVBなわけですな…かくてまた馬鹿が増えるのかorz

625:デフォルトの名無しさん
06/08/26 01:15:39
バッドノウハウとグッドラッパーの話だなこりゃ

626:デフォルトの名無しさん
06/08/26 01:19:50
目指すはVBてか、GUIはある程度統一されるべきな訳よ
GnomeやKDEのようにね
あるアプリで選択した色やフォントは、別なアプリでも使いたい
そのためにはJavaももうVMだけじゃなくて
バックグランドで常駐するサービスレイヤーが必要だと思うのね

627:デフォルトの名無しさん
06/08/26 01:21:54
>>626
>バックグランドで常駐するサービスレイヤー
Java6ってそれじゃなかったっけ。

628:デフォルトの名無しさん
06/08/26 01:22:08
>>622
syntax sugar ではあるが Class.forName("Hoge") にコンパイルされるわけではない。

>>623
Swing って SWT/JFace の対応で言う SWT の方 (基本機能) であって
高機能なコンポーネントは自作するorどっかからライブラリを探してくるor買う
もんだと思うんだが。

629:デフォルトの名無しさん
06/08/26 01:22:19
ブラウザがAPIいっぱつでデフォルトをぽんって出すから
そのうちメーラーとかコンパネとかフォントダイアログとか
そういうのもネイティブで出るんじゃないか

630:デフォルトの名無しさん
06/08/26 01:22:22
>>622
しつこいようだが、なんでジェネリックスだけ違うのかわからん。
Class<Hoge> c = Class.forName("Hoge");
がコンパイルしないのは何故?.classだとokなのに。
eraserとかってやつ関係かな?

631:デフォルトの名無しさん
06/08/26 01:26:57
>>623
それだといつまでたっても統一環境ができない
アプリは自作でいいが、サービス層はもっと充実させるべき

632:デフォルトの名無しさん
06/08/26 01:29:16
>>630
そういう場合こんな感じじゃなかったっけ
Class<Hoge> c = Class.<Hoge>forName("Hoge");

633:デフォルトの名無しさん
06/08/26 01:31:05
>>629
ブラウザが基盤だという発想には違和感感じっぱなしの私。
あれは明らかにアプリでしょうに…

634:デフォルトの名無しさん
06/08/26 01:33:30
>>632
よくわかんないけど
forName使う意味なくない?
forNameはコンパイル時にはclassが見えない時につかうんじゃね?
Hogeが手元に無い時とかさ。

635:デフォルトの名無しさん
06/08/26 01:37:21
>>634
そこは一応名前と実際のクラスは別もんということで、、、
クラスローダによってはほんとに別にできると思うけど

636:このネタ書いた人
06/08/26 01:48:59
正直どうでもいいんだけど

Class hoge = Hoge.class

を含むクラスをSunJDKのjavacでコンパイルして、javap -c してみると、

invokestatic Method java/lang/Class.forName:(Ljava/lang/String;)Ljava/lang/Class;

になるわけなんだが、俺なんか勘違いしてる?

637:デフォルトの名無しさん
06/08/26 02:03:04
まあGUIについてはJavaは約20年遅れてる
ってことでおやすみ

638:デフォルトの名無しさん
06/08/26 02:06:03
>>636
バージョンは?
確かにどーでもよいが。

639:デフォルトの名無しさん
06/08/26 02:08:48
>>638
手元のJDKは1.4.2_10。5.0は持ってないのでどうなるかシラン。

640:デフォルトの名無しさん
06/08/26 02:12:02
>>639
1.4までは.classは.forNameと同等
1.5からは扱いが変わったってことかな?
なんでかえる必要があったのか、というのは考えない事にします。

641:デフォルトの名無しさん
06/08/26 02:35:30
どうでもいいことだが、
1.5 からはクラスリテラルではクラスが初期化されない。

642:デフォルトの名無しさん
06/08/26 03:13:55
>>599
自分も、スクリプトフレームワーク側からの要請が
結構でかいんじゃないかと思う。
.NETなIronPythonは結構速いみたいだし、JythonとRhinoも速くなって欲しいな。

643:デフォルトの名無しさん
06/08/26 03:19:24
>>601
というけど、C#のようにはならんと思う。
C#とくらべかなりTypesafeだと思われ。

それだけにGenericsではパラメタライズされたクラスを
実装するのが難しいが。そのかわりタイプセーフが保証されるので
パラメタライズドクラスを便利に、かつ安心して使うことができる。

マイクロソフトに負けたくないってのとはちょっと違う。
っていうかJavaはもうSun私企業のプロダクトじゃなくなってるよ
Java Community ProcessによってだれでもJavaの変更について参加できる。
実際に変更するかどうかはゴスリングあたりが決めるが。
それも、JavaがC++の二の舞にならないようにするためさ。


644:デフォルトの名無しさん
06/08/26 03:20:37
>>604
> ECMA標準のC#なら余裕だろ
> SUNもJava VMを.NET化させるつもりだし

それは初耳。ソースはどこにある?
.NET化というのは.NETと共用するの間違いではないかと予想する。

645:デフォルトの名無しさん
06/08/26 03:21:39
>>614
? ゴスリングが新しい言語を作りたいとかいってなかったけか?


646:デフォルトの名無しさん
06/08/26 03:23:52
>>611
JavaOne聴講者に馬鹿が増えたと?
去年JavaOneTokyo2005に行ったときはそうでもなかったが。

綺麗な設備に恵まれた東京国際フォーラムを全部貸し切って、
金のかかったイベントだなって気がしたけど。

647:デフォルトの名無しさん
06/08/26 03:24:08
>>612
夏っぽい発言だね

648:デフォルトの名無しさん
06/08/26 03:25:30
>>620
>>619は古い時代のSwingのことを言ってるだけかもしれないよ。


649:デフォルトの名無しさん
06/08/26 03:27:08
>>624
ちょっと違うな。
Java Studio CreatorがVB屋向けっていうけど
あれはなんだか、Dreamweaverに似てる。
デザイナにJavaを憶えさせたいという無謀な考えがSunに
あったのだろうか。

それでもCreatorの完成度は高いけどね。
しかしメモリ食うしかなり重たい・・・


650:デフォルトの名無しさん
06/08/26 06:47:46
なんか開発環境と実行環境がごっちゃになってる香具師がいるようだが?

651:デフォルトの名無しさん
06/08/26 06:49:35
>>648
では聞くけど新しい時代のSwingって何?

652:デフォルトの名無しさん
06/08/26 11:25:56
>>651
Java5とかJava6のSwingじゃね?
もしかしたらJava1.4.2かも知れんが。
少なくともJava1.2やJava1.3のSwingでないことは確か。

653:デフォルトの名無しさん
06/08/26 12:53:54
Java SE 6 は、SwingにもJOGLの3Dレンダリングが使えるようになるんだろ。

654:デフォルトの名無しさん
06/08/26 13:48:54
>>653
それっていいの?
何がどう変わるのさ

655:デフォルトの名無しさん
06/08/26 13:55:21
今までは3Dを使う場合はAWTにする必要があった。
そのためSwingで使う場合AWTで作られたリソースをバイト配列にして再構築していた。
あとLinuxとかならSwingは高速化するんと違うかな

656:デフォルトの名無しさん
06/08/26 22:39:37
>>650
にしても、VBなんて開発環境と言語がわんせっとになった言語だよな


657:デフォルトの名無しさん
06/08/26 22:41:07
>>651
タスクトレイが追加されたりタブのスクロールや移動ができて
かつSWTよりも高速になった時代のSwingだよ。
C++で作られたGUIと比べてもパフォーマンスのほうは大差なくなってきたって事だね


658:デフォルトの名無しさん
06/08/27 02:14:20
>>614
別に後追いばかりってわけじゃないぞ
プリミティブ型のboxing/unboxing、拡張for文、アノテーションあたりは後追い感が強いが
Genericsの仕様はC#のGenericsの仕様が決定するだいぶ前から検討されてたし、
今回の関数型およびクロージャの仕様はC#のデリゲートに比べるとかなり良い仕様に
なっていると思う

659:デフォルトの名無しさん
06/08/27 02:17:15
Java 7のはっちゃけぶりを見るとJVMを残してJavaを捨てる気まんまんだな

660:デフォルトの名無しさん
06/08/27 12:41:57
>>658
後追いといっても、C#とは仕様が異なる感じだな。
アノテーションもboxingも。

後追いのようになってしまったのは、
Java Community ProcessでC#のことをよく知ってる人が
Javaにもこういう機能つけてくれよって提案したからじゃないかな。


661:デフォルトの名無しさん
06/08/27 12:42:38
>>659
Javaの何をすてるんかな。

JVMがどう進化するのか楽しみではあるが

662:デフォルトの名無しさん
06/08/27 13:45:50
>>661
Javaの構文だけを整理したものが残ると思う

663:デフォルトの名無しさん
06/08/27 14:43:35
>>662
何がいいたいのかよくわからないが、
構文を整理したものって一体どういうものを想像している?

気になるので挙げてみておくれ

664:デフォルトの名無しさん
06/08/27 14:57:22
getter, setterとか、addListenerのデリゲート化とか。
あとはjava.ioとjava.nioの関係みたいに
互換性のために統合を避けた部分も整理して欲しいし
StackとかPropertiesみたいに設計に失敗した部分も直す。
Javaの資産はD言語みたいに別言語構文を解釈する制御を入れればいい。

665:デフォルトの名無しさん
06/08/27 16:54:38
それより何より、配列まわりの型の腐りっぷりをさっさとどうにかして欲しい。

666:デフォルトの名無しさん
06/08/27 17:01:18
>>664
> getter, setterとか、addListenerのデリゲート化とか。

たまにJavaスレに紛れ込むドトネト厨だかVB厨かよ。
getter,setterはどうでもいい。その程度ならdelegate化もどうでもいい。
どうせクロージャが追加されるならなおさらどうでもいい。

> あとはjava.ioとjava.nioの関係みたいに
> 互換性のために統合を避けた部分も整理して欲しいし

認識が甘い。そんなとこを統合してどうする。
それとも、整理する必要がどこにあるのか具体的に説明できるか?

> StackとかPropertiesみたいに設計に失敗した部分も直す。
初心者Java質問スレ見てた奴だな?
どう見直すというのか。放置か@Depricatedでいいだろ。


> Javaの資産はD言語みたいに別言語構文を解釈する制御を入れればいい。
Java6ではスクリプト言語を解釈するAPIがあるぞ。

667:デフォルトの名無しさん
06/08/27 17:02:20
>>665
それも、Collectionがあれはどうでもいい。
多次元ジャグ配列なんて滅多に使わないし。
無闇に使う奴は設計能力センスが甘いやつだね。




668:デフォルトの名無しさん
06/08/27 17:07:32
>>666
> getter,setterはどうでもいい。その程度ならdelegate化もどうでもいい。
おまえの主観だろ?多言語出身者は口をそろえて汚い仕様という

> それとも、整理する必要がどこにあるのか具体的に説明できるか?
現状でBufferを使いこなせる技術者は極端に少ない。
ファイルマップすら知らない奴ばっか。

> どう見直すというのか。放置か@Depricatedでいいだろ。
depricatedなクラスがシステムローダにロードされる時点でおかしい

> Java6ではスクリプト言語を解釈するAPIがあるぞ。
根本的な部分でアイタタタ

669:デフォルトの名無しさん
06/08/27 17:11:29
>>668
> 現状でBufferを使いこなせる技術者は極端に少ない。
他は言語環境の改善要求っぽいのに、これは完全な愚痴だな。

670:デフォルトの名無しさん
06/08/27 17:12:55
あちこちでdeprecated のスペル間違えているやつがいるな。
同一人物か

671:デフォルトの名無しさん
06/08/27 17:15:20
>>669
コンセプト違いの重複した機能があちこちにある時点で要改善だろ

672:デフォルトの名無しさん
06/08/27 17:15:54
>>668
> >>666
> > getter,setterはどうでもいい。その程度ならdelegate化もどうでもいい。
> おまえの主観だろ?多言語出身者は口をそろえて汚い仕様という
他言語出身者って、どうせC#やVB, Delphi言語出身者かドトネト厨である
おめえの主観だろw 綺麗な仕様とやらはC#やDelphiのget/set程度の仕様かw
あの程度で綺麗なら、演算子オーバーローディングやunsafeでソースコードが汚くなるのを
どうにかしようとは思わないのか。

> > それとも、整理する必要がどこにあるのか具体的に説明できるか?
> 現状でBufferを使いこなせる技術者は極端に少ない。
> ファイルマップすら知らない奴ばっか。

Bufferはまた別の話だろ。Bufferを使いこなせる奴が少ないのと
配列の型がどうだこうだと一体どう関係があるのか。
Bufferが何のためにあるのかわかって言ってるのか?

> > どう見直すというのか。放置か@Depricatedでいいだろ。
> depricatedなクラスがシステムローダにロードされる時点でおかしい

なにがどうおかしく、どう不具合が出るのか説明できるか?

> > Java6ではスクリプト言語を解釈するAPIがあるぞ。
> 根本的な部分でアイタタタ

お前が痛い。

673:デフォルトの名無しさん
06/08/27 17:16:29
>>670
レス元コピって使っただけだ。単語をひらで書けないのは確かだがw

674:デフォルトの名無しさん
06/08/27 17:16:37
>>671
> >>669
> コンセプト違いの重複した機能があちこちにある
たとえばどのあたりが?


675:デフォルトの名無しさん
06/08/27 17:17:58
>>672
お前が.NET中心でしかものを考えられないことは良く分かった。
そのほかの点についてもお前が無知なだけ。調べろ。

676:デフォルトの名無しさん
06/08/27 17:24:23
desktopアプリではflash player >>> JREなのになんでJREはあんなに巨大でなければいけないのか
Java DEとか駄目?1Mくらいのサイズ希望

677:デフォルトの名無しさん
06/08/27 17:29:46
flash って desktopアプリ? webアプリじゃなくて?

678:デフォルトの名無しさん
06/08/27 17:38:38
>>675
でた厨房にありがちな最後の負け惜しみ逃げ台詞


679:デフォルトの名無しさん
06/08/27 17:40:36
>>678そのものがそれなんだけどなw

680:デフォルトの名無しさん
06/08/27 17:43:12
はいはいドトネト厨乙

681:デフォルトの名無しさん
06/08/27 17:44:34
説明の説明の説明を求められなきゃ分からん位の素人にJavaを擁護されてもな

682:デフォルトの名無しさん
06/08/27 17:50:48
意味が分からんよそこ

683:デフォルトの名無しさん
06/08/27 19:26:02
>>677
ブラウザーなくても動くし、おおよそのことはできると思うんだけど。
描画は早いし、ビデオやオーディオも強い
ソケットも使えるから、やろうと思えばDBにも直接接続できなくもない。

Java3dみたいのはないが。。。まだ。

684:デフォルトの名無しさん
06/08/27 21:46:29
自分の理解が足りないことを棚に上げて.NET厨扱いかよw

685:デフォルトの名無しさん
06/08/27 22:00:09
どどんとねっとじゃんぬねっと

686:デフォルトの名無しさん
06/08/27 22:09:04
ここはゲイツが悪いということで収めてくれ

687:デフォルトの名無しさん
06/08/27 23:58:56
できればスティーブ・バルマーにしてくれないか?

688:デフォルトの名無しさん
06/08/28 00:11:17
>>683
FlashはAS3で化けたが、描画が早いとかそんなことはない
Javaのほうがはるかに早い
機能が段違いすぎ

少なくともFlashでは単純なものしかロジックは書く気にはならないだろ

689:デフォルトの名無しさん
06/08/28 00:11:20
もう、ゲイツには力は無いよ。

そしてマイクロソフトもGoogleに推されている。

いつかマイクロソフトがGoogleの力によって陥落するのも時間の問題。


690:デフォルトの名無しさん
06/08/28 00:32:22
力がなくなろうがなにしようが悪いのがゲイツ

691:デフォルトの名無しさん
06/08/28 01:50:37
ウィリアムさまの悪口を言うなんて
なんて罰当たりな!w



692:デフォルトの名無しさん
06/08/28 02:57:40
何でいきなりクソスレ化するんだよ

693:デフォルトの名無しさん
06/08/28 04:12:03
必要な機能なら誰かが外部ライブラリで作ってくれるさ
本当に標準に必要なのは何かもうすぐコアライブラリのシュリンクが
入ってもいいんじゃないかと思う
SEが肥大化しすぎていると感じる今日この頃

Jakartaでいいじゃん、っていう機能がコアに
取り込まれてる気がしてなぁ・・・・
まぁ使う側からいえば、ライブラリ追加しなくて楽なんだが
それよりむしろ外部ライブラリを簡単に利用できる
仕組みの方が欲しいかな、JWSのライブラリ取得の仕組みを
もっと積極的に活用してもいいような気がする

694:デフォルトの名無しさん
06/08/28 05:31:07
言語仕様で縛って遅くする+ライブラリを肥大化させて互換環境を作りにくくする、
ってのがお日様の戦略なんだろ

695:デフォルトの名無しさん
06/08/28 08:57:30
特定の言語が腐ってるとかAPIが腐ってるとか言う奴がよくいるが、
お前が言うところのその程度の腐れが、仕事上でダメージを与えるシーンが
あったのか?そういうことが影響を与えるほど、センシティブな職場で働い
てみたいよw

今まで困ったことの例:
・馬鹿なプログラマが意図不明な長大コードを混入させ、そこにバグが
 あったため解析と修正を任された…
・頭の悪い上司から仕様不明目的不明イミフメイの処理の実装を指示された…
・自社の自称エリート技術者ドモが、利用者側の要求と全く合致しない
 フレームワークの利用を押し付けてきた…
・どこぞの営業が経歴詐称して素人をプロジェクトに押し込んできた…

問題は全部、人依存でした…orz


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch