[mustang/Java SE 6] 次世代Javaの動向 4 [dolphin]
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/20(月) 10:38:16[mustang] 次世代Javaの動向 3 [dolphin]
http://pc8.2ch.net/test/read.cgi/tech/1157227790/
次世代Javaの動向 2
http://pc8.2ch.net/test/read.cgi/tech/1147881822/
【Java】次世代Java・J2SE1.6の動向【Mustang】
http://pc8.2ch.net/test/read.cgi/tech/1081698555/
2006年12月にMustang Java SE 6がリリース予定
Mustangの掲げる主な目標は以下の点にある。
* 互換性と安定性および品質の向上
* Easy of Developmentの実現
* WebサービスおよびXMLサポート機能の拡張
* リソース管理や診断機能の強化
* デスクトップ環境の強化
Java SE 6 じゃじゃ馬ならし
http://www.javainthebox.net/laboratory/JavaSE6/
0002デフォルトの名無しさん
2006/11/20(月) 13:40:070003デフォルトの名無しさん
2006/11/20(月) 14:11:39複素数を扱う前に実数を扱うプリミティブ型がなくちゃ
0004デフォルトの名無しさん
2006/11/20(月) 16:54:57無限精度ってこと?
0005デフォルトの名無しさん
2006/11/20(月) 17:53:26BigDecimalでいいよ。
あれをプリミティブにしてもねえ
0006デフォルトの名無しさん
2006/11/20(月) 17:55:33conjugate()やabs(),arg(),getReal(),getImaginary(),innerProduct(),
とかいうメソッドがあったとして、これらもいちいち演算子で表現
することになったらどうする気だ。
0007デフォルトの名無しさん
2006/11/20(月) 18:39:17Complex z = "1+2i";
と宣言できるだけでいいな。
0008デフォルトの名無しさん
2006/11/20(月) 18:40:34数値演算に特化したサポートはスマンが我慢してもらえると助かります・・・
複素数なんて日常つかわねえっす
0009デフォルトの名無しさん
2006/11/20(月) 18:41:15それくらいなら
Complex z = Complex.valueOf("1+2i");
でいいんじゃないの?
0011デフォルトの名無しさん
2006/11/21(火) 00:30:08つ sun.rmi.dgc.server.gcInterval 、sun.rmi.dgc.client.gcInterval
0012デフォルトの名無しさん
2006/11/21(火) 00:38:32ガベージコレクトしてるんですか。
しかしTigerでは気にならなかったレベルだったような気がします。簡単なアウトラインエディタを作ってるんですが、文字入力や日本語変換とかが1分に一回規則正しく瞬間的に遅くなってしまいます。以前は気にならなかったのに。
001312
2006/11/21(火) 00:39:270014デフォルトの名無しさん
2006/11/21(火) 03:05:40じゃ、今早速作れ。
構文解析は負担がかかるが。
とりあえずはメソッドを演算子代わりにすることから
始めないことには
0015デフォルトの名無しさん
2006/11/21(火) 03:07:25その程度の簡単なものであればいいが
\int\~\infty_{\infty}\frac{\sin x}[\cos \frac{dx}{dt}]
みたいなものだととんでもなく負担が増大する。
0016デフォルトの名無しさん
2006/11/21(火) 09:02:490017デフォルトの名無しさん
2006/11/21(火) 09:10:27Matrix A = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
};
0018デフォルトの名無しさん
2006/11/21(火) 12:35:50うむ。それもそうだ。
複素数を却下するのではなく、String表記法
について慎重に検討するまでは却下する。
が正しい。@
0019デフォルトの名無しさん
2006/11/21(火) 12:37:39見たからにただの配列と変わらんな。
シンタックスシュガーとして
導入したとでもいうのかね。
だが、行列の演算子はどうする。
行列の積は*でいいのか?
それとも、行列の個々の要素同士の積こそが*であって
行列の積は*で表現すべきではないか?
ベクトルの内積演算子、外積演算子はどうする。
0020デフォルトの名無しさん
2006/11/21(火) 20:57:0911月上旬っていう記事を見たんだが、まだだよねぇ?
http://journal.mycom.co.jp/articles/2006/11/01/java/
0021デフォルトの名無しさん
2006/11/21(火) 21:25:070022デフォルトの名無しさん
2006/11/21(火) 21:34:22おまえは>>1すら読めないのか
0023デフォルトの名無しさん
2006/11/22(水) 08:28:56November と December を勘違いでもしたんじゃねーか?
と思わなくも無い。大地タソだし。
そこの記事ちゃんと読むと、記事の日付が 11/1 になってるのに
> Java SE 6のリリースまで1カ月強となった。
とか出てきて変だし。
0024デフォルトの名無しさん
2006/11/22(水) 18:06:260025デフォルトの名無しさん
2006/11/23(木) 02:52:35そんなあなたに Fortress
0026デフォルトの名無しさん
2006/11/23(木) 12:39:020027デフォルトの名無しさん
2006/11/23(木) 12:43:180028デフォルトの名無しさん
2006/11/23(木) 13:56:590029デフォルトの名無しさん
2006/11/23(木) 13:57:16E[] e = new E[5];
}
ができるように。
0030デフォルトの名無しさん
2006/11/23(木) 16:07:03erasure だけを使ってる限りは無理だろうね。
0031デフォルトの名無しさん
2006/11/23(木) 18:42:09全ての型で使える1つのコードを生成するだけでよいという利点
があるんだけど。
キャッシュの当たり率やメモリ消費量的には有利なはず。
C#のGenericsを採用した時点で、JITコンパイラは一部のコードを
C++のテンプレートのように型毎に生成する必要が出てくるからなぁ。
0032デフォルトの名無しさん
2006/11/24(金) 15:35:44そもそも、配列でそんなもんを使う価値が理解できない。
配列自体おかしな仕様なんだから。
List使え。
0033デフォルトの名無しさん
2006/11/24(金) 15:36:18Java GenericsはC#のGenericsとは違うからな。
0034デフォルトの名無しさん
2006/11/24(金) 16:35:44どの辺が?
0035デフォルトの名無しさん
2006/11/24(金) 16:36:56排除された記法っぽいな。
俺も>>29が出来てもそんなメリットとも感じないし。
0036デフォルトの名無しさん
2006/11/24(金) 20:31:36まず一つあげてみようか。
配列型を引数にとるとその引数である
配列の要素にまでfinalを指定できないことがあげられるね。
簡単に言うと配列は型安全性が完全に保証されていないこと。
配列の配列を他の配列の配列の型に代入できたりとか。
あと、配列型は継承できないこととか。
0037デフォルトの名無しさん
2006/11/24(金) 20:49:21コンパイル時、個々の要素毎でなく配列全体一括で不変にできるようにしようって話なら
adding_generics の時にも一旦出てたし、JSR 308 とかでもやろうとしてたりとかしてるね。
http://jcp.org/en/jsr/detail?id=308
> 簡単に言うと配列は型安全性が完全に保証されていないこと。
よくわからんけど、これは List も同じでは?
> あと、配列型は継承できないこととか。
配列を継承したいケースって、どんな時?
toString() 弄りたいとかはわからんでもないが、他の解決法あるし……
0038デフォルトの名無しさん
2006/11/24(金) 21:01:25一番上に関しては List でもコンパイル時にはチェックできないし。
Collections.unmodifiableList() とか使えば実行時にはチェックされるけど。
0039デフォルトの名無しさん
2006/11/24(金) 21:05:5936じゃないが、「配列は型安全性が完全に保証されていない」ってのは
下のコードは実行時例外が出るのにコンパイルが通るって話だろう。
ジェネリックな List だとコンパイルが通らない。
String[] ss = new String[] { "abc" };
Object[] os = ss;
os[0] = new Integer(123);
0040デフォルトの名無しさん
2006/11/24(金) 21:17:18コンパイル時の型安全だけに限ってるのか。
実行時は List の方が緩くなるし、どっちもどっちだと思うけどね。
Collections.checkedList() もあるけど、
Class が必要になるから、必ずしも使えるとは限らんし。
0041デフォルトの名無しさん
2006/11/24(金) 23:20:57それを配列にできないから配列は糞仕様だっていってるんだろ。
いちいりListに変換しないといけないからな
0042デフォルトの名無しさん
2006/11/24(金) 23:22:40配列をGenericsで扱うと、思い通りにいかないとかってやつ。
今その話が発端になっているのかな?
たしかにあれはキモイ。だから配列は極力つかわないほうが
綺麗になるってことかな。配列とGenericsとの併用は避けるべきだともいえそうだね。
0043デフォルトの名無しさん
2006/11/24(金) 23:26:37> > 簡単に言うと配列は型安全性が完全に保証されていないこと。
> よくわからんけど、これは List も同じでは?
そこでGenericsと、既に出たけれどもCollectionsクラスのアンモディファイアブルを
使う。配列だとListほど思い通りにいくわけでもないな。
配列はListよりパフォーマンスがよくてコード量が短いという
程度のメリットしかないな。
> > あと、配列型は継承できないこととか。
> 配列を継承したいケースって、どんな時?
そんなケースはまれだと思うが、
ある型Aを配列で扱いたいとき、
Aを継承したBも配列で扱いたい。
そんなとき、B[]はA[]を継承できるかっていうと
そうでも無いって奴だな。
そうなったらAArrayやBArrayというクラスを別途
作って対応するしかないって奴だ。
0044デフォルトの名無しさん
2006/11/24(金) 23:33:52Javaの中で妥協して作られたモノだと見てもいいな。
しかしprintf(String a, Object...)は
実は正体がprintf(String a, Object[] b)というからな
これもいつしか
public <E> PrintStream printf(String a List<E> )
なメソッドがオーバーロードされるんだろうか
0045デフォルトの名無しさん
2006/11/25(土) 00:03:05いや、generics は covariant じゃないから、型安全が保持されてるって書いてあったような。
> 配列とGenericsとの併用は避けるべきだともいえそうだね。
配列と Generics は相性も悪いしね。 >>29 みたいのができないし。
0046デフォルトの名無しさん
2006/11/25(土) 00:10:13> そんなとき、B[]はA[]を継承できるかっていうと
それって、どーゆー時に必要になる?
0047デフォルトの名無しさん
2006/11/25(土) 00:35:27みたいなときじゃないかな。
結局配列型を継承せず
配列型を集約するわけだが
0048デフォルトの名無しさん
2006/11/25(土) 00:42:00Sorted配列を継承してTree配列作る?
配列に対して、そーゆー発想は無かったなぁ。
0049デフォルトの名無しさん
2006/11/25(土) 02:25:17配列は非オブジェクト指向である。
0050デフォルトの名無しさん
2006/11/25(土) 02:29:470051デフォルトの名無しさん
2006/11/25(土) 03:09:59普通はしない
ってか、Tree配列ってなんだよ
0052デフォルトの名無しさん
2006/11/25(土) 03:35:37でも配列使うAPIも結構多いんだよね。
何しろGenericsができるまでは要素の型を指定できたの配列だけだし。
0053デフォルトの名無しさん
2006/11/25(土) 09:12:57nums[0] = new Double(1.0); //OK
//nums[1] = new Integer(1000); //ArrayStoreException
Double[] dd = (Double[])nums;//OK
Number[] num2 = new Number[2];
num2[0] = new Double(1.0); //OK
num2[1] = new Integer(1000); //OK
num2[1] = new Double(0.01); //OK
Double[] ddd = (Double[])num2;//ClassCastException
0054デフォルトの名無しさん
2006/11/25(土) 09:47:30それで「型安全が完全に保証されていない」ってんなら、極端な話すれば、
List<String> l = new ArrayList<String>();
Vector<String> v = (Vector<String>)l;
は、コンパイルが通るから、
「参照型の変数は型安全が完全に保証されていない」
とかいう変な話になっちゃうような気もする。
0055デフォルトの名無しさん
2006/11/25(土) 12:42:16それはキャストしてるだけでしょ。
型安全ってのはキャストなしでコンパイルが通ったら
実行時にも型に関する例外が出ないことだよ。
0056デフォルトの名無しさん
2006/11/25(土) 13:12:16それはキャストが型安全じゃない事を示しただけ。
そりゃ、キャストは型安全じゃないわな。
0057デフォルトの名無しさん
2006/11/25(土) 14:32:17private transient E[] elementData;(92行)
this.elementData = (E[])new Object[initialCapacity];(113行)
0058デフォルトの名無しさん
2006/11/25(土) 15:12:100059デフォルトの名無しさん
2006/11/25(土) 15:23:13配列がないとCollectionFrameworkもつくれないわけか・・・
0060デフォルトの名無しさん
2006/11/25(土) 15:28:51配列が covariant じゃなかったら 1.4 で Collection#toArray(Object[]) の
使い勝手が滅茶苦茶悪くなるし。極端に変な仕様だとも思わんが。
0061デフォルトの名無しさん
2006/11/25(土) 19:03:57まあその辺はトレードオフだわな
配列がcovariantなおかげで便利な部分があるのも確かだし
一方で型安全では無いとか配列の要素への代入時にチェックが入って遅くなる(可能性がある)
とか、covariantなために発生する問題もある
型安全かつ利便性をそれなりに保つためには、Java Genericsが採用したワイルドカードの
ような機能がJVMレベルであれば良かったんだろうけど、今更言っても後の祭りだしね
0062デフォルトの名無しさん
2006/11/25(土) 21:01:45っJNI
0063デフォルトの名無しさん
2006/11/25(土) 21:46:160064デフォルトの名無しさん
2006/11/25(土) 23:09:16covariantの意味はなんたるか
統計学用語で
varianseが分散
covarianseが共分散
ってのはわかるんだが
0065デフォルトの名無しさん
2006/11/25(土) 23:09:49variance
covariance
の間違い
0066デフォルトの名無しさん
2006/11/25(土) 23:11:35http://www2.alc.co.jp/ejr/index.php?word_in=covariant&word_in2=%82%A9%82%AB%82%AD%82%AF%82%B1&word_in3=PVawEWi72JXCKoa0Je
# covariant
【形】 《数学》共変{きょうへん}の
# covariant components
共変成分{きょうへん せいぶん}
# covariant derivative
《数学》共変微分{きょうへん びぶん}、共変導関数{きょうへん どうかんすう}
# covariant differential
共変微分{きょうへん びぶん}
# covariant differentiation
《数学》共変微分{きょうへん びぶん}
# covariant equation
共変方程式{きょうへん ほうていしき}
# covariant functor
共変関手{きょうへん かんしゅ}
# covariant gage
共変{きょうへん}ゲージ
0067デフォルトの名無しさん
2006/11/25(土) 23:13:54covariantとかtensor(テンソル)とかいわれても
わからん。
n次元空間とかn次元超平面とかクォータニンとか全然ピンと来ない
0068デフォルトの名無しさん
2006/11/26(日) 00:58:36プログラミング言語関係の用語のcovariance・contravariance
は、共変・反変と訳することが多い。varianceの訳語は
聞いたことが無いので、よくわからない
で、covarianceの意味だがここで言われてる文脈では
ある型AとBとパラメータ型Tについて、
A <: B => T<A> <: T<B> ( A <: B は AがBのサブタイプであるという意味)
が成立するとき、Tはcovariantであると言う。
で、Javaの配列に関して考えてみると
A <: B => A[] <: B[]
がJava言語仕様で決まっているからJavaの配列はcovariantなわけだ
一方、Java Genericsでは上記の命題が成立しないのでJava Genericsの
Generic型はcovriantでは無いというわけ
0069デフォルトの名無しさん
2006/11/26(日) 03:16:26もういいから、違う言語使えよ。
0071デフォルトの名無しさん
2006/11/26(日) 10:21:31この行を読もうとして変態言語のパーサの気分がよくわかった。
等幅フォントにしたら読みやすくなった。
0072デフォルトの名無しさん
2006/11/26(日) 12:49:03じゃ、オマエのおすすめの言語あげてみそ
0073デフォルトの名無しさん
2006/11/26(日) 13:08:53Javaや.NETと連携できるみたいだね。
面倒な計算はMathematicaのエンジンにやらせて、
結果だけJavaで表示って方法じゃダメか?
Mathematicaしか調べてないけど、他の製品にもこういうのあるんじゃない?
0074デフォルトの名無しさん
2006/11/27(月) 01:52:430075デフォルトの名無しさん
2006/11/27(月) 02:20:17ドトネトとの連携が>>69とどういう繋がりがあるんだかわからないが
数値計算のためにわざわざドトネトを使う価値ってものが
どういうものか説明しないことには意図が伝わらないな
0076デフォルトの名無しさん
2006/11/27(月) 04:31:53いや、>>73の論旨を読めてないでしょう。
JavaOnlyで行わず数値演算は、Mathmatica(あれも一種の言語だよな)
何かに任せ連携を取るということもあるという話。であって
数値演算に、Java、.NET等の汎用言語を「使わない」選択肢について語ってるのが>>73
0077デフォルトの名無しさん
2006/11/27(月) 08:07:07大学の端末には確かに入ってるけど・・
0078デフォルトの名無しさん
2006/11/27(月) 15:36:34つーか他の製品知らない
0079デフォルトの名無しさん
2006/11/27(月) 15:53:39Mathematicaの話をするならドトネトの話は関係ない
0080デフォルトの名無しさん
2006/11/27(月) 15:53:57MATLABのほうが断然使いやすいんだが
0081デフォルトの名無しさん
2006/11/27(月) 20:35:23他の言語とのインターフェースは知らなかったよ。
0082デフォルトの名無しさん
2006/11/27(月) 23:52:44特定の研究室に関わらないと知らないと思うぞ。
あと、高いしな。
FortranやC/C++のほうが知名度が高いだろう。
0083デフォルトの名無しさん
2006/11/29(水) 20:30:400084デフォルトの名無しさん
2006/11/29(水) 22:24:090085デフォルトの名無しさん
2006/11/29(水) 23:26:25CやJavaを使える生徒が減ったという理由でMATLABが必修になりつつある情報科があるんだよなw
まず教授がCやJavaを使えないって話かもしれんがw
0086デフォルトの名無しさん
2006/11/30(木) 01:18:03C#見て小躍りしたんだろうなぁ
>>84
うん。ガッ
0087デフォルトの名無しさん
2006/11/30(木) 01:43:40生徒は中高生のことを指す。
0088デフォルトの名無しさん
2006/11/30(木) 20:26:030089デフォルトの名無しさん
2006/12/01(金) 09:48:410090デフォルトの名無しさん
2006/12/02(土) 07:44:530091デフォルトの名無しさん
2006/12/02(土) 10:42:010092デフォルトの名無しさん
2006/12/02(土) 13:37:010093デフォルトの名無しさん
2006/12/04(月) 12:24:19ttp://download.java.net/jdk7/binaries/
ttp://www.java.net/download/jdk7/changes/jdk7-b03.html
Changelogの多さからして本格稼働した様子。
0094デフォルトの名無しさん
2006/12/10(日) 10:42:440095デフォルトの名無しさん
2006/12/10(日) 14:05:39さすがDelphi作者が作っただけはある。
Java 7からはプロパティやクロージャも検討されるから
2009年には若干C#より柔軟になる。
0096デフォルトの名無しさん
2006/12/10(日) 15:43:400097デフォルトの名無しさん
2006/12/10(日) 19:22:4912月も1/3過ぎちゃうぞ。
0098デフォルトの名無しさん
2006/12/10(日) 23:09:530099デフォルトの名無しさん
2006/12/11(月) 20:13:170100デフォルトの名無しさん
2006/12/11(月) 20:33:55てか5.0のupdate10をちらっとみたけどこっちのがマニアックに凄いな
selectが内部でepollで実装されてるってことはゲーム用途でもいけそう
0101デフォルトの名無しさん
2006/12/11(月) 21:36:15ランゲージパックなんていままでもなかったと思うが。
■ このスレッドは過去ログ倉庫に格納されています