[mustang] 次世代Javaの動向 3 [dolphin]

このエントリーをはてなブックマークに追加
11
前スレ
次世代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年秋にMustang Java SE 6がリリース予定
(現在ベータ2)
21:2006/09/03(日) 05:15:33
Mustangで追加される主なパッケージ(β2より)
java.text.spi
java.util.spi

追加される主なクラス
[java.awt]
Component.BaselineResizeBehavior
Desktop.Action
Desktop
Dialog.ModalExclusionType
Dialog.ModalityType
SplashScreen
SystemTray
TrayIcon.MessageType
TrayIcon

[java.awt.font]
LayoutPath

[java.io]
Console
IOError

[java.lang.instrument]
ClassLoaderConfigurationError

[java.lang.management]
LockInfo
MonitorInfo

以下続く
31:2006/09/03(日) 05:23:35
[java.net]
CookieManager
CookiePolicy
CookieStore
HttpCookie
IDN
InterfaceAddress

[java.security]
Policy.Parameters
PolicySpi
URIParameter

[java.text]
Normalizer.Form
Normalizer

[java.util]
AbstractMap.SimpleEntry
AbstractMap.SimpleImmutableEntry
ArrayDeque
Deque
NavigableMap
NavigableSet
ResourceBundle.Control
Service
ServiceConfigurationError

続く
41:2006/09/03(日) 05:26:43
[java.util.concurrent]
BlockingDeque
ConcurrentNavigableMap
ConcurrentSkipListMap
ConcurrentSkipListSet
LinkedBlockingDeque
RunnableFuture
RunnableScheduledFuture

[java.util.concurrent.locks]
AbstractOwnableSynchronizer
AbstractQueuedLongSynchronizer.ConditionObject
AbstractQueuedLongSynchronizer

[javax.net.ssl]
SSLParameters

[javax.security.auth.login ]
Configuration.Parameters
ConfigurationSpi

続く
51:2006/09/03(日) 05:29:53
[javax.swing ]
DefaultRowSorter.ModelWrapper
DefaultRowSorter
DropMode
JList.DropLocation
JTable.DropLocation
JTree.DropLocation
LayoutStyle.ComponentPlacement
LayoutStyle
RowFilter.ComparisonType
RowFilter.Entry
RowFilter
RowSorter.SortKey
RowSorter
SortOrder
SwingWorker.StateValue
SwingWorker
TransferHandler.DropLocation
TransferHandler.TransferInfo
61:2006/09/03(日) 05:31:16
[javax.swing.event ]
RowSorterEvent.Type
RowSorterEvent
RowSorterListener

[javax.swing.table]
TableRowSorter
TableStringConverter

[javax.swing.text ]
JTextComponent.DropLocation

以上新しいクラスでした
7デフォルトの名無しさん:2006/09/03(日) 06:50:52
MustangとかDolphinとかの呼称は廃止されただろ>>1
おそらくSunの連中もどっちが6だか7だか間違うんだよ
8デフォルトの名無しさん:2006/09/03(日) 14:07:59
>>2
spiってなんすか?就職試験ですか?
9デフォルトの名無しさん:2006/09/03(日) 14:09:36
>>3
クッキー機能が強化されるのか
10デフォルトの名無しさん:2006/09/03(日) 14:10:36
>>7
廃止された? ソースは?
111:2006/09/03(日) 14:49:48
既存クラスへの追加:

String にメソッド.isEmpty()が追加。

java.io.Fileは大幅に変更。toURLはdeprecatedになった
chmod系のメソッドとディスクスペース系のメソッドが多数追加されてるね
12デフォルトの名無しさん:2006/09/03(日) 14:54:44
>>11
isEmpty()か
今まで
str.equals("")を使って他のを
かわりにそれで済ませることができるって意味?

それとも
str.equals("")
だけでなく
str.equals(" ")

str.equals("               ") //(一応半角文字のつもり)
も含まれる?


13デフォルトの名無しさん:2006/09/03(日) 14:55:08
>>11
dfやduコマンドが使えるって化
14デフォルトの名無しさん:2006/09/03(日) 14:55:51
>>11
mkdir()のかわりmkdirs()で
mkdir -p /usr/local/a/b/g/a/a/a/a/a/a

っていう長い複数にネストされたディレクトリも一発で
確実に作れるのかな?
15デフォルトの名無しさん:2006/09/03(日) 15:34:11
>>11
chmodのファイルシステムに依存する部分の分離とか、どうやっているのか凄く興味深いぞ
16デフォルトの名無しさん:2006/09/03(日) 15:35:43
JDBCもバージョンが上がって大きくプログラミング方法が変わる模様

Design and performance improvements with JDBC 4.0
http://www.javaworld.com/javaworld/jw-05-2006/jw-0501-jdbc.html
17デフォルトの名無しさん:2006/09/03(日) 15:41:04
>>12
"".equals(str);
と書くだろ。

isEmptyはstring長がゼロのときにtrue、よって最初のやつだけに使えるね。
後は" ".trim().isEmpty();
とかすればよいでしょ。
18デフォルトの名無しさん:2006/09/03(日) 15:45:11
JDBCは結局ドライバー待ちだしなぁ
191:2006/09/03(日) 15:47:20
>>13
getFreeSpace, getTotalSpace, getUsableSpace

が使えます。
20デフォルトの名無しさん:2006/09/03(日) 15:58:21
211:2006/09/03(日) 16:09:56
あれ、snapshotのjavadoc見ると結構違う。。。
あとでまとめてみよ
221:2006/09/03(日) 16:32:48
>>2に追加してJDK 6 新パッケージ(rc-b98より)

javax.activation - activation framework
javax.annotation - 新しいannotation
javax.annotation.processing - apt?
javax.jws - web 用のannotation?
javax.jws.soap - soap用のannotation
javax.lang.model (subpackageは省略) よくわからん
javax.script - 文字通り
javax.tools - compilerとか
javax.xml.bind (subpackageは省略) - JAXB
javax.xml.crypto (subpackageは省略) - XML signature
javax.xml.soap - 文字通り
javax.xml.stream (subpackage 省略) stax?
javax.xml.transform.stax - 文字とおり
javax.xml.ws (subpackage 省略) - JAX-WS
23デフォルトの名無しさん:2006/09/03(日) 17:52:56
>>15
大した事はしてない。
例えば setExecutable も setReadable も、
Windows だと NTFS でも FAT でも何もしないはず。

戻り値の仕様は…… なんだこりゃ? って感じはするけど。
っつか、new File("no such file").setExecutable(true); は
IOException 吐いて死んで欲しいよーな気がするが。
24デフォルトの名無しさん:2006/09/03(日) 18:03:56
>>17
> >>12
> "".equals(str);
> と書くだろ。

それは個人の書き方の問題では?
どっちみち、isEmpty()がでるならそれすらも気にしなくて済むなら、
ええもんだよね。
25デフォルトの名無しさん:2006/09/03(日) 18:04:44
>>20
JDKという名前はまだ残ってるのか
もうすでに、Java SE 6, Java SE 7と呼ぶのかと思ったぞ
26デフォルトの名無しさん:2006/09/03(日) 18:06:00
>>22
JAFがJavaに標準で組み込まれるようになったのか?

これで、Java Mail APIを使うときに
いちいちactivation.jarを入れる手間を省けるのか
27デフォルトの名無しさん:2006/09/03(日) 20:27:45
>>24
リテラルを前に持ってきた方がイーンダヨ。
28デフォルトの名無しさん:2006/09/03(日) 20:48:59
>>24
strがnullの場合の話。
29デフォルトの名無しさん:2006/09/03(日) 21:05:04
>>28
nullである可能性がある場合の話、だな。
比較が一回で済むという。
30デフォルトの名無しさん:2006/09/04(月) 12:23:18
前スレだけど
>>970
>ストラウとラップは演算子のオーバーロードを
>誤った使い方をするとろくなことがないぞってことを言ってるんだよ。

その誤った使い方を具体的に示してよ。C++よく知らんし。
それとも偉い人がそういったから否定しているだけ?もしそうなら議論やめるよ。
31デフォルトの名無しさん:2006/09/04(月) 12:59:25
>>28
なるほど
32デフォルトの名無しさん:2006/09/04(月) 13:00:43
>>30
どっかに書いてなかった?
偉い人が言ったからではなく、
副作用ってことで。
複数の会社で演算子の定義が異なると
ソフトウェアを統合したときに衝突が起きるって奴
33デフォルトの名無しさん:2006/09/04(月) 13:03:24
複数の会社でなくても、複数の人間が書いた場合にも起こるな。
そもそも規約がしっかりしてりゃ、こんな事にはならんのだが。
34デフォルトの名無しさん:2006/09/04(月) 13:39:53
規約だけじゃまもりきれんよ。
妄信してるバカには。
だから、人間ではなく言語によって統制できるのはかなりいいことだ。



35デフォルトの名無しさん:2006/09/04(月) 16:06:15
>>30

お前と俺が同じプロジェクトに入っていたとして、
俺があるクラスAhoで+=をオーバーライドするとする。

public void += Object obj{
this.何かのフィールド.何かのメソッド(obj);
}

これが書いているときは非常に便利だとすると俺はこれを多用したコードを書く。

{
Aho aho = new Aho();
aho+=(3);
aho+=(4);
int baka = 0;
baka += aho.getId();
}

こんなコードのメンテやだろ。同じ+=でも複数の意味を持っているのはやはり読みにくい。
36デフォルトの名無しさん:2006/09/04(月) 16:17:29
>>29
それがいいとは限らないと思うんだけどなあ
確かに"".equals(strl)でstrがnullのときにfalseを返すことはAPI仕様で保証されてるけど
(正確にはObject#equalsの引数がnullのときにfalseを返すこと)
strがnullであるのが想定外である場合にNullPointerExceptionを握りつぶしてしまうという
危険性がある
37デフォルトの名無しさん:2006/09/04(月) 16:21:17
>>35 なんか言いたい事がわかった気がする。
1つのクラスでは便利でも、他のクラスと相対的に見てみると、
両者で同じ演算子をつかっても、その意味(効果)が違うとメンテは大変だしね。
38デフォルトの名無しさん:2006/09/04(月) 17:25:27
>>36
どこか他でNPE投げるからいいんじゃない?
どこかでstr使うんでしょ?

null を確認するために使うメソッドでもないしさ。

>>36がどういう状況を想定しているのか分からないが、そんなときはisEmptyが活用できるわけだ。
読みやすいといえば、読みやすいか。
39デフォルトの名無しさん:2006/09/04(月) 19:52:23
>>38
strはその後使われるとは限らない
単にチェックのためだけに使われる場合もある

> null を確認するために使うメソッドでもないしさ。

nullチェックと文字列の比較を同時に行うためのイディオムとして"".equals(str)
を使うのは問題だという話なのだが。つまり、
if(str != null || str.equals("")){
 doSomething();
}
の代わりに
if("".equals(str)){
 doSomething();
}
で済ませちゃうという状況を想定している
40デフォルトの名無しさん:2006/09/04(月) 20:36:50
>>39
いい加減に見苦しいな
ただ分ければいいだけだろうが
41デフォルトの名無しさん:2006/09/04(月) 21:05:59
>>39
てか次世代スレでそんなバグだらけのコード書いてはずかしくない?
42デフォルトの名無しさん:2006/09/04(月) 21:11:23
>>39
自分を擁護するためにコードでっち上げました、って感じがする
43デフォルトの名無しさん:2006/09/04(月) 21:57:37
こういうのって、普通スルーでしょ?
441:2006/09/04(月) 22:31:17
>>39
かわいそうに。でも if(str != null || str.equals("")) って意味があるか考えたほうがいい。

ぜんぜん関係ないが、top 25 のRFEで"struct" のサポートというのがあるが、
c#とかで見た事あるけど、詳しい人4行くらいで解説してほしいな。Javaとの相性を含めて。
45デフォルトの名無しさん:2006/09/04(月) 22:33:15
C++のclassとstructの違いは、デフォルトの可視性のみ。
C#のstructはスタック領域に確保される、値型となり、
classはヒープ領域に確保される参照型になる。
簡単にはこんなもの
46デフォルトの名無しさん:2006/09/04(月) 22:33:20
String action = request.getParameter("action");

if("edit".equals(action)) {
    doEditAction();
}

昔サーブレットを利用したWEBアプリ開発を行っている時、
このようなコード書いたものなんだが。。。
471:2006/09/04(月) 22:46:01
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4648386

このRFE, Jarに別のJarを含めてもちゃんと動くようにってヤツだけど、これはdolphinでやってもらいたいな。

たまにlog4jをバラして自分のjarに組み込んだりしてるので、
48デフォルトの名無しさん:2006/09/04(月) 22:51:26
>>44
top 25 のRFEで"struct" のサポートの内容は何を指しているのか知らないが、
以下、思ったことを適当に述べてみる。

structの利点:スタックに必ず割り付けられることが保障される。
structの欠点:継承できない。

エスケープ解析の導入で
オブジェクトをスタックに割り付けてもらえるようになったため、
structを使う利点は消えた。
従って、C++やC#で言うところのstructは不要。
49デフォルトの名無しさん:2006/09/04(月) 22:55:33
>>46
それは問題ない。
>>39は両方バグありであまりにひどすぎ。
50デフォルトの名無しさん:2006/09/04(月) 22:58:34
>>48
だから、C++のstructはC#のstructとは全く別物だってば。
C#のstructはC++では、
class Hoge {};
struct Piyo {};
Hoge hoge;
Piyo piyo;
こんな感じで、C#のclassはC++では
class Hoge {};
struct Piyo {};
Hoge* hoge = new Hoge;
Piyo* piyo = new Piyo;
こんな感じ。
511:2006/09/04(月) 23:18:23
RFEではCのStructのことを指している様子。

言語仕様にするかは別として、IO速くなるならとっとと組こんでもらいたいもんだ。
52デフォルトの名無しさん:2006/09/04(月) 23:21:58
>>44
そこの Evaluation に
> @Struct interface CK_SLOT_INFO {
>  @PaddedString(' ', "utf8", 64) String getSlotDescription();
>  @PaddedString(' ', "utf8", 32) String getManufacturerID();
>  @Unsigned(32) int getFlags();
>  CK_VERSION getHardwareVersion();
>  CK_VERSION getFirmwareVersion();
> }
みたいな 例示コードが載ってるよん。
内部的には java.nio.Buffer 使うとか?

スタックに割り付けられるオブジェクトが欲しいとか、
値型が欲しいとかなら別の RFE に vote しろって書いてあるね。

この RFE のスタンスが良くわからん。
struct 書いて、fread で読み込めれば便利、
(エンディアンやらエンコーディングを考慮しなければ)
ってのを実現するとかみたいなスタンスなんかな?
53デフォルトの名無しさん:2006/09/04(月) 23:23:41
structは型(値型)の定義・宣言でしょ。
確保した変数がスタックフレームと一緒に消滅してくれるとかは、
Cで滅多に使わないけどキーワード auto のことでしょ?
一緒にしてないかな。
54デフォルトの名無しさん:2006/09/04(月) 23:27:12
>>53
Sun の人は、そーゆー struct を議論するつもりはないみたいね。件の RFE では。
4820062 に vote した連中がどーゆーつもりかは知らんが。

> structは型(値型)の定義・宣言でしょ。
そーゆーのは 4213096 とかでやれって事らしい。
55デフォルトの名無しさん:2006/09/04(月) 23:38:33
今度はstruct?
またC#からパクるんですか
56デフォルトの名無しさん:2006/09/04(月) 23:39:45
>>55
完成度はJavaのほうが上になるから、安心しろw
57デフォルトの名無しさん:2006/09/04(月) 23:42:51
>>49
doSomething() の仕様を確認せずにバグありというお前の姿勢はあまりにもひどすぎ。
5849じゃないけど:2006/09/04(月) 23:50:27
>>57
ちゃんとコード読んでみたほうがいいよ。書いた本人の意図と条件式の内容
が食い違ってる。
59デフォルトの名無しさん:2006/09/04(月) 23:58:30
struct言語仕様に導入する必要ないじゃん。
もっと賢い仕組みになるわけだし。

エスケープ解析の具体的なやり方解説キボーン。
60デフォルトの名無しさん:2006/09/05(火) 00:13:00
>>50
正直、完全に忘れていた。
struct は 後方互換性のためだけにC++に残された無用のキーワードだったなorz

>>52
構造体を値渡しする時に、どのメンバがどのビットに対応しているか記述するものだな。

確かに、その機能があればネットワークプログラミングで
パケット内容をパースする時に非常に便利。

struct packet* p = (struct packet*)buf;
printf("%d, %d", p->id, p->tick);

上のコードのように、単なるビット列に構造体でキャストして
ビットに意味づけをするようなコードを簡単に記述可能にしたいのだろう。
61デフォルトの名無しさん:2006/09/05(火) 00:16:24
39だが、すまん。&&なのを||で書いてた。すぐに気づかんかったのは
確かにアホだった。反省している
6257:2006/09/05(火) 00:33:10
>>61
俺に恥を書かせるお前の態度はあまりにも酷すぎ(泣
6361:2006/09/05(火) 00:43:17
>>62
すまんかった。マジでうっかりしてた
馬鹿にされても仕方無いくらいアホなミスだ
64デフォルトの名無しさん:2006/09/05(火) 00:44:41
>>44
structか。下手に使うと重たくなるって@ITのC#の記事に書いてあったが、
どうなんだ?

値型扱いじゃあないってことか?
65デフォルトの名無しさん:2006/09/05(火) 00:45:12
>>47
FatJarやOneJarの立場がなくなるっていうのか?
66デフォルトの名無しさん:2006/09/05(火) 00:47:00
>>52
なんだ、アノテーションでinterfaceを縛り付けるだけか。
よかったよかった。C#のstructみたいなわけわかんないのでなくて
67デフォルトの名無しさん:2006/09/05(火) 07:15:44
>>52
インタフェースだけじゃどうにもならん気がするが支援APIは?
68デフォルトの名無しさん:2006/09/05(火) 15:46:18
>>65
便利そうだねfatjarとかって。
どっちかっていうとオプソのライブラリーとかで使って欲しいんだけどね。

あれを落として、これを落としてって大した手間じゃないけど精神的にうざい

maven使えば楽なんだろうけど
69デフォルトの名無しさん:2006/09/05(火) 19:32:43
>>68
EclipseにFatJarプラグインがあるぞ。
あれは楽。

Mavenにもプラグインがあったような気がする。
俺の場合は、Mavenでプロジェクト作ってライブラリ落として
Eclipseに反映させてプログラムができあがったら
Eclipse側でサクッとFatJarプラグインでまとめちゃうけどね。
70デフォルトの名無しさん:2006/09/05(火) 21:22:24
>>67
知らん。追加情報募集中って感じかね。あるなら、だけど。
>>52 は単に Evaluation に書いてあることをひっぱってきただけだし。
Dolphin に入れるか検討中とも書いてあるから、暫く待ってれば情報が出てくるかも。

支援API に関して良いアイデアがあるんなら件の RFE にコメントするなりしてみれば?
71デフォルトの名無しさん:2006/09/05(火) 21:48:06
>>67
http://javolution.org/api/javolution/io/Struct.html を参考にするとかしないとか。
>>52 とは結構違うような気もするけど。
72デフォルトの名無しさん:2006/09/05(火) 21:59:08
>>70
インタフェースでやるのは愚の骨頂だと思うな
インタフェースで宣言したメソッドの順番には何の強制力もない
structてのはstructureなわけだから構造を強制できないと意味がない
だから必要なら新文法の導入も止むなしかと思うね
731:2006/09/05(火) 22:00:04
JSR 305: Annotations for Software Defect Detection
がJSR Reviewに登場。

@NonNullとか@NIsとかについての仕様

annotation関係多いね。個人的にはいい方向だと思うが
741:2006/09/05(火) 22:07:49
>>69
オレのよう無知な人間がいっぱいいるからな。
標準化の意味もあると思うよ。

逆にfatjar使うデメリットってあんだろうか?
Tomcatで使うぶんには問題ないが、普通のクラスローダーだったら色々問題がでそうな気がするが。。。
75デフォルトの名無しさん:2006/09/05(火) 22:08:15
JavolutionはJava側でStructにセットした値が、DirectBufferとして
確保されたメモリ領域にきちんとアライメントも合わせてセットされるので、
JNI側でそのままメモリ領域を構造体としてネイティブライブラリに
渡せる。
JNI書いてる時は重宝する。
76デフォルトの名無しさん:2006/09/05(火) 22:14:53
>>72
> インタフェースで宣言したメソッドの順番には何の強制力もない
それは class でやっても全く同じ事だと思うけど、
Javolution では、それでやってるわけだし。
77デフォルトの名無しさん:2006/09/05(火) 22:19:29
>>71
概念的にインスタンス変数の定義順ってどうなのってのはあるけどな
struct予約語を導入してラップすれば問題ないか
78デフォルトの名無しさん:2006/09/05(火) 22:22:31
>>76
違うんじゃないか
インタフェースはメソッドだけどクラスはインスタンス変数だろ
ただクラスでも定義順にそこまでの思想的強制力があるのかっていう
一種の気持ち悪さはあるな
struct予約語の導入がすっきりすると思うけど
79デフォルトの名無しさん:2006/09/05(火) 22:22:46
>>77
たぶん >>52 方面では予約語は追加されんと思うぞ。

Category が java:classes_nio になってるし。
80デフォルトの名無しさん:2006/09/05(火) 22:31:00
>>79
nioとして検討されてるのか
確かになさそうだね
81デフォルトの名無しさん:2006/09/05(火) 22:32:50
>>78
> struct予約語の導入がすっきりすると思うけど
そーゆー意見は Sun の連中に聞こえる場所で言った方が良いと思うぞ。

このスレに居る連中に言ったところで何が変わるわけでも無し。
82デフォルトの名無しさん:2006/09/05(火) 22:43:28
主張を正確に伝えるまでの英語力ないしな
まあ誰か同じようなこと考えるだろ
83デフォルトの名無しさん:2006/09/06(水) 06:46:57
>>35
+=演算子が、適切にオーバーライドされているなら、その例でなんの問題もないと思うけどな。
例えば集合を表すSetというクラスがあって、
Set set1 = new Set();
Set set2 = new Set();
set1 += set2; // 和集合
と書けるのはとっても自然だと思う。

>同じ+=でも複数の意味を持っているのはやはり読みにくい。
読みにくいのは、スクリプト言語のように型がない言語の場合だけじゃないか?
C++やJavaのように型がある言語なら、演算子がオーバーライドされていても問題なく理解できる。
84デフォルトの名無しさん:2006/09/06(水) 07:48:13
>>83ちゃんと仕事してる?
85デフォルトの名無しさん:2006/09/06(水) 10:38:53
>>74
いまのところFatJarのデメリットはなさそう。

と、思ったが、固めるのに時間がかかるというデメリットがあった。
Jakarta Commonsのライブラリ使いまくっていると凄いことになる。
10以上もあるファイルを全部解凍してから圧縮し直すから。
1GHz、メモリ512MBのマシンでも1分くらいかかった。
圧縮されているCommonsのJarファイルのそれぞれのサイズにもよるけど。
テストするのに手間がかかるというオチがある。

Tomcatで、Jarにしたままでちゃんと動くかテストしろと上司が五月蠅いから。
さもなきゃclassのままにして、WEB-INF/classesにServletと一緒に放り込めだからな。
バカ上司と付き合うのはやってられないと思った。もうそこの会社は辞めたが。

86デフォルトの名無しさん:2006/09/06(水) 10:40:50
>>77
漏れは予約語にするんだったら>>52のサンプルコードのように
@Structアノテーション
だけで解決して欲しい派

C/C++/C#のstructと一緒だ!と勘違いする奴がいるから。
87デフォルトの名無しさん:2006/09/06(水) 12:35:33
>>83
コンパイラは理解できるだろうよ
じゃあ、結構大きめなクラスライブラリが有った場合とかドウスンノ?って事
全て一人で出来る程度の仕事してる連中には理解できない世界ってのが有るんだよ
88デフォルトの名無しさん:2006/09/06(水) 14:51:46
jar にせずに WEB-INF/classes に置いた方が起動が早い場合が多々ある。
89デフォルトの名無しさん:2006/09/06(水) 15:32:58
>>83
まだ伝わってないようだな。
別に演算子オーバーロードすべてを否定しているわけじゃない。
現行のjavaだってStringで使ってるわけだし。
ユーザーが定義できるってのが嫌。

Collectionsの+=はあまり誤解がなさそうなので良いと思うが、
それよりはnew ArrayList<String>(String... strs)の方が欲しいな。
90デフォルトの名無しさん:2006/09/06(水) 15:42:23
>>85
なるほど。さんきゅ。
全部バラしてんだったら確かに重い処理だわな。

>>88
そうかもね。

ちょっとそれるが、何でjavaはバイナリーファイルがクラス単位なんだろうか。
inner classでも自動的に新しいバイナリーファイルが作られるじゃん。
すごい無駄だと昔から思ってんだけど。
91デフォルトの名無しさん:2006/09/06(水) 15:48:23
同じパッケージに属するクラスで良いので、
1つのファイルに複数のpublicクラスを記述できるようにしてほしい。

クラスファイルレベルでは、互換性の問題も発生しないだろうし
92デフォルトの名無しさん:2006/09/06(水) 16:07:55
>>90そう考え始めるのは、Javaに向いてなかったと言う事でしょう
93デフォルトの名無しさん:2006/09/06(水) 16:08:51
>>91
static inner classで良くない?
バイナリーは結局いっぱいできて汚いけど。
9490:2006/09/06(水) 16:11:18
>>92
そうなん?C#に移行するか。。。
inner class の$が入ったバイナリーは明らかに不必要かと思うんだけど。
95デフォルトの名無しさん:2006/09/06(水) 16:45:18
>>94
各言語で、それぞれに目指しているところが微妙に違うのでしょう。
やっぱりC#に移行してもMS案件・Windows用で特定用途向けのツールばっかりになってしまうのでしょう。
96デフォルトの名無しさん:2006/09/06(水) 17:34:40
>>90
俺は逆に一つのファイルに複数のクラスを書くのが昔から許せなくて、
もうJava以外の言語にはあんまり戻りたくない。
「あのクラスはどのファイルの中で定義してあった?」
なんて探し回るのは不毛だ。
97903:2006/09/06(水) 20:27:39
>>96

ソースじゃなくてバイナリーの事をいってんだよ。
.classのほうね。.javaに対して.classがいっぱいできるじゃん。
98デフォルトの名無しさん:2006/09/06(水) 21:21:51
>>90
そりゃあんた、Javaはクラス単位でプログラムのロードをするからでしょ。
内部クラスがあったって、もし実行時に使用されないなら、ロードしない。
そのためにファイルが別れてる。
99デフォルトの名無しさん:2006/09/06(水) 21:23:12
ところでFatJarって全Jarを展開して一つにまとめるんだったら、
実行ファイル用jarとして、warみたいに複数のjarをjarファイルに
格納する標準フォーマットを決めればいいだけなんじゃないかと
思うんだが。
100デフォルトの名無しさん:2006/09/06(水) 21:30:56
確かFatJarって展開して1つにまとめるものと違った気がするんだが…。
バイナリに手を加えるのがライセンスで禁止されてるものとかもあるから、
クラスローダーに手を入れてあるってどこかで読んだ気がするんだが。

まぁ、勘違いかもしれんから気になる奴は自分で調べてくれ。
101デフォルトの名無しさん:2006/09/06(水) 22:49:17
>>98

別にファイル分かれてる必要ないじゃん。
ファイルの中で必要な部分だけロードできる仕組みがあればよいだけ

jarだってファイルは一つだぜ、中を見て必要なクラスをロードしてるんだろ
102デフォルトの名無しさん:2006/09/06(水) 22:52:47
>>99

そもそも議論の発端は >>47 だ
これね 
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4648386
103デフォルトの名無しさん:2006/09/06(水) 22:55:26
>>100

それone-jarってやつじゃない?
104デフォルトの名無しさん:2006/09/06(水) 23:28:13
6.0の一般公開マダー(ry
105デフォルトの名無しさん:2006/09/06(水) 23:32:21
b99まだー?
bいくつまで行くんだろ?
106デフォルトの名無しさん:2006/09/07(木) 00:34:11
>>83
おい、オーバーライドか? オーバーロードの間違いだろう。

演算子のオーバーロードだけはやめとけ。
どうしても使いたければ、外部のXML言語やJakarta Velocityなどで
サポートする形のほうが安全だぞ。
107デフォルトの名無しさん:2006/09/07(木) 00:36:26
>>88
初回起動だけとか、だったりしたらねえ。

つか、Servletの場合は、WARが主流なんだけどね。
WARを置くと勝手に回答されてそのなかにJARが
入ってはいるけれども。
Appletに直接使わせる場合は、JARのほうが速いしねえ。

そもそも、速くなるケースがある、といっても実用性を
考えるとそういうのはあてにならんよ。
108デフォルトの名無しさん:2006/09/07(木) 00:38:00
>>91
そんなちっちゃな要求、メリットを感じないな。

そういうちっちゃな夢はC#でも使ってなさいって感じなんだが。
109デフォルトの名無しさん:2006/09/07(木) 00:39:03
>>96
そうそう、
オブジェクト指向設計の原則 「分割統治せよ」
ってのがあるからね。

詳しくは『アジャイルソフトウェア開発の奥義』
にて
110デフォルトの名無しさん:2006/09/07(木) 00:39:25
>>97
classが沢山できてもJarで固めればいいさ。
111デフォルトの名無しさん:2006/09/07(木) 00:49:29
>>103
OneJarはFatJarから派生したやつではないかな?
112デフォルトの名無しさん:2006/09/07(木) 02:35:09
>>109
その本は見てないけど、別にファイルとクラスの問題じゃないだろ。
IDE使ってればそんな事はどうーでもいい。

むしろ新しい事を始めるときはstatic inner classを好んで使うよ。
ソースを書く時点でファイルを意識しなければならないのは苦痛だよ。
そんなのオブジェクト指向とは何も関係ない。
113デフォルトの名無しさん:2006/09/07(木) 02:49:25
>>112
IDEつかってもどうでもよかないよ。

そもそもIDEが壊れたときどうするんだと。
セットアップにも時間がかかるし。

114デフォルトの名無しさん:2006/09/07(木) 02:54:18
スルー?
115デフォルトの名無しさん:2006/09/07(木) 02:55:58
>>112
インナークラスから始めるという発想が
どうもみすぼらしい。

ファイルを意識だって? それこそIDEをつかっていれば
意識しなくて済むだろう。
Eclipseのように新しいクラスを作りたければ、
[新規]-[クラス]で自動的にファイルができてclass宣言も
記述されるので有れば苦痛でないだろう。分割もリファクタリングで済む。
にもかかわらずいちいちpartialを使う?
それこそそんなことはどうーでもいい。

お前はおそらくpackageの仕様をC#のnamespaceの
ように変えて欲しいというクチだろ。

AspectJでどにか済ませろ。
116デフォルトの名無しさん:2006/09/07(木) 03:22:10
>>115
staticのinner classは便利だ。
eclipseの糞うざいウィザードがないからね。
三つ四つさくさくクラスを作れる。
やっぱいらないかー、とか思ったらコメントアウト。
やっぱ必要だ、とか思ったらコメントをはずせば復活。
めちゃ楽。

C#は知らない。
partial? 何を指してんだ?
117デフォルトの名無しさん:2006/09/07(木) 03:50:37
クラスごとにファイルをわけた場合のデメリットは
複数のソースを比較しながらコードを書くのがめんどくさい
という点につきる気がする。

116 のいう
> eclipseの糞うざいウィザードがないからね。
はウィザードが立ち上がらない設定にすればいいからどうでもいいとして
emacs みたいにいくつものペインに分割して
それぞれのソースが表示できればいいんでない?
Eclipse プラグインにあったかは知らないが 。
118デフォルトの名無しさん:2006/09/07(木) 04:08:22
>複数のソースを比較しながらコードを書く
どんな状況だ?

>ウィザードが立ち上がらない設定にすればいい
そうしたらクラスを簡単に作成、変更できるのかい?
簡易なプロトタイプ的なモノを書きたいとき、って状況だぜ。
119デフォルトの名無しさん:2006/09/07(木) 04:15:53
以下のような感じで、めっちゃ楽。
プロトタイプだからInterfaceでの定義もよく変わる、一つのファイルだからメニューからリファクター、とか選ばずとも手で素早く修正できる。
仕様に耐えられそうだったら、一人前のクラスとしてリファクターすればよい。
こんなんでいちいち新しいクラスを箇々に作るのは時間のむだ。

public class Base{

static interface IntA{//省略
}

public static class TestA implements IntA{
//省略
}

public static class TestB{
//省略
}
}
120デフォルトの名無しさん:2006/09/07(木) 04:26:40
>emacs みたいにいくつものペインに分割して
>それぞれのソースが表示できればいいんでない?
eclipse使った事ある?フリーだよ。
121117:2006/09/07(木) 04:29:56
>>118
> >複数のソースを比較しながらコードを書く
> どんな状況だ?

比較というか複数のソースを横断的に(タブ切り替えでなく同時に見ながら)
コードを書きたいことは普通にあるだろ。
そういう状況がないというのであればそっちの方が信じられない。
122デフォルトの名無しさん:2006/09/07(木) 04:30:35
>>120
お前こそ emacs 使ったことあるのか?
123デフォルトの名無しさん:2006/09/07(木) 04:37:39
>>121
SQLのスキーマとかクラスダイアグラムだったら分かる。Javadocもあるだろう。
ソースを見ながら?どんなコード書いてるんだ?


emacsは使わないが、eclipseので複数のペインで表示させるのと大きく違うのかよ?

あれJavaの人だよね?いまさらCの話でしたー、とか勘弁してよ
124デフォルトの名無しさん:2006/09/07(木) 05:27:24
>>121
もしかしてEclipseでJavaエディタの部分を上下2分割できるの知らないの?
試しにソースのタグをエディタ内でドラッグさせてごらん
125デフォルトの名無しさん:2006/09/07(木) 06:06:15
>>106
オーバーロードじゃなくて、オーバーライドであってるよね。
と思ったけど、型がある言語ならオーバーロードもできるのか。
>演算子のオーバーロードだけはやめとけ。
>どうしても使いたければ、外部のXML言語やJakarta Velocityなどで
>サポートする形のほうが安全だぞ。
このへん意味不明

>>87
>じゃあ、結構大きめなクラスライブラリが有った場合とかドウスンノ?って事
大きかろうが別に関係ないよ。演算子の定義もメソッドの定義も別にかわらないから。
add(arg)のかわりに+(arg)を、sub(arg)のかわりに-(arg)を定義して、
obj1.add(obj2)のかわりにobj1+obj2を使うだけ。
これで「混乱する」とか「わかりにくい」とかいうやつは、演算子でなくてメソッドを使っても同じだろ。

もしかして、intやcharの演算子も再定義することを考えているのかなあ。それは禁止すべきだけど。primitive typeにはメソッドが定義できないのと同じように。

>>89
>ユーザーが定義できるってのが嫌。
だから、なぜ?「混乱するから」という理由なら、上に書いたように、混乱はしないから。
126デフォルトの名無しさん:2006/09/07(木) 07:34:39
>>88
> jar にせずに WEB-INF/classes に置いた方が起動が早い場合が多々ある。

クラスローダーがclassファイル探すためのI/Oの回数がJARだと1回、バラだと
classファイルの数だけ発生するはずだが。
起動時に全部ロードするわけではないから早く感じるのかもしれんが、トータルで考えると
JARの方が早いんじゃね?
127デフォルトの名無しさん:2006/09/07(木) 08:01:52
>>126
んなわけない
バラだって1回で探せる
なんのためにパッケージ名があるか考えよう
Jarは展開ロスもあるしその分遅いだろ
128デフォルトの名無しさん:2006/09/07(木) 08:12:18
>>125
> オーバーロードじゃなくて、オーバーライドであってるよね。
普通は operator overload、演算子の多重定義だな。
演算子の上書きって言われると、primitive型の演算子が再定義できるようになりそうな……
129デフォルトの名無しさん:2006/09/07(木) 09:03:48
>>125
演算子オーバーロードが欲しいなら Bug ID: 4905919 に vote よろしく。
130デフォルトの名無しさん:2006/09/07(木) 11:59:01
>>125
> >>87
> >じゃあ、結構大きめなクラスライブラリが有った場合とかドウスンノ?って事
> 大きかろうが別に関係ないよ。演算子の定義もメソッドの定義も別にかわらないから。
> add(arg)のかわりに+(arg)を、sub(arg)のかわりに-(arg)を定義して、
> obj1.add(obj2)のかわりにobj1+obj2を使うだけ。
> これで「混乱する」とか「わかりにくい」とかいうやつは、演算子でなくてメソッドを使っても同じだろ。

いや、一見それだけなら問題なさそうに見えるが、それをBigDecimal, BigIntegerで定義すると、

> もしかして、intやcharの演算子も再定義することを考えているのかなあ。

のように欲張る奴が出てくる。さらに、Numberクラスを継承したらどんなクラスであっても
演算子を再定義できるようにすべきだと主張する輩も出てくる。
中途半端に制限するのはおかしいと言いだしてな。
そして四則演算関係だけじゃ足りないとか言いだしてくるぞ。
MathContextコンストラクタの引数に指定するprecisionも演算子で設定できるようにすべきだと
言いだす奴がでてくるかもしれない。

するととたんにC++やC#の二の舞となるわけだ。

あとはストラウストラップが指摘した問題だな。
131デフォルトの名無しさん:2006/09/07(木) 12:00:20
>>127
初回だけ展開して
2回目以降は展開しないという仕組みには
なってないのかね?
132デフォルトの名無しさん:2006/09/07(木) 16:35:02
演算子オーバーロードは、技術的には>>125が言っているように本質的にはメソッド呼び出しと変わらない
問題なのは、+,-などの演算子は通常のメソッドに比べてより強い制約を満たすことが期待されているにも関わらず
(例えば、+なら可換であるとか)、その制約を満たさないような形で演算子をオーバーロードする奴がC++で多発したこと。
要は「メソッド名(演算子名)はそれが行うことを表す名前をつけましょう」というだけのお話。
演算子オーバーロードそれ自体が悪いわけじゃなく、演算子オーバーロードの正しい使い方についてあまり啓蒙されなかった
のが真の原因
133デフォルトの名無しさん:2006/09/07(木) 18:32:43

http://d.hatena.ne.jp/mb2sync/searchdiary?word=%2a%5bBoost%2eXpressive%5d
C++ の spirit フレームワークや、正規表現の Xpressive ライブラリなんかは極端としても

「 y = x.add( a );」

という書式があったときに、 add メソッドが、+= の役割なのか、+ の役割を示すのか
一瞬迷うことがあるから、限定された演算子オーバーロードでいいのであって欲しいとは思う。
134デフォルトの名無しさん:2006/09/07(木) 18:42:54
便利でもないのに、見た目だけ追求しているように聞こえるけど、
そんなに欲しいのかね・・・・
その熱意が伝わってないじゃないか?
135デフォルトの名無しさん:2006/09/07(木) 19:01:21
>>133
その+が+=の様に実装するデコ助と仕事する羽目になったらどうする?
13661:2006/09/07(木) 19:19:33
>>135
それはいくらなんでも論外
そんなことする奴は、普通のメソッドであっても変な名前をつけて足引っ張るだけだろう
一応言っておくと、俺は演算子オーバーロードについてはあってもいいけど
別にそれほど切実に欲しいというわけじゃない派
137デフォルトの名無しさん:2006/09/07(木) 21:21:02
>>116
partialはまさに、おまいが求めている長〜いひとつのクラスを
複数のファイルに分割する機能だ。
partialキーワードを使ってどうにかするって記憶がある。
138デフォルトの名無しさん:2006/09/07(木) 21:21:57
おれはJavaソースファイルにあるクラス宣言の分割よりも
>>124のようにEclipseを使って
一つのJavaソースファイルで複数のエディタを分割起動
できるほうがいい。
139デフォルトの名無しさん:2006/09/07(木) 21:23:18
>>89
> Collectionsの+=はあまり誤解がなさそうなので良いと思うが、
> それよりはnew ArrayList<String>(String... strs)の方が欲しいな。

とりあえず、asList()で解決だ。
つかね、そういうの作りたければArrayListを継承すればいいんじゃないか?
140デフォルトの名無しさん:2006/09/07(木) 21:29:43
>>89
> Collectionsの+=はあまり誤解がなさそうなので良いと思うが、

CollectionsクラスじゃなくてCollectionインタフェースだろ。
ってつっこみはいいとして

これはどうもね。
不変クラスであるStringの+=が好まれていない件を思い出す。
可変クラスのメソッドStringBuilder#append(String)のほうが高速だし。
そういう実装になったら本末転倒。
まさか、と現存のMutable(可変)なCollectionに加えて
Immutable(不変)なCollectionをつくるわけじゃあるまい。

そもそも、MutableなCollectionに対して

str = str.concat("追加文字列"); // str += "追加文字列"とほぼ同義だが(ry
なんてするの馬鹿馬鹿しい。
sb.append("追加文字列");
のほうがいいし、

この二つのメソッドを演算子オーバーロードした場合、どう区別つけるんだ?
141デフォルトの名無しさん:2006/09/07(木) 21:31:26
>>103
だから、OneJarはFatJarから派生した。
しかし、あれライセンスが面倒だった気がする。
だから漏れはFatJarを使ってる。
142デフォルトの名無しさん:2006/09/07(木) 21:32:21
>>117
> > eclipseの糞うざいウィザードがないからね。
> はウィザードが立ち上がらない設定にすればいいからどうでもいいとして
> emacs みたいにいくつものペインに分割して
> それぞれのソースが表示できればいいんでない?
> Eclipse プラグインにあったかは知らないが 。

今はプラグインがなくてもすでにEclipseにそれが実装されている
143デフォルトの名無しさん:2006/09/07(木) 21:33:25
>>118
> 複数のソースを比較しながらコードを書く
> どんな状況だ?

おれは思うに、彼には非常に効率の悪い
複数のいわゆるスパゲティコードを読む羽目に
なっているんだと思うよ。
設計がしっかりしていれば、
そんなまどろっこしいことしなくて済むのにねえ。
144デフォルトの名無しさん:2006/09/07(木) 21:34:43
>>119
> 以下のような感じで、めっちゃ楽。

何に対して以上のような形といってるのかわからん。
一つ上のレスは関係なさそうだし。

> プロトタイプだからInterfaceでの定義もよく変わる、一つのファイルだからメニューからリファクター、とか選ばずとも手で素早く修正できる。
> 仕様に耐えられそうだったら、一人前のクラスとしてリファクターすればよい。
> こんなんでいちいち新しいクラスを箇々に作るのは時間のむだ。
> public class Base{
> static interface IntA{//省略
> }
> public static class TestA implements IntA{
> //省略
> }
> public static class TestB{
> //省略
> }
> }
145デフォルトの名無しさん:2006/09/07(木) 21:35:31
>>121
> >>118
> > >複数のソースを比較しながらコードを書く
> > どんな状況だ?
> 比較というか複数のソースを横断的に(タブ切り替えでなく同時に見ながら)
> コードを書きたいことは普通にあるだろ。
> そういう状況がないというのであればそっちの方が信じられない。

お前が未だに30年前のコーディングスタイルに
填っているプロジェクトの考え方に依存していることが信じられないよ。
146デフォルトの名無しさん:2006/09/07(木) 21:35:51
>>124
まさにそれだ
147デフォルトの名無しさん:2006/09/07(木) 21:36:52
>>127
それをやって
どれくらいのパフォーマンスが期待されるんだ?
マシンスペックが高けりゃ雀の涙程度だったら、
意味無さ過ぎ。
148デフォルトの名無しさん:2006/09/07(木) 21:37:13
>>127
それに一旦展開したらローカルに保存されるだろ。
Tomcatにしてもworkあたりにさ
149デフォルトの名無しさん:2006/09/07(木) 21:43:02
>>133
部分的に俺の言いたいことと一致する。
しかしやっぱり危険なものだな。

たとえばある奴が行列クラスを作ったとき、
ある奴は転置を意味する演算子に'をつかう。
他のある奴が作った行列クラスでは'ではなく`を使ってたりする。

それだけでなく、こういうケースも
ある奴は、*を行列型どうしの乗算としてオーバーロードする。
だが、ほかのある奴は*を行ベクトル、列ベクトルどうしの内積としてオーバーロードする。
ほかのある奴は、ふたつの行列の個々の要素どうしを掛け合わせた行列型を返すようにオーバーロードする。

そんな演算子がごっちゃになったコードにまみれたら・・・・

大変なこった。

150デフォルトの名無しさん:2006/09/07(木) 21:44:02
>>136
だったら、ばっさり切り捨てた方がいいな。

竹島って島は大したことがない島だから
日韓の争いを避けるために爆破しちまったほうがええやって感じにな。
151デフォルトの名無しさん:2006/09/07(木) 21:54:57
>>150
スレ違いを承知で言うがな、おまえそれで領海がどれだけ減るか解って言ってるんだろうな?
152デフォルトの名無しさん:2006/09/07(木) 21:56:22
>>147
さあなw
少なくともパフォーマンスが少し改善されるってことは
頭の片隅に入れておいていいんじゃないか
153デフォルトの名無しさん:2006/09/07(木) 21:57:05
竹島は日本固有の領土
154デフォルトの名無しさん:2006/09/07(木) 22:00:39
竹島は明治時代からの日本の領土
155デフォルトの名無しさん:2006/09/07(木) 22:27:49
>>151
爆破したあとで海だけとればいい。
韓国のやってることは、
あんなちっこい島に無理矢理人を住まわせて
環境破壊して連絡船まで作ってるっていう赤字で
無駄で間抜けなことをやってまで
アホで必死すぎるからなw


156デフォルトの名無しさん:2006/09/07(木) 22:29:35
>>152
それはまるで、C言語厨がC++を使うときに、
クラスを作ると遅くなるとわめくのとかわらないと思う。
STL使ったらC++使う意味がないとか意味不明なこと漏らす連中とか
157デフォルトの名無しさん:2006/09/07(木) 23:12:20
>>149
まず、転置に'や`を使うのは不適切なケースだろう。だが、それは演算子オーバーロード
特有のものではない。例えば、メソッドだって、ある奴はtransposeという名前をつけるだろうが、
別の奴はtransとつけるかもしれないし、さらに面倒くさがりのやつはtrやtという名前をつけるかもしれない
また、乗算に関しても、メソッドに置き換えても全く同じことが成り立つ。以下、>>149の後半部分
に関して、*をmultiplyとして置換したもの。あと、「オーバーロード」だとメソッド定義の場合は不自然なので、
「定義」と置換した。

> ある奴は、multiplyを行列型どうしの乗算として定義する。
> だが、ほかのある奴はmultiplyを行ベクトル、列ベクトルどうしの内積として定義する。
> ほかのある奴は、ふたつの行列の個々の要素どうしを掛け合わせた行列型を返すように定義する。

と、このように全く同じことになる。もちろん、multiplyHogeHogeと修飾することで意味を明確にする
ことはできるだろうが、ここではそのようなことがプログラマに期待できない状況の話をしている
はずなので、無意味
158デフォルトの名無しさん:2006/09/07(木) 23:19:57
>>127
Jarの場合はメモリ中で展開するから。
あと、セキュリティマネージャーを使うような設定にしてると、バラの場合は
classファイルをロードするたびに・・・
159デフォルトの名無しさん:2006/09/08(金) 00:15:03
>>119
お前もしかしてCVS使ってない?
ファイル作ってコミットしたら削除するのに手間が掛かるから抵抗あるよな。

Subversion使えば楽だぞ。ディレクトリ移動や削除に何の抵抗もない。

もしSubversion使っててファイル作成にそれだけ抵抗あるなら、愚かとしか言いようがない。
160デフォルトの名無しさん:2006/09/08(金) 05:18:12
>>130
否定したいがために無理な話をでっちあげるのはよせ。
「Classに対しては再定義できる、primitiveに対してはできない」というルールだけでOK。
primitiveでの演算子再定義なんか、必要あるわけねーだろ。

>するととたんにC++やC#の二の舞となるわけだ。
>あとはストラウストラップが指摘した問題だな。
だからその問題とやらを具体的に挙げろって何度もいってんだろ。挙げられないということは、おまえだって知らないんじゃねーか。

>>132
>(例えば、+なら可換であるとか)
なんでそんな必要があるの?それは勝手な思い込みじゃね?
例えばRubyのStringクラスでの * 演算子はまったく可換じゃないけど、だれも文句を言わないし、問題になったこともない。
可換であることを期待される場合とそうでない場合があるというだけだと思う。

>演算子オーバーロードそれ自体が悪いわけじゃなく、演算子オーバーロードの正しい使い方についてあまり啓蒙されなかったのが真の原因
なるほど。できれば正しくない使い方をもっと紹介してくれるとうれしい。
161デフォルトの名無しさん:2006/09/08(金) 05:28:55
>>140
>この二つのメソッドを演算子オーバーロードした場合、どう区別つけるんだ?
何をどう区別したいのかが読み取れないけど、strとsbを区別したいなら、変数の型をみればいい。
メソッドの動作(appendのように破壊的かconcatのように非破壊的か)を区別したいなら、ドキュメントを読めばいいし、これはメソッドでも同じ問題が起こりうることであり、演算子固有の問題ではない。
メソッド名(concatとappend)を区別したいなら、
* C++やRubyのように演算子を直接定義する言語なら、メソッド名は関係なので区別する必要はない。
* Pythonのように演算子と対応するメソッドが一意に決まっている言語なら、ひとつの演算子に複数のメソッドが対応することはないので、区別する必要はない。

>>157
>それは演算子オーバーロード特有のものではない。
禿堂。メソッドでも起こる問題を、さも演算子オーバーロード特有の問題のように話すバカ大杉。
これだから、Java屋はJavaにない機能はすべて(ry
162デフォルトの名無しさん:2006/09/08(金) 05:59:01
http://journal.mycom.co.jp/articles/2005/11/10/javaone1/
去年の JavaOne Tokyo の話によれば演算子オーバーロードが
dolphin に入るのは かなり望み薄だし、次世代Javaの動向と関係がない
演算子オーバーロード関連は他所のスレでやって欲しいぞ。

> これだから、Java屋はJavaにない機能はすべて(ry
最終的に これが言いたいだけの奴も居るみたいだし。
163157:2006/09/08(金) 08:19:25
>>160
> 例えばRubyのStringクラスでの * 演算子はまったく可換じゃないけど、だれも文句を言わないし

* (積)は元々数学的に引数が可換な演算子じゃない。行列積とか考えてみればわかる。
+演算子について言っているのなら正しいけど、(Rubyの)Stringは最初期の頃からある
組み込みライブラリだから、変な風に定義されちゃっても大多数は普通は特に考えずに受け入れる。
あと、歴史的事情で、Stringの連結に+を使う言語が既に一般的だったというのもあるだろう。
ちなみに、「文字列連結演算子は可換でないのに+なのは変だ。*であるべきだ。」という主張は時々聞く。
少数派だけど。

> なるほど。できれば正しくない使い方をもっと紹介してくれるとうれしい。

正しく無い使い方なんて山ほどあるだろうけど(変なメソッド名の付け方がいくらでもあるのと
一緒)、例えば、+ - * /演算子で、引数を破壊的に変更するのは、おそらく正しく無い使い方だろう。
164デフォルトの名無しさん:2006/09/08(金) 14:10:15
>>162
なんだよ、返答につまったら逃げるのかよ。
それはいいからストラウストラップが指摘した問題とやらを紹介してくれよ。
反対派の根拠がそれなんだろ?ちゃんと紹介しないからしょぼい理由ばっかりなんだよ。

>>163
>正しく無い使い方なんて山ほどあるだろうけど(変なメソッド名の付け方がいくらでもあるのと
>一緒)、例えば、+ - * /演算子で、引数を破壊的に変更するのは、おそらく正しく無い使い方だろう。
はげどう。あと、+= と << を混同しているケースもある。Rubyの場合だけど。
165デフォルトの名無しさん:2006/09/08(金) 22:12:02
>>157
演算子オーバーロードで冗長な分かりやすい”演算子”をつける方法を教えてくれないか?

これだから石頭は困る
166157:2006/09/09(土) 00:14:45
>>165
何が言いたいのかよくわからん

> もちろん、multiplyHogeHogeと修飾することで意味を明確にする
> ことはできるだろうが、ここではそのようなことがプログラマに期待できない状況の話をしている
> はずなので、無意味

と書いたのは
multiplyHogeHogeなどのように冗長に書くことで、メソッド名では(通常の演算子と違って)
意味を明確にすることができるが、ここで論じているのはプログラマがそのような適切な
名前付けをしてくれることが期待できない場合の話なのだから、そのことについて論じるのは
無意味だと言いたかったのだが。
ちなみに、Haskellでは普通の関数でも、``で囲むことで、1 `add` 2のように中置演算子として
扱うことができる。同じような仕組みをJavaでも使うことで、「演算子」であっても、冗長な
名前を付けることができるだろう。
167デフォルトの名無しさん:2006/09/09(土) 00:39:07
>>164
どうでもいいが反対「派」とかいってひとまとめにひっくるめるのは止めろ。
おまえも賛成「派」なんて呼ばれたいのか。

おれはどっちかというと反対だが、別にC++がどうこうじゃなくて、なんでも
かんでも文法を拡張することに慎重でありたいだけ。
例えばコレクションもいずれは配列のようにアクセスできるようになる日が
くるかもしれんが、言語仕様を変更して採用するかどうかについては、
ぎりぎりまで十分に検討してもらいたいと思う。

言語仕様をどんどん変更されたら、言語としての安定性が疑われる。
PHPなんかひどいだろ。
Javaは言語仕様は小さく、ライブラリは豊かに、でいいと思うんだがね。

その上でもし仕様変更がなされたら、おれは文句も言わずに喜んで使うよ。
むしろ「楽になった」と喜んで喧伝するかもしれん。
それがなんか悪いか? 散々慎重なこといっといてこれだからJava厨は、と
言われてもしらね。変更に慎重になることと、慎重に検討した結果導入された
ものを使うことは別に衝突しない話だと思うがね。

そんなわけでオーバーロードが導入されようがされまいが、こんなもめるという
ことは、まだ十分に検討されてない事柄だということだけはわかった。引き続き
数年かけて検討すればいいよ。
Java 7の話に戻してくれんかね?
168デフォルトの名無しさん:2006/09/09(土) 02:00:42
>>167
よくできました!
この感想文には100点を差し上げましょう!
169デフォルトの名無しさん:2006/09/09(土) 06:33:38
>>165
なんだ、[]や+の意味がわからないのか。そういうレベルとは知らなかった。議論の前提を間違ってた。正直済まんかった。

>>167
開き直り乙。おまえのいいたいことはわかったから、ストラウストラップが指摘した問題をよろしく。
それから議論の発端をちゃんと読んでね。

>>168
開き直り乙。仲間ができてよかったね。
170デフォルトの名無しさん:2006/09/09(土) 07:55:37
で、>>169はどれを書いたの?
171デフォルトの名無しさん:2006/09/09(土) 09:06:19
>Javaは言語仕様は小さく、ライブラリは豊かに、でいいと思うんだがね。
もはや言語仕様小さくないだろう。Java7になればもっとひどくなるだろうし。
172デフォルトの名無しさん:2006/09/09(土) 11:14:05
>>167
> おまえも賛成「派」なんて呼ばれたいのか。
別にかまわないけど。何が問題なの?

> それがなんか悪いか? 散々慎重なこといっといてこれだからJava厨は、と
> 言われてもしらね。変更に慎重になることと、慎重に検討した結果導入された
> ものを使うことは別に衝突しない話だと思うがね。
悪いね。「変更に慎重」なことと、理由をこじつけて否定することはまったく別のこと。
今までの反対派の発言をみてみろ、まず「演算子の再定義は悪」という結論があって、そのために無理な理由をつけて反対しているだけじゃん。
これのどこが「変更に慎重」なんだよ。そう言いたいんだったらそれらしい議論しろっつーの。
おまえが「ストラウストラップがこういう問題を指摘してるんだけど、それはどうしたらいいと思う?」とでも書けば「変更に慎重」ということにもなるよ。
しかしおまえらは、はなから「Javaは正しい」「演算子オーバーロードは悪」という結論ありきで話してるじゃん。
そして、そのための理由を無理にこじつけて、それらを論破されて、それを今になって「変更に慎重」とか、もうアホかと。

> 言語仕様をどんどん変更されたら、言語としての安定性が疑われる。
> PHPなんかひどいだろ。
言語仕様の安定性と、ライブラリや実装の安定性を混同している。
PHPで安定しないのは後者。前者は安定している(PHPの仕様は4→5で大きく拡張されたが、それはJavaでも同じ)。
実装が不安定だからといって、勝手に言語仕様まで同じにするな。

>>168
この感想文には「まけおしみ」というタイトルをつけましょう。
173デフォルトの名無しさん:2006/09/09(土) 12:09:33
>>172
> 理由をこじつけて否定することはまったく別のこと。
なんか知らんけど、 「理由をこじつけて否定」されたから
腹がたってムシャクシャしてやったのであって、
次世代Java とは関係がない話って事だね。

> それらしい議論しろっつーの。
次世代Javaの動向とは関係がない話題だから ここでやるのはスレ違い

マ板のスレにでも行って愚痴れば?
174157:2006/09/09(土) 12:20:21
>>164
本題とは関係無いが、Rubyだと+=演算子はユーザが定義することはできず、x = x + yの
シンタックスシュガーのはずなので、<<とは混同しようが無いと思うんだが。
175デフォルトの名無しさん:2006/09/09(土) 13:28:05
オーバーロードの議論は結局
(f+g)(x)は読みやすいか?
まで遡るのでやっても無駄と思われ
176デフォルトの名無しさん:2006/09/09(土) 20:33:47
たとえば演算子をオーバーロード出来たとする
すると、どんなにメソッド名を付けることが上手いプログラマでも、
+演算子のオーバーロードを使う場合が出てくる
これままぁいい

問題なのは、このときに自分の定義した+演算子と他人の定義した+演算子が
厳密には異なる動作をする可能性があるのが問題
これはドキュメントを読めばいい、というレベルの話ではなく、
間違いなく可読性(というか即読性?)が低下する

さらには、C++風に記述した*演算子(つまりoperator*)には名前が1つしかないのが問題
これでは行列型どうしの乗算なのか、内積なのか、外積なのか即、判断ができない
これが多分>>149が言いたかったこと
いまだと、メソッド名によって操作の内容が容易に判断できる

確かに駄目プログラマオンリーなら、演算子がオーバーロード出来ようと出来まいと関係ない
でも、世界は駄目プログラマだけじゃないので、演算子がオーバーロード出来てしまうと
上に書いたような事態に陥る

まぁ、Javaに演算子のオーバーロードが追加されるなら、
何らかのメソッドにアノテーションかなんかで実現してほしい

@AddOperator
public Hoge add(Hoge hoge) { ... }
177176:2006/09/09(土) 20:36:16
それよりも、package private/protectedなinterfaceがほしい今日この頃
例えばRunnableインターフェイスをprotectedにすると、
runは外部から呼び出せないことになるので、
今のようにstartを呼ばなければいけないところをrun読んだりするミスがなくなるし
178デフォルトの名無しさん:2006/09/09(土) 21:28:18
>>173
劣勢になったら「スレ違い」宣言かよ
それはいいからストラウストラップのやつよろしく
179デフォルトの名無しさん:2006/09/09(土) 21:49:26
>>178
ストラウストラップのは>>149,176がいってるやつ
たしかD&Eで言ってたような・・・うろ覚えスマソ
ただ、ストラウストラップ自体はそこまで演算子の多重定義を否定してなくて、
あくまでそういう意見もいる、ってこと
まぁPuzzlersとか読む限り、俺もJavaに演算子の多重定義はいらないかな、と思う
>>176の案だったらまだ許せるけどね

あと、176よ、package privateなinterfaceは今でもあるぞ?
180デフォルトの名無しさん:2006/09/09(土) 21:59:55
なるほどぐぐったらすぐ出てきたよ
粘着している元ネタはこれか

ttp://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html

どう読んでもネタだわこりゃw
181デフォルトの名無しさん:2006/09/09(土) 22:01:46
>>175すばらしい!
182デフォルトの名無しさん:2006/09/09(土) 22:23:28
>>180は確かにネタだがこういうネタが通用する背景には
C++の言語仕様に辟易しているPGが多いっていう真実が隠されてるわけだね
ネタだからといって演算子オーバロードが良いとはいえないわけだ
「賛成派」の>>172には支持理由を是非とも熱く語ってほしいね
183デフォルトの名無しさん:2006/09/09(土) 22:37:04
同じ次世代を目指しているから、D言語の人たちはどう思ってるかのぞいてみたら?
184デフォルトの名無しさん:2006/09/09(土) 23:12:54
>>180 は多分C++使い始めの奴らが「わかるわかる」って言い出す内容だと思うんだ。
C++のプロはそんなこと絶対思わない。

じゃぁ、C++のプロってのは実プロジェクトにそんなに必要なのか?って言えば…。

いらないよな。
185デフォルトの名無しさん:2006/09/09(土) 23:46:21
>>157
> >>149
> まず、転置に'や`を使うのは不適切なケースだろう。だが、それは演算子オーバーロード

ちょっとまったーーーーーーーーーーーーーー!!!
MATLABやOctave使ったことあるか?
MATLABやOctaveでは行列の転置に'を使うんだぜ。
A = [1 2 3; 4 5 6; 7 8 9];
って行列があったとき
B = A'ってやると
Bの中身は [1 4 7; 2 5 8; 3 6 9]になって

B = | 1 4 7 |
   | 2 5 8 |
   | 3 6 9 |

て表示されるんだぜ。


> 特有のものではない。例えば、メソッドだって、ある奴はtransposeという名前をつけるだろうが、
> 別の奴はtransとつけるかもしれないし、さらに面倒くさがりのやつはtrやtという名前をつけるかもしれない

それはまた違う問題だ。Javaにはpackageの概念があるんだから、
メソッドの名前が乱立しても、名前空間の衝突は起きないだろー

186デフォルトの名無しさん:2006/09/09(土) 23:48:26
>>160
無理な話じゃないさ。
面倒なことになるから、どうしても導入したければ、
もっと頭をつかえっていっときたい。
enumや可変長引数を導入したときのように。
Genericsを導入したおかげでありゃうまいことやってくれたって思ったよ。
187デフォルトの名無しさん:2006/09/09(土) 23:51:23
>>162
> http://journal.mycom.co.jp/articles/2005/11/10/javaone1/
> 去年の JavaOne Tokyo の話によれば演算子オーバーロードが
> dolphin に入るのは かなり望み薄だし、次世代Javaの動向と関係がない
> 演算子オーバーロード関連は他所のスレでやって欲しいぞ。
> > これだから、Java屋はJavaにない機能はすべて(ry
> 最終的に これが言いたいだけの奴も居るみたいだし。

みたいだな。

これみると、キッパリと否定されてるようだしw つか、C#でもつかってろってw
【レポート】JavaOne Tokyo 2005 - 見えてきたDolphin、Mustangのさらに向こう
Dolphin世代のJavaはどうなる? (MYCOMジャーナル)
"Peter氏は、今後もJava言語にはさらなる拡張が加えられると宣言する一方で、
Javaでサポートされる可能性のない機能の代表格として以下のようなものを挙げている。

* 多重継承
* 演算子オーバーロード
* AOP(Aspect Oriented Programming)
* プリプロセッサ/マクロ
* 多重ディスパッチ
* 複数返り値"
http://journal.mycom.co.jp/articles/2005/11/10/javaone1/


AOPが導入されないのはちょっと残念かもしれないけどAspectJでうまい使い方があるし
使い道も限られてるからまあいいかってとこだね
188デフォルトの名無しさん:2006/09/09(土) 23:52:37
>>164
JavaOne TokyoでJava開発者が主張していることを
あげただけで逃げになるのかw

小学生かお前はw
189デフォルトの名無しさん:2006/09/09(土) 23:54:43
>>167
オーバーロードのことで揉めるのは
C++厨やC#厨の連中がなんとかしてJavaをこき下ろしたいだけだろ。
なぜそんなことするのかわからんけど。
そんなにJavaが嫌いだったらC#かC++でも使っていればいいのに。
190デフォルトの名無しさん:2006/09/09(土) 23:55:16
>>169
お前の粘着っぷりには笑った
191デフォルトの名無しさん:2006/09/09(土) 23:55:28
>>170
ナイスツッコミw
192デフォルトの名無しさん:2006/09/09(土) 23:59:58
>>172
> 今までの反対派の発言をみてみろ、まず「演算子の再定義は悪」という結論があって、そのために無理な理由をつけて反対しているだけじゃん。
> これのどこが「変更に慎重」なんだよ。そう言いたいんだったらそれらしい議論しろっつーの。
> おまえが「ストラウストラップがこういう問題を指摘してるんだけど、それはどうしたらいいと思う?」とでも書けば「変更に慎重」ということにもなるよ。
> しかしおまえらは、はなから「Javaは正しい」「演算子オーバーロードは悪」という結論ありきで話してるじゃん。

まてまて、それはお前の被害妄想だよw
まあ、落ち着けw

> そして、そのための理由を無理にこじつけて、それらを論破されて、それを今になって「変更に慎重」とか、もうアホかと。

おいおい、泣くなよw よしよし、ぼくちゃん虐められてたんだね、よしよしw

> > 言語仕様をどんどん変更されたら、言語としての安定性が疑われる。
> > PHPなんかひどいだろ。
> 言語仕様の安定性と、ライブラリや実装の安定性を混同している。
> PHPで安定しないのは後者。前者は安定している(PHPの仕様は4→5で大きく拡張されたが、それはJavaでも同じ)。
> 実装が不安定だからといって、勝手に言語仕様まで同じにするな。
名前空間もない致命的な欠陥に加え、import宣言も実装されないあのPHPがJavaと同じっておいおいw
__autoloadって何だよあのアホ仕様w

だったらさ、キミの大好きなPHPにも演算子オーバーロードをつけてくれるように頼んで皆よw
> >>168
> この感想文には「まけおしみ」というタイトルをつけましょう。

いや、お前のほうが負け惜しみのタイトルに相応しいレスを繰り返しているよw
>>168のレスは的を得ているし、すっきりするし説得力があるしレスとしては賢明なほうだと俺は思うぞ。
193デフォルトの名無しさん:2006/09/10(日) 00:00:23
C#って演算子オーバーロードあるの?

かなり萎えた。
194デフォルトの名無しさん:2006/09/10(日) 00:00:33
>>173
> >>172
> > 理由をこじつけて否定することはまったく別のこと。
> なんか知らんけど、 「理由をこじつけて否定」されたから
> 腹がたってムシャクシャしてやったのであって、
> 次世代Java とは関係がない話って事だね。

ワロタ。ムシャクシャしたC#厨がJavaスレにイチャモンつけてるのかw

195デフォルトの名無しさん:2006/09/10(日) 00:01:18
>>175
読みにくい。

よって、Javaに演算子オーバーローディングは要らない。
196デフォルトの名無しさん:2006/09/10(日) 00:03:18
>>176
もし仮に演算子オーバーロードをJavaに実装するなら、
アノテーションだけでなく、演算子に名前空間とアクセス権、演算子の優先順位、結合力もつけるべきだな。
197デフォルトの名無しさん:2006/09/10(日) 00:22:25
>>193
あるよ。
しかもC#2.0ではめちゃくちゃな仕様が増えた。
?演算子がオーバーロードされたし。
198デフォルトの名無しさん:2006/09/10(日) 00:24:41
演算子のオーバーロードって結局、
メソッドをグローバル化することに他ならないんだと思う。

このオブジェクトに対するこの操作は全員が把握してしかるべきもの
と思われるものに対してのみオーバーロードが許されるべき。

Javaでは「全プロジェクトにおいて許されるものはStringの+ぐらいである」
というスタンスで進んでる。

C++では「いろんなプロジェクトで特有のものがあるだろ」
ってスタンスで進んでる。

俺は、Javaのスタンスで一向に差し支えないと思う。
なぜなら、演算子のオーバーロードの情報がグローバルに共有されることが稀だから。
199157:2006/09/10(日) 00:26:27
>>185
MATLABは使ったことあるよ
でも、Matlabのそれは言語組み込みの演算子だから、演算子オーバーロードとはまた違う問題じゃないの?
そりゃ、MATLABユーザなら、他の言語でその演算子を見たときに、すぐに転置を表すものだと
理解できるかもしれんが、普通は無理だろ

> Javaにはpackageの概念があるんだから、

同じ機能のメソッドが別の名前だったり、同じ名前で別の機能を持つメソッドがあったときに
ユーザが混乱するかどうかという話なので、名前空間の話は無関係
200157:2006/09/10(日) 00:29:19
>>198
メソッドをグローバル化って何?名前空間のことを言っているのなら、
全然違うと思うが。演算子と言っても、名前空間をもてないわけじゃないし。
201デフォルトの名無しさん:2006/09/10(日) 00:30:13
いい加減、C++厨は演算子にどれだけ情報量があるか気づけ。
高々1文字・2文字でどのように処理の意味を表現するのだ?

既に他分野で暗黙的に利用されている意味以外での利用
がどれほど保守性を下げるのか理解して言っているだろうな?
202デフォルトの名無しさん:2006/09/10(日) 00:35:45
>>198
それじゃ、結局、
オーバーロードした演算子にアクセス権を設定することはできないのか・・・
203デフォルトの名無しさん:2006/09/10(日) 00:36:46
>>199
お前、本当にMATLAB使ったことあるのかw
204デフォルトの名無しさん:2006/09/10(日) 00:47:52
>>199
おいおい、あのさ
演算子に名前空間はつけられないんだろ。それとも、つけられる仕様にできるのか?
名前空間がつかなかったら、異なる定義の演算子どうしの衝突がおきるだろう。

メソッド名に演算子が使えるだけという程度ならまた異なる話だがな。

メソッドと演算子との違いもわからんのか。メソッドは
add()という加算用インスタンスメソッドがあるなら、x+yは
x.add(y)と表現するわけだろう。

それを、演算子にしたいがために x + y としたいわけだな?

そのことでお前がこういったことについて聞くが
 「例えば、メソッドだって、ある奴はtransposeという名前をつけるだろうが、
 別の奴はtransとつけるかもしれないし、さらに面倒くさがりのやつはtrやtという名前をつけるかもしれない
 また、乗算に関しても、メソッドに置き換えても全く同じことが成り立つ。」

お前の主張した、「演算子をメソッドに置き換えても全く同じ事が成り立つ」
ためには

x.add(y)はx.+(y)と置き換えた場合に限る。
(このケースの場合、()や.の定義も再定義しなければC++でもコンパイルエラーになるがな。)
だがC#やC++の演算子のオーバーロードは x.+(y)とはならない、あくまでx+yだ。
これでお前は自分のいっていることがおかしいことに気づいたか?



205157:2006/09/10(日) 00:48:58
>>203
どういう意味?
MATLABの行列転置演算子は組み込みのものだと思っていたのだが、違うの?
206デフォルトの名無しさん:2006/09/10(日) 00:49:11
>>201
奴はC++厨じゃなくてC#忠だよ。

C#とマイクロソフトに忠誠を誓う男、C#忠だ。
経験豊かなすごうでなC++厨だったらもっとましなことを言うはず。


207デフォルトの名無しさん:2006/09/10(日) 00:49:50
>>205
お前、さっき急いで「MATLAB 転置」でググッただろw
208デフォルトの名無しさん:2006/09/10(日) 00:50:52
>>176
>問題なのは、このときに自分の定義した+演算子と他人の定義した+演算子が
>厳密には異なる動作をする可能性があるのが問題
だからそれはメソッドでも起こる問題だってんだろ。
自分が定義したメソッドfoo()と他人が定義したfoo()が異なる動作をするなんてしょっちゅう。
メソッド名がかぶっても問題ないのは、双方が異なるクラスで定義されているからであり、それは演算子でもおなじこと。

> *演算子(つまりoperator*)には名前が1つしかないのが問題
> これでは行列型どうしの乗算なのか、内積なのか、外積なのか即、判断ができない
複数の動作が考えられるなら、演算子をつかわずすべてをメソッドにするか、または代表的なひとつだけを演算子にしてのこりはメソッドのままにしとけばいい。
演算子オーバーロードができるからといって、なんでもかんでも演算子にする必要はない。
普通に考えればわかることだろ。はなから否定することしか考えてないから、そういう考えしかできないんだよ。
209157:2006/09/10(日) 00:52:22
>>204
別にC++/C#の演算子オーバーロードに限定して言ったつもりは無いんだけど
例えばRubyだと、演算子の定義とメソッドの定義は全く等価だし

後半は言っていることが全く意味不明。そりゃ、C++/C#において、メソッド呼び出し
と演算子呼び出しのシンタックスが違うことくらいわかってるがな。一体何が言いたいのやら
210デフォルトの名無しさん:2006/09/10(日) 01:00:15
>>192
まてまて、話をよくよめ。JavaとPHPの言語仕様が同じといってないだろ。言語仕様が大きく拡張されたという点で同じといってるだけ。
「言語仕様をどんどん変更されたら、言語としての安定性が疑われる。PHPなんかひどいだろ。」
→「PHPでは5になるときに大きく変更されたけど、それはJavaも同じ」
→「import宣言も実装されないあのPHPがJavaと同じっておいおいw」←いまここ

>>196
そんな複雑なのいらない。そこまではだれも望んじゃいない。
211157:2006/09/10(日) 01:01:27
>>207
別にググって無いんだけど。…今ググッてみたが、MATLABにも
演算子オーバーロードあるのか。知らんかった。それに関しては
間違ってたので、謝罪する。
ただ、どちらにしてもMATLABで'が転置を表すのは、言語仕様あるいは
処理系に組み込みで定義されてるからであって、他の(MATLABのように
'が転置を表すことが一般的に認知されていない)言語のユーザがそれを転置
演算子としてオーバーロードするのが適切かは別問題だろう
212デフォルトの名無しさん:2006/09/10(日) 01:08:27
>>198
>演算子のオーバーロードって結局、
>メソッドをグローバル化することに他ならないんだと思う。
意味不明。

>>201
記号には十分な情報量あるよ。+や-で処理の意味を十分表せてる。
やっぱり四則演算の記号すら知らないんじゃないの?

>>204
ちょー意味分からん。
定義のしかたは>>176の方法でもなんでもいいからさ、例えば x + y があったら、コンパイラが型の情報とメソッド定義とをみて、x.add(y) とかに変換してくれればそれでいいじゃん。

>x.add(y)はx.+(y)と置き換えた場合に限る。
どうやったらこんな話になるのやら。
213デフォルトの名無しさん:2006/09/10(日) 01:10:51
>>208
> >>176
> >問題なのは、このときに自分の定義した+演算子と他人の定義した+演算子が
> >厳密には異なる動作をする可能性があるのが問題
> だからそれはメソッドでも起こる問題だってんだろ。
> 自分が定義したメソッドfoo()と他人が定義したfoo()が異なる動作をするなんてしょっちゅう。
> メソッド名がかぶっても問題ないのは、双方が異なるクラスで定義されているからであり、それは演算子でもおなじこと。

>>204をもう一度読み直してから出直してこい。
214デフォルトの名無しさん:2006/09/10(日) 01:12:14
>>210
その「いまここ」という用語使いたがるところがゆとり世代のバカっぽくていいね。
215デフォルトの名無しさん:2006/09/10(日) 01:18:21
あいかわらずJavaユーザは、Javaにない機能はイラネですか。10年同じことを繰り返してるんだなあ。
クロージャも導入されたら、とたんに手放しでマンセーするんだろうなあ。

あのさ、別に演算子オーバーロードがJavaに導入されようがされまいがどうでもいいけど、でもJavaユーザが主張している拒否の理由はどれも根拠が弱いよ。
LispもPythonもRubyも演算子の動作を再定義できるけど、それぞれ別のやりかたでうまくやってる。
そういうのを知らずに、たんに自分が知らない機能を嫌ってるだけじゃね?

COBOLerがCOBOLから離れられないように、Java-erはJavaから離れられないのね。
216デフォルトの名無しさん:2006/09/10(日) 01:19:04
>>176
演算子オーバーロードやるならinterfaceにして欲しいような気もする。

interface 四則演算<T>{ //あるいは更に縛って四則演算<T extends 四則演算<T>> とか
 T add(T v); T subtract(T v); T multiply(T v); T divide(T v);
}
緩いほうで Hoge extends 四則演算<String> されると、
hoge + str の意味が、四則演算無しの時と有りの時で
文字列連結か演算子オーバーロードかで変わっちゃったり、
変わらない場合は演算子の優先順位が面倒だったりしないかな、とか思った。

後は .Comparable で <, <=, >, >= 使えるようにするとか……
でも、これは参照型の ==, != が同じ参照かを比較するのと相性悪いような。

ついでに
interface Indexer<I, E>{ void set(I index, E element); E get(I index); }
とか。 List でやったら autoboxing が発生しまくるような気もする。
217デフォルトの名無しさん:2006/09/10(日) 01:19:01
>>176
>問題なのは、このときに自分の定義した+演算子と他人の定義した+演算子が
>厳密には異なる動作をする可能性があるのが問題
だからそれはメソッドでも起こる問題だってんだろ。
自分が定義したメソッドfoo()と他人が定義したfoo()が異なる動作をするなんてしょっちゅう。
メソッド名がかぶっても問題ないのは、双方が異なるクラスで定義されているからであり、それは演算子でもおなじこと。

> *演算子(つまりoperator*)には名前が1つしかないのが問題
> これでは行列型どうしの乗算なのか、内積なのか、外積なのか即、判断ができない
複数の動作が考えられるなら、演算子をつかわずすべてをメソッドにするか、または代表的なひとつだけを演算子にしてのこりはメソッドのままにしとけばいい。
演算子オーバーロードができるからといって、なんでもかんでも演算子にする必要はない。
普通に考えればわかることだろ。はなから否定することしか考えてないから、そういう考えしかできないんだよ。
218デフォルトの名無しさん:2006/09/10(日) 01:20:53
>>212
> >>198
> >演算子のオーバーロードって結局、
> >メソッドをグローバル化することに他ならないんだと思う。
> 意味不明。
> >>201
> 記号には十分な情報量あるよ。+や-で処理の意味を十分表せてる。
> やっぱり四則演算の記号すら知らないんじゃないの?
> >>204
> ちょー意味分からん。
> 定義のしかたは>>176の方法でもなんでもいいからさ、例えば x + y があったら、
> コンパイラが型の情報とメソッド定義とをみて、x.add(y) とかに変換してくれればそれでいいじゃん。

認識が甘いな。
お前みたいな演算子オーバーロードを崇拝するバカは
フィッシング詐欺や甘い誘いに騙されやすい奴に実にそっくりだよ。
お前の例で聞くが、
x + y / z と書いたら、

x.add(y.divide(z)) と期待通りに動くように設計できるか?
x.add(y).divide(z)と間違えないだろうな。


219デフォルトの名無しさん:2006/09/10(日) 01:24:55
>>212
> >>201
> 記号には十分な情報量あるよ。+や-で処理の意味を十分表せてる。
> やっぱり四則演算の記号すら知らないんじゃないの?

おまえは>>201の意図していることを理解できていないみたいだな。
>>201の例を俺が代弁するとだな。

ある言語では定義できる演算子が100種類。
定義できるメソッド名に使用できるアルファベットはもちろん26+10種類以上。
ただしメソッド文字数は256文字まで。

あるクラスを数十定義したとする。
それぞれ異なる振る舞いをするメソッドであり、
そのメソッドの数を数えると200もあった。

そこで、それぞれのメソッドをそれぞれ異なる演算子として定義したくなった。
そこでそれぞれのメソッドに次々と演算子を定義してゆくが・・・・

演算子が足りない!!!!!!!
演算子が足りないためにこれ以上演算子のオーバーロードができない!!!!!!!!!

こんな事態に陥ったら本末転倒だろう


220デフォルトの名無しさん:2006/09/10(日) 01:27:42
>>215
> あいかわらずJavaユーザは、Javaにない機能はイラネですか。10年同じことを繰り返してるんだなあ。
> クロージャも導入されたら、とたんに手放しでマンセーするんだろうなあ。

その根拠は? まさかGenericsがC++のtemplateと同じものだと勘違いして、
「JavaユーザはC++templateをマンセーしてる!」とかアホなこと言ってるんじゃなかろうなw

> あのさ、別に演算子オーバーロードがJavaに導入されようがされまいがどうでもいいけど、でもJavaユーザが主張している拒否の理由はどれも根拠が弱いよ。
どう根拠が弱いのかね。説明できないではどうにも説得できないな。
そもそもJavaはLispやPythonやRubyと違って強く型付けされた言語だってことを忘れていないかね。
そこをよく見れば、演算子オーバーロードがどういう問題を引き起こすかわかるはずなんだが。
221デフォルトの名無しさん:2006/09/10(日) 01:28:38
>>216
それだったら、アノテーションにしてもかわらんだろ。

そもそもアノテーションというのは
java.lang.Annotationインターフェースを継承したものなんだから。
222デフォルトの名無しさん:2006/09/10(日) 01:32:25
>>216
> >>176
> 演算子オーバーロードやるならinterfaceにして欲しいような気もする。
> interface 四則演算<T>{ //あるいは更に縛って四則演算<T extends 四則演算<T>> とか
>  T add(T v); T subtract(T v); T multiply(T v); T divide(T v);
> }
> 緩いほうで Hoge extends 四則演算<String> されると、
> hoge + str の意味が、四則演算無しの時と有りの時で
> 文字列連結か演算子オーバーロードかで変わっちゃったり、
> 変わらない場合は演算子の優先順位が面倒だったりしないかな、とか思った。
> 後は .Comparable で <, <=, >, >= 使えるようにするとか……
> でも、これは参照型の ==, != が同じ参照かを比較するのと相性悪いような。
> ついでに

それだと、また新たな問題が出てくるな。
Comparableインタフェースを実装したある奴が作ったクラスではcompareTo()を
不等号演算子にオーバーロードしているが、
Comparableインタフェースを実装してはいるが、他のある奴が作ったクラスでは、
演算子のオーバーロードを一切していなかったとき、それぞれのクラスから
オブジェクトを作って、それら二つのオブジェクトを不等号演算子で比較したとき、
何が起こると思う? C++どころかC#でも抱えている問題なのだが。

JavaはRubyみたいな言語と違って型に強い言語なんだぜ。下手なことをやると
C#と同じように痛い目を見るんだぜ。
223デフォルトの名無しさん:2006/09/10(日) 01:34:15
>>216
それ、かなりいいね。そして、インターフェイスを理解している証拠だ。
224デフォルトの名無しさん:2006/09/10(日) 01:36:31
>>221
言わなくても判ると思ったんだけど
アノテーションの方が自由な演算子オーバーロードが出来そうだよ。

同じinterfaceは複数回継承できないから、
例えばMatrix3D implements 四則演算<Matrix3D>, 四則演算<Vector3D>{...}とか出来ないし。
225デフォルトの名無しさん:2006/09/10(日) 01:37:50
>>217
> >>176
> >問題なのは、このときに自分の定義した+演算子と他人の定義した+演算子が
> >厳密には異なる動作をする可能性があるのが問題
> だからそれはメソッドでも起こる問題だってんだろ。
> 自分が定義したメソッドfoo()と他人が定義したfoo()が異なる動作をするなんてしょっちゅう。

まだわかっていないようだね坊や。
もう一回>>204の最後の方をよくよんでごらん。


> メソッド名がかぶっても問題ないのは、双方が異なるクラスで定義されているからであり、それは演算子でもおなじこと。
> > *演算子(つまりoperator*)には名前が1つしかないのが問題
> > これでは行列型どうしの乗算なのか、内積なのか、外積なのか即、判断ができない
> 複数の動作が考えられるなら、演算子をつかわずすべてをメソッドにするか、または代表的なひとつだけを演算子にしてのこりはメソッドのままにしとけばいい。

それじゃ本末転倒だな。中途半端で、結局混乱を招くし、演算子で定義されていないメソッドのほうを
頻繁に使うことになると、一方の演算子が宝の持ち腐れになってゴミ同様となる。

だから、Javaに無理して演算子オーバーロードなんてつける必要がないんだよ。
そもそも、+演算子を勝手にオーバーロードされたら、toString()メソッドと+がうまく機能しなくなるわな。
オブジェクトをString型オブジェクトと+で連結すると、暗黙のうちにオブジェクトがtoString()メソッドを呼び出して
文字列化するっていうJavaに昔からある機能が、突然使えなくなってはあとあとバグを生み出すもとになりかねないわけだが。

226デフォルトの名無しさん:2006/09/10(日) 01:41:22
Javaでは 四則演算<Matrix3D>と四則演算<Vector3D>は異なるクラスとして
扱われるのだが。
227デフォルトの名無しさん:2006/09/10(日) 01:41:50
A<Integer>はA<?>のサブクラスっていうようにな
228デフォルトの名無しさん:2006/09/10(日) 01:42:43
>>222
あぁ悪い。>>216の中段は、既存の参照型の ==, != を再定義しない前提で書いてる。

既存の参照型の ==, != を再定義できるようにするって方向もあるのかもしれないけど、
個人的な意見としては、参照型の ==, != を再定義すると躓く奴が多そうなので勘弁して欲しいかな。
それでなくても質より量な感じで投入されてくる人多いし。
技術的理由というより、政治より(?)な理由だけど。
229デフォルトの名無しさん:2006/09/10(日) 01:45:35
>>228
他人に逃げるなといっときながら、
>222のレスについてはちゃんと読まずに誤魔化して逃げかw
230デフォルトの名無しさん:2006/09/10(日) 01:51:40
>>204
自分の事しか言わないこういうトンデモちゃんが電波の代表なんだろうな。
上手くぼろを出さないように知ったこというだけで、適当にあしらわれて終わりなのに、
本人はそれにまったく気がついていない・・ ケケケ
231157:2006/09/10(日) 01:58:52
>>226
ダウト。基本的に別の型であるというのは確かにそうなんだが
Java Genericsの実装がErasure方式なせいで、メソッドのオーバーロードやインタフェース
の実装や例外クラスなどいくつかのケースで、同じクラスとみなされてしまう
>>224は自分じゃないが、
> Matrix3D implements 四則演算<Matrix3D>, 四則演算<Vector3D>{...}とか出来ないし。
と言っているのは、もしこれがコンパイルできると、型パラメータ情報が消去されて、
Matrix3D implements 四則演算, 四則演算{...}と等価になってしまい、クラスファイルの
仕様に反してしまうから。
232デフォルトの名無しさん:2006/09/10(日) 01:58:53
>>230
Javaを知っている程度で実際は大して使えないSEなんじゃないか。

それも給料低いわりには重労働で時間拘束もひどい。

重圧に耐えられず、ここで八つ当たりしてるんじゃねぇ・・

Java関連のスレに頻繁に顔出してるしな。

そういう奴は、どこでも同じだし、そのうち過労で死ぬんじゃねぇの?ケケケ
233デフォルトの名無しさん:2006/09/10(日) 02:03:20
>>226
erasureのせいで実行時は四則演算<Matrix3D>と四則演算<Vector3D>は
同じ型に成り下がるので、>>224のはコンパイルエラーになる。

http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.1.5
> A class may not at the same time be a subtype of two interface types
> which are different invocations of the same generic interface (§9.1.2),
> or an invocation of a generic interface and a raw type naming that same generic interface.
234デフォルトの名無しさん:2006/09/10(日) 02:07:19
>>230, >>232
どうしようもなくなると語尾にケケケとつて
サクラな自作自演乙
ストラウストラップがいってたことってなんだよを連呼して
しつこく演算子オーバーロードに拘って八つ当たりしていたのは一体誰だろうねw
235デフォルトの名無しさん:2006/09/10(日) 02:13:58
>>234

俺達の合言葉にケチつける気か、お前は?

お前の気に食わないことにイチイチ脊髄反応している時点で、
お前が粘着ザコなんじゃないか? ケケケ

一回氏ね! ケケケ
236デフォルトの名無しさん:2006/09/10(日) 02:21:42
>>215
> クロージャも導入されたら、とたんに手放しでマンセーするんだろうなあ。
クロージャの出来が良ければ遠慮せずにマンセーするよ。
それで何か悪いの?
237デフォルトの名無しさん:2006/09/10(日) 02:22:44
>>226
matrixとvectorは数学では同じように扱ってもプログラム上では両者は違うでしょ?
それを型で表していると考えると納得できるかな?
238デフォルトの名無しさん:2006/09/10(日) 02:28:58
>>236
散々悪口だけ言って、生意気なんだよ。
そういうのは悪い奴の典型例で一回氏ね!

ところで、口だけでお前は一体何が出来るんだ? ケケケ
239デフォルトの名無しさん:2006/09/10(日) 02:31:48
>>238って、ひょっとしてツンデレなのかも? と思ってしまった。
240デフォルトの名無しさん:2006/09/10(日) 03:32:16
大昔のgoslingの演算子オーバーロードに関する見解を見つけて見た。
http://web.archive.org/web/19990202050412/http://java.sun.com/people/jag/FP.html#overloading

例があがってるのは、
・二項演算子は右辺と左辺を交換可能である事もあるけど、
メソッド呼び出しはそうじゃないから、例えば左辺にプリミティブが現れた場合
1/m を m.divideReverse(1) に変換する、みたいにしないといけない。
交換可能ってだけなら @Commutativeみたいなアノテーションつければ良いような気もする。
1/m を m.divideReverse(1) ってのはそれだけじゃ無理だけど。

・今更==をequals()の呼び出しにできない。
immutableな型なら問題にならないって書いてあるけど、良いのかな?
mutableな型よりは問題少なそうだとは思うけど。

・構文解析の問題。
例えば (p)+q みたいに単項+演算子付きのqをp型にキャストするとも、
qと括弧付きのp との加算とも取れる曖昧な式が出現した時に、
今までのJavaではプリミティブ型かどうかでチェックしてたけど、
他の方法でチェックする必要が出るらしい。
良くわからんけど互換性を考えつつ別のチェック方法考えるってのが大変なんかな?
241デフォルトの名無しさん:2006/09/10(日) 03:45:48
>>240
最後のって、単純に可視な変数かどうかでチェックすれば良いような気もするけど……

それじゃダメなんか?
242デフォルトの名無しさん:2006/09/10(日) 04:22:09
>>239


ケケケ

243デフォルトの名無しさん:2006/09/10(日) 09:15:47
クロージャや関数型は望んでる奴が沢山いるだろ。
enumやジェネリクスだってそうだった。

けど演算子オーバーロードは違う。
「混乱するなら使わなきゃいいだけ」
って言うにはあまりにも厨房の
「俺って出来る奴」的プライドをくすぐる機能だ。
244157:2006/09/10(日) 09:44:23
>>243
俺も別に今のJavaに無理して演算子オーバーローディングを導入する必要
は無いと思ってるが

> 「混乱するなら使わなきゃいいだけ」
> って言うにはあまりにも厨房の
> 「俺って出来る奴」的プライドをくすぐる機能だ。

はあんまりだぜ。確かにC++では厨房が変な使い方をした場合も多かっただろうけど、
実際に有用な局面もそれなりにある。例えば、事務処理系のプログラムや数値計算系のプログラム
などを多く書く人にとってみれば、BigDecimalや行列などの演算をメソッド呼び出しで書くなんて
耐えがたいだろう。それがどれだけ嫌かはintやdoubleなどのプリミティブ型でも+などの演算子を使う
ことが許されず、全部をadd,subtractなどのメソッド呼び出しで書かなければいけないとなったときの
ことを想像してみるとわかりやすいだろう。
他にも、DSL(Domain Specific Language)を作るのにも演算子オーバーローディングは有用。
見たことのある例だと構文解析器を構築するためのフレームワークを言語内に構築するとか。
んなもんParser Generator使えばいいじゃないかと言うかもしれんが、Parser Generatorは
構文定義中に埋め込まれたプログラムが変でも関知しないせいで、生成されたコードを
コンパイルする段階になって初めてエラーが報告されるなど、面倒な部分がある
245デフォルトの名無しさん:2006/09/10(日) 11:30:35
javaのenumは、stateA | stateBが出来なくて使いづらい。
これも演算子オーバーロードなのかもしれんが。
EnumSetじゃね…。
246デフォルトの名無しさん:2006/09/10(日) 11:36:07
なるほど>>245
247デフォルトの名無しさん:2006/09/10(日) 11:47:34
>>245
Javaのenumでそんなことは出来ないだろ。
public enum State {
HOGE {
public void func() { ... }
},
PIYO {
public void func() { ... }
};
public abstract void func();
}
とかで、
State state = State.HOGE State.PIYO;
state.func();
はどうなるの?どっちも呼び出す?
そもそもそういう用途にはenumを無理して使うより、
public static final intでいいと思うんだが。
248デフォルトの名無しさん:2006/09/10(日) 12:12:45
>>245
それの解決は、演算子オーバロードというよりも
EnumSetのシンタックスシュガーで逃げる解決方法がいいと思うな・・・

演算子の意味はやっぱり固定にして欲しいし
>>244 で上げてる問題の解決には
演算子オーバロードにこだわる必要ないしな
プリプロセッサで何とかなる程度だから、マクロでもいいんじゃない?
+、*とかの既存の演算子を使う事はないと思う
まぁ、問題を演算子オーバロードの是非からマクロの是非にすり替えてるだけかもしれんが。
249デフォルトの名無しさん:2006/09/10(日) 12:16:40
>>235
ついに「死ね」と言いだしたか。
随分短気だな死者プチュwww
250デフォルトの名無しさん:2006/09/10(日) 12:17:34
>>239
いや、こいつはC#って死滅しちゃうの?スレで大暴れしていた
あのバカM$厨だよw
251デフォルトの名無しさん:2006/09/10(日) 12:23:35
>>241
P p = new P(??????); //?には何かが入るとする。
Q q = new q(??????); //?には何かが入るとする。

p+=((((((((((-p++)))))))))*+q*(p*(q/(p*(q/(p+q))))

こんなのが出た場合、ちゃんと解析できるかな?

252デフォルトの名無しさん:2006/09/10(日) 12:24:13
>>243
> クロージャや関数型は望んでる奴が沢山いるだろ。
> enumやジェネリクスだってそうだった。
> けど演算子オーバーロードは違う。
> 「混乱するなら使わなきゃいいだけ」
> って言うにはあまりにも厨房の
> 「俺って出来る奴」的プライドをくすぐる機能だ。

でたでた、うぬぼれC#厨お得意の機能w
253デフォルトの名無しさん:2006/09/10(日) 12:26:00
>>244
> >>243
> 俺も別に今のJavaに無理して演算子オーバーローディングを導入する必要
> は無いと思ってるが
> > 「混乱するなら使わなきゃいいだけ」
> > って言うにはあまりにも厨房の
> > 「俺って出来る奴」的プライドをくすぐる機能だ。
> はあんまりだぜ。確かにC++では厨房が変な使い方をした場合も多かっただろうけど、
> 実際に有用な局面もそれなりにある。例えば、事務処理系のプログラムや数値計算系のプログラム
> などを多く書く人にとってみれば、BigDecimalや行列などの演算をメソッド呼び出しで書くなんて
> 耐えがたいだろう。それがどれだけ嫌かはintやdoubleなどのプリミティブ型でも+などの演算子を使う
> ことが許されず、全部をadd,subtractなどのメソッド呼び出しで書かなければいけないとなったときの
> ことを想像してみるとわかりやすいだろう。

頭使えよ。Jakarta Velocityでも使っても良いし。
数値演算のとこだけ
とりあえず演算子で記述して、
Javaソースコードに貼り付けるときに、自動的に演算子をメソッドに変換してくれる
ツールを使った方が効率がいいんじゃないかね。

そういうEclipseプラグインを探してくるか、自作するのがお勧めだね。
254デフォルトの名無しさん:2006/09/10(日) 12:28:46
>>248
> >>245
> それの解決は、演算子オーバロードというよりも
> EnumSetのシンタックスシュガーで逃げる解決方法がいいと思うな・・・
> 演算子の意味はやっぱり固定にして欲しいし
> >>244 で上げてる問題の解決には
> 演算子オーバロードにこだわる必要ないしな
> プリプロセッサで何とかなる程度だから、マクロでもいいんじゃない?

それなら、Jakarta Velocityの出番
255157:2006/09/10(日) 12:57:31
>>253
なんでそこでJakarta Velocityが出てくるかなあ。無関係でしょ?
後半部分についても、俺は、ある言語内でプログラムするときに
演算子オーバーロードがあれば便利な局面の話してるのに、
別の言語使えとかツールで補えってのは答えになってないよ。

繰り返すが、俺はJavaに演算子オーバーローディングを入れる必要が
あるかと言われれば、別に無理して入れなくてもいいと思ってる。
ただ、一般論としての演算子オーバーロードの有用性までむやみに
否定するのはやめようぜ
256デフォルトの名無しさん:2006/09/10(日) 14:28:32
>>157
スレタイ読め
誰も一般論として否定してない
次世代Javaには必要無いだろうと言っている
257157:2006/09/10(日) 15:21:25
>>256
スレタイはともかく、批判してる書き込みは一般論として演算子オーバーロード
について否定してるようにしか見えないんだが。
258デフォルトの名無しさん:2006/09/10(日) 15:24:24
さっきByteBufferのテストしてて気づいたんだけど
Bufferの読み込みは8バイト単位であるlongやdoubleが一番速いのな。
ネイティブオーダーのintより速くて驚いた。
JVM上の演算は流石にCPUに依存しまくりだったけどね。

64bitCPUでBigEndianであるマシンが最強になるよう設計されてるのかな
259デフォルトの名無しさん:2006/09/10(日) 15:54:45
>>255
テンプレートエンジンで演算子文字列をメソッドに変換せよってことかと
260157:2006/09/10(日) 16:02:41
>>259
プリミティブ型かどうかチェックしないとメソッドに変換していいかどうかわからんから、
それは難しくないか?変換用に既存の演算子とかぶらない演算子(例えば+@とか)
を新しく作るならともかく
261デフォルトの名無しさん:2006/09/10(日) 16:17:23
+演算子を$a
-演算子を$s
*演算子を$m
/演算子を$d
と定義しておけばいい。


262デフォルトの名無しさん:2006/09/10(日) 17:11:15
>>244

事務処理系や数値計算系のプログラムを書くことなど
実際やってもいないのに、勝手な想像であれこれ言うの
も説得力ないよな
263157:2006/09/10(日) 17:21:47
>>262
俺自身が事務処理系や数値計算系のプログラムを書いたことが
無いのは確かだが、別に勝手な想像だけで言っているわけじゃない
特に数値計算系の話に関しては、「java numerical computing operator overload」
とかで検索すれば、実際に数値計算系の人たちで演算子オーバーロード
を必要としている人が少なくないことがよくわかると思う
264デフォルトの名無しさん:2006/09/10(日) 17:33:02
演算子オーバーロードは乗算の交換法則とか条件別にインターフェースをシステム側で定義してもらって
それらをimplementsで使った時に(要するにシステム的にそのインターフェースの意味を固定させる規則)
可能になるなら別に文句言わない。

メソッド名の代わりに演算子も使えるとか言うC++みたいな実装への約束事無し系ならいれなくていいや派
265デフォルトの名無しさん:2006/09/10(日) 17:33:05
プリミティブ型にベクトルと行列を用意してくれ
266デフォルトの名無しさん:2006/09/10(日) 17:38:40
>>244 >書くなんて 耐えがたいだろう。

これが言いたいだけでしょ。
オーバーロードがあろうがなかろうがあんまり関係く
実際では違うところを改善して欲しいのに
実際に係わっている人たちのそんな気持ちなどまったく知らないのにね・・
267デフォルトの名無しさん:2006/09/10(日) 17:47:29
>>265それは配列だとおもうけど、嫌なの?
268デフォルトの名無しさん:2006/09/10(日) 17:58:09
>>244みたいな奴が耐え難い保守作業を強いられるコードを書くんだよな。

死ねばいいのに。
269デフォルトの名無しさん:2006/09/10(日) 18:05:22
>>244は数値演算言語仕様経験が浅いな。
PID制御とか信号処理とかろくに知らんだろ
270デフォルトの名無しさん:2006/09/10(日) 18:07:38
>>265
嫌だ。

Jakarta Commons Math使え。
いや、つか、Mathworksが作ったJAMA(A Java Matrix Package)を使え。
MathworksはまさにそのMATLABを作った会社だが、
Javaのことはろくにわかっていないらしく、オブジェクト指向言語としては
いまいちな仕様だ。
どうみても、Jakarta Commons MathのMatrixクラスのほうが使い勝手が良い。
271デフォルトの名無しさん:2006/09/10(日) 18:09:28
x + y

という文字列を書いて、
その文字列をマウスでドラッグして、
右クリックしたらその部分だけBigDecimalまたはBigIntegerなJava文法に変換する
コードに自動変換するEclipseプラグインを作れば、
「演算子オーバロードが欲しい!」と願っている香具師の夢も叶えられるだろう。
272デフォルトの名無しさん:2006/09/10(日) 18:10:50
>>268-270
君達、うざい、氏ね。 ケケケ
もうここに来るな。 ケケケ
273デフォルトの名無しさん:2006/09/10(日) 18:12:27
これもありだろう。

Eclipseで、

BigDecimal x = new BigDecimal("100.1");
BigDecimal y = new BigDecimal("100.2");

BigDecimal z = x + y * sqrt(x);

というコードがあったら
BigDecimal z = x + y * sqrt(x);の最後の行で
CTRL + SPACEキーを押すとコードアシスト機能により、
自動的に


BigDecimal z = x.add(y.multiply(x.sqrt()));
に変換してくれる機能だ!



274デフォルトの名無しさん:2006/09/10(日) 18:13:04
>>272
>>270は寛大な提案をしているのにウザイ死ねケケケか。
随分と失礼な発言をするものだねキミ。
275デフォルトの名無しさん:2006/09/10(日) 18:26:01
>>270は単なる宣伝じゃん!
確かにそれらはよいと思うけど、行列とオブジェクト指向は関係ないのに、
270はそれに気がついてないで勧めているのがバカ丸出し。
だから死ねとなるんじゃないか?
ケケケ
276デフォルトの名無しさん:2006/09/10(日) 21:07:50
でんでん!
277デフォルトの名無しさん:2006/09/10(日) 21:45:32
演算子オーバーロードは、使う側からするとどちらに転んでも構わないんだが。。。
たとえば Zaiko z = Zaiko.new(0); z = z + 1; って書けるんだったら、z = 1 + z; も書きたくなるもんな。
こういうの認めようとすると primitive 型も全部オブジェクトとか、既存クラス/オブジェクトに後から
メソッド加えられるとか、かなり面倒なことになる。言語設計者側にしてみりゃ、辛い要求なんだろう。
278デフォルトの名無しさん:2006/09/10(日) 21:54:58
>>275
たかがオープンソース製品を宣伝してどうする。
どこかの企業が営利目的で作ったものじゃあるまいし。
279デフォルトの名無しさん:2006/09/10(日) 21:55:35
語尾にケケケ付ける奴はゲラ厨とか255とか呼ばれたドトネト厨にそっくり。
280デフォルトの名無しさん:2006/09/10(日) 21:58:09
>>277
equals()メソッドの実装よりめんどいな。


・a + b が保証されるなら b + aも保証されなければならない。
・a = b ならば、 b = aも保証されなければならない。
・a = b かつ b = c ならば、 a = cも保証されなければならない。

・a < c かつ b < c ならば、 a < c も保証されなければならない。
    :
    :
    :
    :
    etc...

281デフォルトの名無しさん:2006/09/10(日) 23:26:22
いやまあ、上の方のレスにあるようにStringの"+"は加法じゃないけどあまり違和感なく使えている
例があるから、そこまで気にする人は少ないかも。(順序関係はちゃんとしてくれないと困るが)
あ、そういや277の例はキャストをサポートすればいいのか > z = ((Zaiko) 1) + z;
せいぜいこの程度なら、俺はやっぱりオーバーロード要らないや。
282デフォルトの名無しさん:2006/09/10(日) 23:52:31
しかし、デクリメント演算子やインクリメント演算子まで勝手にオーバーロードされると
困った事態に陥る。

a++と++aとの違い、これらを組み合わせた優先順位をどうするか考えないといけないからな。

ある人がC++で書いたフーリエ変換のプログラムを見たことがあるんだが、
++と--演算子を、複素数平面のディリクレ核の「回転」に使っていてビックリしたよ。
そんなふうに勝手に演算子の定義を変えるから読みづらくて困る。

このように下手なオーバーロードはソースコードを読みにくくするからねえ。

283デフォルトの名無しさん:2006/09/11(月) 00:53:00
>>278 もう気が済んだだろう。この辺でいいんじゃないか。
284デフォルトの名無しさん:2006/09/11(月) 00:59:15
そんなにオーバーロード欲しいなら
もう実装されている言語でやればいいんじゃないの?

どうしてそんなにJavaがいいのかな?
ケツつけたいだけじゃ
怒るよー <#`A"> プンプン !
285デフォルトの名無しさん:2006/09/11(月) 01:07:39
>>251
曖昧でなく解析は出来ると思う。
C/C++ とかと違って、組み込みの単項*が無い分 解析はしやすいよね。

むしろ p+++q みたいのがあった場合、
仕様によっては p が ++ をオーバーロードしてるかしてないかで
式の評価が p + (++q) になったり (p++) + q になったりする可能性があるとか。
そっちの方が曖昧なんじゃないかと思ったりしたけど……
Javaの場合は字句構造の方で制限かかってるから p + (++q) とは読めないのか。
286デフォルトの名無しさん:2006/09/11(月) 01:12:36
>>277
> Zaiko z = Zaiko.new(0); z = z + 1;
いや、流石に Zaiko.new(0) は拙いだろう。
287デフォルトの名無しさん:2006/09/11(月) 01:24:21
>>282
> ++と--演算子を、複素数平面のディリクレ核の「回転」に使っていてビックリしたよ。

その手のを防止したいなら、前置++や後置++を直接定義できるようにするんじゃなくて、
二項+、に加えてincrementalValueかなんかを定義できるようにするとか。
288デフォルトの名無しさん:2006/09/11(月) 03:01:21
>>73
@NIs じゃなくて @Nls じゃね?
289デフォルトの名無しさん:2006/09/11(月) 06:20:38
>>287
一件一件そーゆートンデモな使い方に対する対策を考えるのは愚の極み。
最終的にオーバーロードの廃止に行き着くから。
290デフォルトの名無しさん:2006/09/11(月) 12:30:30
>>277
> 演算子オーバーロードは、使う側からするとどちらに転んでも構わないんだが。。。
> たとえば Zaiko z = Zaiko.new(0); z = z + 1; って書けるんだったら、z = 1 + z; も書きたくなるもんな。

その書き方はJava似はない。 Zaiko x = new Zaiko(0)が正解。

291デフォルトの名無しさん:2006/09/11(月) 12:31:43
>>284
どうせ、鬱憤晴らしをしたがってる
C#厨がJava叩きのネタの材料にしたがっているだけでしょ
292デフォルトの名無しさん:2006/09/11(月) 12:34:07
>>287
増加値を定義ってのがよくわからないけど。
ややこしくなって演算子のオーバーロードは無駄っていう方向に行き着いてしまうかね
293デフォルトの名無しさん:2006/09/11(月) 14:03:15
>>292
> ややこしくなって演算子のオーバーロードは無駄っていう方向に行き着いてしまうかね
無駄ってか、++はオーバーロードさせない、使えるようにはするって感じかな。
二項+とか、二項-が破壊的な動作してる場合の評価値は知ったこっちゃないって感じで。
294デフォルトの名無しさん:2006/09/11(月) 14:08:50
C丼.javaでもつくれば?
文法はC#、APIはJavaのAPI、JVMで動作。
295デフォルトの名無しさん:2006/09/11(月) 17:06:00
それはJavaとは異なる仕様だってことで
296デフォルトの名無しさん:2006/09/11(月) 22:49:31
まっenumにしろ演算子オーバーロードにしろ構造体にしろ
C#に先を越されたJava厨が、悔し紛れに言っているやせがまんだろう。
何も買えない貧乏人が「シンプルライフはすばらしい」と意地を
張っているのと同じ、何せ金持ちゲイツには勝てないからね。
もっとも言語としてはシンプルでも、世の中の複雑な事象に適用した時、
かえって複雑にならなければよいが...
まっどんな道具でも、使い方を誤れば逆効果だが、使い方を誤れば
危険だという理由で、板前から良く切れる包丁を取り上げるのはどうか。
297デフォルトの名無しさん:2006/09/11(月) 22:54:45
久々に伸びてると思ったら・・・・・宗教っぽいな・・・
298デフォルトの名無しさん:2006/09/11(月) 23:02:24
ケケケ
299デフォルトの名無しさん:2006/09/11(月) 23:15:46
次世代JavaやるくらいならC#でいいんじゃね???
300デフォルトの名無しさん:2006/09/11(月) 23:25:59
>>296
またいってるよこいつ。enumがC#やC++のenumと同じものだと
未だに勘違いしているのかね?

愚かなことだよ。
構造体が悔しい? アホだよそれも。@Structで十分。
301デフォルトの名無しさん:2006/09/11(月) 23:27:38
>>296
Googleの時価総額がM$に追いついて、
今、Googleの破壊戦略によって追いつめられているマイクロソフトを
経営していたビルゲイツを今頃引き合いに出してももう遅い。
Googleに有能な人材を引き抜かれてばかりのマイクロソフトには
もう魅力など何一つ無い。

302デフォルトの名無しさん:2006/09/11(月) 23:33:25
>>301
「Googleの時価総額がM$に追いついて」
ほんとなの?
とってもビックリ!
一応MSとGoogleは活躍する市場が違うけどね。
SUNとの訴訟後からMSは良い方に変わった印象を受けるけどな。
303デフォルトの名無しさん:2006/09/11(月) 23:44:18
>>286,290
あひゃ、恥ずかしい。Rubyとこんがらがっちまった。
304デフォルトの名無しさん:2006/09/12(火) 00:07:04
>>282
よく分からんが、++a が左回転で a++ が右回転?
305デフォルトの名無しさん:2006/09/12(火) 00:08:54
>>296
C#な案件皆無&ツールの使い方しか分からない無能MVPな状況を
如何にかしたらいいんじゃね?
306デフォルトの名無しさん:2006/09/12(火) 00:15:45
>>302
おいおい、Googleがどれだけ恐ろしい企業に成長したのか知らないのか。

M$とSunとの訴訟については、
あれはあたかもSunが負けたかのように見えたが、
結局Javaの人気は依然として高く、M$が社運を賭けて開発したというドトネトは
ろくに普及していない。
その事実を隠すために、今マイクロソフトの幹部は必死になって
適当な事ばかり言っている。
307デフォルトの名無しさん:2006/09/12(火) 00:16:47
>>304
あれは、a++が左回転、a--が右回転だったな。
極座標系なので
308デフォルトの名無しさん:2006/09/12(火) 00:17:37
今Googleは世界第2位の企業だぜ。
Web2.0に徹底的に力を入れて大成功を納めただけある
309デフォルトの名無しさん:2006/09/12(火) 00:29:24
Googleはいつもお世話になっているが、あんまり追いかけてなかったもんでね・・
ところで、MSの肩を持っているわけではないけど、
Java VMの仮想プラットフォーム化構想というべきか、
MSがその波におされて、今まで単一環境(Windows)に意地を張っていた
のをあきらめて、方向転換したように見えた。
MSがソフト販売とかではなくて、違うところに利益を求めるようになった。
310デフォルトの名無しさん:2006/09/12(火) 03:15:45
つうか、ゲイツは次々期かその次位にどっかの知事か大統領あたりを狙ってるのでMSなんかどうでも良いってのが本音
311デフォルトの名無しさん:2006/09/12(火) 07:54:52
クロージャ関連で

int() f = (){ throw RuntimeException(); } //匿名関数の型は null()
はエラーになるんじゃね? って話が出てるね。

http://weblogs.java.net/blog/forax/archive/2006/09/function_that_d_1.html
312デフォルトの名無しさん:2006/09/12(火) 09:43:48
>>310
それはホントか?とんでもねえ話だ。
大統領なんかにさせたらまずいぞ。
オープンソースを徹底的に叩きつぶそうと
企むに違いない。増税も平気でやるに違いない。
それに全米の大学などの教育機関でドトネトやC#を
むりやり押しつけられて、多くの学生は、授業料を払うこと=マイクロソフトにお金を払うこと
みたいにおかしなことになる。それに、アメリカでそんなことが起きると
日本にも影響がでる。アメリカでもやってもいいなら俺たちもやっても良いはずだと、
なって日本でドトネト製品を押しつけられる。最悪のシナリオだ。

大東呂野変わりに知事ねえ。もしゲイツがどこかの州知事になったらそこの州
には移住したくないね。高い税金払わされそうだし。
313デフォルトの名無しさん:2006/09/12(火) 10:21:49
ゲイツが出馬したら、世界中からG13型トラクターの注文が殺到する
314デフォルトの名無しさん:2006/09/12(火) 16:17:29
MS-DOS まきかえし記念!!
315デフォルトの名無しさん:2006/09/12(火) 19:14:42
>>312
馬鹿だろ、最近はもう金じゃなくて名誉が欲しいって言ってる
シュワ知事と一緒で金持ちが政治家をやれば汚職は無くなるって考えだと思った
316デフォルトの名無しさん:2006/09/12(火) 19:35:27
ここにいる人たちは、Javaに詳しくても、世の中の事は詳しくないみたい・・
317デフォルトの名無しさん:2006/09/12(火) 21:59:50
Javaに詳しい人っているか?
C#マスターが多数かと
318デフォルトの名無しさん:2006/09/12(火) 22:00:57
ここは一体なんのスレなのかと
319デフォルトの名無しさん:2006/09/12(火) 22:06:22
C#好きが未来のjavaを妄想するスレ
320デフォルトの名無しさん:2006/09/12(火) 22:08:06
C#で実験させて、上手そうなのをJavaの次世代で実装すること。
C#マスターはそれに嫉妬している。
指くわえて恨めしいだけ・・
321デフォルトの名無しさん:2006/09/12(火) 22:12:47
C#マスターべイターは多数いるな
322デフォルトの名無しさん:2006/09/12(火) 22:20:31
演算子オーヴァーロードは、激しい賛否両論だな
デブとデブのシーソーだ
323デフォルトの名無しさん:2006/09/12(火) 22:32:21
>>315
> >>312
> 馬鹿だろ、最近はもう金じゃなくて名誉が欲しいって言ってる
> シュワ知事と一緒で金持ちが政治家をやれば汚職は無くなるって考えだと思った

過去の今までの経歴と行為からして名誉を得るなんてそう簡単な
ものじゃないと思うが。汚職はなくなるといっても、ビルゲイツ本人が
やってることが汚職に近いからな。

ビルゲイツは今、今まで独占によって得た金を使って
ゴッホの日記やレオナルド・ダ・ヴィンチの手稿を買い取って
さらなる新たな独占を得ようとしているのだからな。
あのダ・ヴィンチ・コードもビルゲイツが関わっている。

ああいう資料をビルゲイツが買い取り保管することが本当に名誉になるのか疑問だ。
あちこちに寄付をしているようだが。自分の年収から差し引いた寄付の金額の割合は
他の人間と比べると大したことがない。そもそも、ビルゲイツは自分の年収の10%も寄付していないのだ。
金が有る癖に寄付金もケチる。名誉を得るつもりがあるのか疑問だ。
ジーンズを履いて反社会的な行動をとるのが好きだったビルゲイツが名誉を欲しがっているのは、
常に自分が一番でないと気が済まないという子どもの頃からの性格から来ているものだろう。


324デフォルトの名無しさん:2006/09/12(火) 22:33:28
>>316
じゃあ、Javaに関連して世の中に詳しいことを
証明する語りをしてくれ。

ビルゲイツの寄付やゴッホやダヴィンチの資料を
買い取ったことについてどう思っているのかお前から聞きたい。
325デフォルトの名無しさん:2006/09/12(火) 22:35:32
>>320
> C#で実験させて、上手そうなのをJavaの次世代で実装すること。
> C#マスターはそれに嫉妬している。
> 指くわえて恨めしいだけ・・

なるほど。しかし残酷だな。
ジェームズ・ゴスリングはC#が出たとき、頭が痛くなりショックで倒れてしまった
というが、今じゃ逆にC#をうまく利用しているものだな。

2chが出た後で、2chに不満を持っていた西和彦が2chに対抗意識を燃やして1chを作ったが、
全然流行らなかった結果を招いたように。
326デフォルトの名無しさん:2006/09/12(火) 22:36:11
>>323
お前は自分の年収の10%以上を寄付しているのか?
まずはそれから聞こうか
327デフォルトの名無しさん:2006/09/12(火) 22:36:35
>>322
昔からすでに語られて結論が出ているのに
未だにしつこく拘る奴がいるってことは、
演算子オーバーロードに潜む副作用や罠を
未だに解っていない奴が多いって事だよ。
328デフォルトの名無しさん:2006/09/12(火) 22:36:54
>>326
ああ、親に寄付している。
329デフォルトの名無しさん:2006/09/12(火) 22:53:37
教えてやるけど、あちこちでペラペラしゃべるなよ。

ビルゲイツが寄付したりゴッホやダヴィンチの資料を
買い取ってるのは、次世代Javaを作るためだ。

ゲイツはMSを裏切ってSunに寝返るつもりで
実はJavaをのっとるつもりなんだよ。

やつはBASIC大好きだからな。
330デフォルトの名無しさん:2006/09/12(火) 22:56:35
まあBigIntegerとかそれ系にJavaが純正で対応するのはありだな
331デフォルトの名無しさん:2006/09/12(火) 23:38:04
>>329
> 教えてやるけど、あちこちでペラペラしゃべるなよ。
> ビルゲイツが寄付したりゴッホやダヴィンチの資料を
> 買い取ってるのは、次世代Javaを作るためだ。
> ゲイツはMSを裏切ってSunに寝返るつもりで
> 実はJavaをのっとるつもりなんだよ。
> やつはBASIC大好きだからな。

つまんねーセンス悪ー。お前4年前と比べ煽り能力落ちたなw
お前も歳かw
332デフォルトの名無しさん:2006/09/12(火) 23:45:28
>>331
お前、4年もここに居るのか。
ところで、少しはC#でも使えるようになったのか?
どうでもいいが、今からRubyやっとけ。
333デフォルトの名無しさん:2006/09/13(水) 00:28:13
また演技かw
334デフォルトの名無しさん:2006/09/13(水) 09:25:53
closure の続報。
http://gafter.blogspot.com/2006/09/closures-for-java-version-01.html

新しいのは
13. Definite assignment
14. Exception type parameters
15. Implementing a Function Type

12. の省略構文が statement になってる。expression じゃないので、
ブロックの終わりに セミコロンが要らない代わりに式としては使えない。

13. は、クロージャの中で外側の final で修飾された変数には代入できないらしい。
DA/DU statusってのが何か良くわからんけど。

15 で、関数型の下位型を作る構文が提案されてるけど、
その影響で新しい予約語が入るかもしれないってさ。
class MyBlock implements void(){
 public void do(){ .... } //この例では、"do"が予約語
}
335デフォルトの名無しさん:2006/09/13(水) 09:37:05
なんとなくダサダサになってきた悪寒
336デフォルトの名無しさん:2006/09/13(水) 10:24:37
>>334
他にも、 LocalFunctionDeclarationStatement が消えたり、
Closure の記法から FormalParameters : Expression3 の記法が消えた代わりに、
return しなくても良くなった。
(旧) int(int) plus2 = (int x){ return x+2; };
(新) int(int) plus2 = (int x){ x+2; }

4. The type of a closure を見ると、return文 で返される型を
conditional operator のルールを使って 戻り型を決めるって文章が削除されて、
クロージャが 式で終わっていれば、その式の型がクロージャの戻り型になるってなってるから、
return しなくて良くなったというよりも、むしろ return しちゃダメなのかも?

9. Referencing names from the enclosing scope の note の内容も変わってるね。
クロージャから参照されるローカル変数の寿命は宣言したブロックより長くなるって。

10. Non-local control flow から NamedReturnStatement の構文が消えてる。
337デフォルトの名無しさん:2006/09/13(水) 10:47:46
>>334
もいっこ。

>>311 が言ってるのと関係するかは判らんが、
int を返すクロージャを Integer を返すメソッドを持つ interfaceに変換したり、
逆に Integer を返すクロージャを int を返すメソッドを持つ interface に変換
って事も考慮中、みたい。
338デフォルトの名無しさん:2006/09/13(水) 12:18:18
>>337
と、いうことはクロージャってのは特定のインタフェースを表現するシンタックスシュガーって
ことだね。

アノテーション型のように
339デフォルトの名無しさん:2006/09/13(水) 13:08:09
>>338
> クロージャってのは特定のインタフェースを表現するシンタックスシュガー
それは全然違うと思うが。

annotation も interface の構文糖じゃないし。
340デフォルトの名無しさん:2006/09/13(水) 13:47:35
ちょっと治が売ってか。

@interface と書いてアノテーションを宣言するが、
実際には Annitationインタフェースを継承したのがあのてーしょん型に
なるというやつ
341デフォルトの名無しさん:2006/09/13(水) 14:05:43
>>340
注釈型の定義は構文糖じゃないぞ。

手動で java.lang.annotation.Annotation を extends する interface を書いても注釈型にならん。
342デフォルトの名無しさん:2006/09/13(水) 16:32:24
それでもinterfaceに@をつければアノテーション型になる
343デフォルトの名無しさん:2006/09/13(水) 17:00:53
それはシンタックスシュガーとは言わない
344デフォルトの名無しさん:2006/09/14(木) 01:19:04
>>343でFA。
345デフォルトの名無しさん:2006/09/15(金) 10:00:30
closure の続報。
http://gafter.blogspot.com/2006/09/nominal-closures-for-java-version-02.html

関数型(function type) の記述が削除された。
synchronized と言う限定子を与えると、従来の匿名クラスのように
取り囲まれたメソッドの final をつけた変数しか触れない。
常に中途完了する closure の戻り型は null の代わりに Unreachable を使うようになった。
346デフォルトの名無しさん:2006/09/15(金) 15:52:36
jdk6ってb98のまま二週間放置されてるぜ。
いつb99でんだ?
347デフォルトの名無しさん:2006/09/15(金) 23:14:46
10月に100かつ正式版とするために引っ張ってるんだろ
348デフォルトの名無しさん:2006/09/15(金) 23:19:18
>345
ClosureConversionが発生しないときどーすんだろね、これ。
 Class c=(int x){ x+2 }.getClass( );
とか。
349デフォルトの名無しさん:2006/09/16(土) 01:08:11
>>346
定期ビルドは終了の模様。
次にDL出来るのはリリース候補らしい。
350デフォルトの名無しさん:2006/09/16(土) 06:02:07
>>348
2. The type of a closure のところに
> It is a compile-time error if a closure is not subject to a closure conversion.

とか書いてある……
351デフォルトの名無しさん:2006/09/16(土) 07:13:30
>>345
関数型無いのに Unreachable 使う必要あるのかね?

関数型があるなら
Unreachable() func = (){ throw new Exception(); };
int() func2 = func;
Object() func3 = func;
ってできるから必要があるのは分かるけど、

関数型無いと covariant return type を考慮しても
Unreachable は 全ての型の下位型と規定されているので
interface F{ Unreachable func(); }
interface F2 extends Func{ int func(); }
interface F3 extends Func{ Object func(); }
とかやっても、 F2 はプリミティブ型なので covariant return types
の対象にならないからコンパイル時にエラー
F3 は Object は Unreachableの上位型なのでコンパイル時にエラー
352デフォルトの名無しさん:2006/09/16(土) 08:32:45
>>351
interface F<R>{ R func(); }

F<Unreachable> f = (){ throw new RuntimeException(); }
F<Object> f2 = (F<Object>)(F)f;

とかしろって事なんだよ。 未検査警告出るけど。
後は、戻り値が Unreachable だと常に中途完了する事がコンパイル時にわかるとか。
今気付いたけど >>345 のリンク先、8. が二つあるね。
353デフォルトの名無しさん:2006/09/16(土) 11:05:22
>>349
http://blogs.sun.com/mr/entry/java_se_6_schedule_update
とか読むと、10月の終わりに release candidate が出て、
11月の最終週が感謝祭の休みなので、
正式版が 12月の第一週とは書いてあるけど、
weekly build が終わりとは書いてないような。

とか言ってる間に b99 出てる……
354デフォルトの名無しさん:2006/09/18(月) 13:37:06
SwingがODFに対応するのはいつごろですか?
355デフォルトの名無しさん:2006/09/18(月) 14:34:39
クロージャによる関数型は
enumみたいにjava.lang.Enumクラスのシンタックスシュガー
みたいな感じになるのかな?
実際には匿名クラスを実装したオブジェクトになってるだけとか。
356デフォルトの名無しさん:2006/09/18(月) 15:48:32
>>355
まだ検討中の段階だろうから、最終的に どうなるかは誰にも判らんと思うぞ。

一番最近の案っぽい >>345 のリンク先のクロージャは、
匿名クラスのシンタックスシュガーになりつつあるようにも見えるけど。
357デフォルトの名無しさん:2006/09/18(月) 15:49:53
> enumみたいにjava.lang.Enumクラスのシンタックスシュガー
これはシンタックスシュガーって言えるのかね?
言語規定で class MyEnum extends Enum<MyEnum>{} はできないって決められてる。
>>338 みたいにアノテーションが interface のシンタックスシュガーだって言うよりはマシだと思うけど。

> 匿名クラスを実装したオブジェクト
日本語かJavaかどっちかの勉強が必要だね。
358デフォルトの名無しさん:2006/09/18(月) 16:30:07
もうJavaの時代はおわり
359デフォルトの名無しさん:2006/09/18(月) 18:17:12
そして永遠にやってこない.NETの時代
360デフォルトの名無しさん:2006/09/18(月) 19:30:20
永遠にやってこないドットネット
361デフォルトの名無しさん:2006/09/18(月) 19:34:50
>>359-360
ジャヴァー乙

.NETが日本で最も普及しているプログラム言語
http://pc8.2ch.net/test/read.cgi/tech/1156986942/
362デフォルトの名無しさん:2006/09/18(月) 23:32:56
>>361
リンク先のおっちゃん、ブッシュとクリントン足したような顔
363デフォルトの名無しさん:2006/09/21(木) 03:39:36
>>361
お前必死すぎ。そのスレも見事に論破されてるし
364デフォルトの名無しさん:2006/09/21(木) 20:19:16
Java6で実際使いそうなのはStAXとタスクトレイくらいかな。
特にStAXはシナリオ駆動型のプログラムが作りやすそうで楽しみ。
Java6の拡張は地味だなぁ・・・
365デフォルトの名無しさん:2006/09/21(木) 20:47:05
偶数バージョンは小さく、奇数バージョンは大きく変える方針じゃなかったっけ?
366デフォルトの名無しさん:2006/09/21(木) 21:05:04
J2SE1.3はそんなに大きく変わったか?
367デフォルトの名無しさん:2006/09/21(木) 21:22:28
これからの話だよ
368デフォルトの名無しさん:2006/09/21(木) 22:07:52
ベリファイ処理の高速化・エスケープ解析の導入とか、
VMレベルの変更が多いから確かに地味なのかもなぁ
369デフォルトの名無しさん:2006/09/21(木) 22:55:20
>VMレベルの変更が多い
1.4>1.5の時に比べて多いか?
むしろapiの強化がメインな気がするが。。。
370デフォルトの名無しさん:2006/09/21(木) 23:10:04
つか、プロセス管理は魅力的。


並列処理つかグリッドコンピューティング分野でも
さらなる強化が施されるのかな?
371デフォルトの名無しさん:2006/09/22(金) 01:33:47
>>366
かなり大掛かりな改良はあったよ
おかげで業務で使えるようになったのは1.3からでしょ
372デフォルトの名無しさん:2006/09/22(金) 12:40:55
AWTの糞仕様というかバグを大幅に直したのも1.3だね
373デフォルトの名無しさん:2006/09/22(金) 12:56:55
>>372 1.1から1.2ならそれで分かるけど、どういうこと?
374デフォルトの名無しさん:2006/09/22(金) 13:33:00
1.3からはSwingが追加されたし
375デフォルトの名無しさん:2006/09/22(金) 13:33:13
Java Sound APIも追加された
376デフォルトの名無しさん:2006/09/22(金) 13:38:30
1.3での改善点、新機能

個人的順位

1・hotspotVM 搭載
2・JavaSound 搭載
3・シリアライズの大幅な改良
4・Swingの改良
5・JNDI 搭載
6・AWTの改良
7・ネットワークの改良
8・マルチモニタ対応

Swingが実用的になったのは1.3からで、わりと業務アプリに使われるようになった。
ずっとSwing触ってきた身としては1.4.1時より個人的にはインパクトが大きい。

個人的には1.3がいわゆるJavaのひとつの完成形とみている。
この後は速度や機能が現実的な実装中心になっていく。
言い方は悪いが1.2まではRC品質というか。
377デフォルトの名無しさん:2006/09/22(金) 14:07:24
何というか、この程度なのか・・
378デフォルトの名無しさん:2006/09/22(金) 14:42:03
申し訳ないが、世間一般では1.3でなくて、
1.2がJava(やご指摘のAWT)が大きく変わったんじゃないか?
それを示すのに、jdk1.2 でなくて j2seとか名乗ってたと思うけど。
379デフォルトの名無しさん:2006/09/22(金) 15:03:25
1.2なのにマーケティング的な観点でJava2とか言ってたしな。
終わってるよ。あの発想。
380デフォルトの名無しさん:2006/09/22(金) 15:10:47
>>377
1.4よりインパクトあるんじゃね?
機能的には1.2が一番インパクトはあると思うが、速度低下メモリ使用量拡大といいことがなかった

>>379
Sunのメジャーバージョンアップは昔から0.1単位
だが、1.2だと大幅なバージョンアップに見えないので「2」をつけた

1.3からJ2SE,J2EE,J2MEの3種に明確にわけたというのは大きいかも
381デフォルトの名無しさん:2006/09/22(金) 15:48:42
>>380 なんだね?こだわりがあるようだが、君は関係者なのかぁ
382デフォルトの名無しさん:2006/09/22(金) 17:38:51
ここにいるやつはみんなJavaさわってる関係者だろ
383デフォルトの名無しさん:2006/09/22(金) 20:16:02
こう考えるんだ。1.4.2が使われすぎてて過去の印象が薄い。
384デフォルトの名無しさん:2006/09/22(金) 21:15:51
1.2かぁ
Swingアプリの動きがマイナーバージョンで違ってたりして
あんまりいい印象ないぞ
たとえばウィンドウの表示位置に一時マイナス値を指定可能な時があった
Xウィンドウユーザならお馴染みの方法だね
だがあっさり次のマイナーアップでこの仕様は取り消されてしまった
おまけに1.3にしたら警告を吐くようになり
1.4ではついに画面すら出なくなったのだ
Swingの互換性なんてこんなもんだ
385デフォルトの名無しさん:2006/09/22(金) 21:18:39
Javaに限らず、米国産のモノなんてそんなもんだ。
386デフォルトの名無しさん:2006/09/22(金) 21:20:03
Java7は中止して全OSの互換性向上に予算を費やした方がいいな
387デフォルトの名無しさん:2006/09/22(金) 22:12:25
みんなそろそろ次世代に目を戻そうぜww

とはいえ、b99以降でてこんし、Dolphinもビルドないしなぁ
388デフォルトの名無しさん:2006/09/23(土) 00:12:47
俺は1つのVMで複プロセス立ち上がるように改良されるのをずっと待ってるんだが…。
その時こそ、真のJavaの時代が来ると言える。

複プロセス実行可能ってJava7で採用されたんだったっけ?没だっけ?
389デフォルトの名無しさん:2006/09/23(土) 00:58:00
>>388
JSR-277と291がらみの話?
390デフォルトの名無しさん:2006/09/23(土) 03:24:02
?
ヒープ共有のことだろ?
391デフォルトの名無しさん:2006/09/23(土) 03:26:16
てかヒープ共有は逆か。
複数のプロセスでVMを共有できるってやつか
392デフォルトの名無しさん:2006/09/23(土) 04:01:54
>>376
JDBCが標準で追加されたことも重要だったりする。
Servletが流行りだしたのは1.3が出る頃だったからね
393デフォルトの名無しさん:2006/09/23(土) 04:05:07
>>380
1,4よりはインパクトあるね確かにに。
1,4はassertが追加されたとか、メソッドの
オーバーライドで戻り値の型が異なってもかまわないとか。
大した変化はなくAPIが追加されたくらいだね。
XMLとか
394デフォルトの名無しさん:2006/09/23(土) 04:06:05
>>381
昔からJavaをやっていた人間ならそれくらい知っているって。
Javaという言語の理想に惹かれて、早くからJavaに
触れた人間ならとくに。
395デフォルトの名無しさん:2006/09/23(土) 04:07:26
>>383
新しいものが出ると、過去のどうでもいいものは
忘れていくんだよね。
脳みそがそう処理させてくれる。
余計なことは忘れろって、脳みそが指示している。

忘れるべきでないと思っている人は、本を書いている人とかだね
396デフォルトの名無しさん:2006/09/23(土) 04:07:54
>>380
そのことを、Wikipediaの「Java言語」に書き加えておくと、なおよいと思うよ
397デフォルトの名無しさん:2006/09/23(土) 04:09:27
>>384
それも1.5から改善されたろ。

しかし1.2からプログラミングしている香具師は、
import宣言に*をつける癖をつけているとろくなことが
無いんだな。
Java Pressの何月号かにそれ系の注意事項が載っていたな。
1.5から一気に5.0にアップグレードすると動かないプログラムでの
対策とか。
398デフォルトの名無しさん:2006/09/23(土) 04:10:15
>>388
それはJava6で実装されるのでは?
399デフォルトの名無しさん:2006/09/23(土) 04:13:02
Javaで本格的に組み込み家電プログラミングできる時代は
まだやってこないのかのう・・・
400デフォルトの名無しさん:2006/09/23(土) 07:35:23
>>395
おまえ、さっきからいいことばっかり言ってるな。
おれには、どれが誰の発言か分かるぞ!
401デフォルトの名無しさん:2006/09/23(土) 14:16:13
>>398
されないだろ
402デフォルトの名無しさん:2006/09/23(土) 15:23:28
403デフォルトの名無しさん:2006/09/23(土) 17:35:13
JSR 121: Application Isolation API Specification
これか?
404デフォルトの名無しさん:2006/09/23(土) 21:11:10
>>397
1.5から5.0?

>>393
1.4は現実的な実装がポイント

大幅なVMの高速化、積極的なアクセラレーションを意識したAPI群
クライアントサイドアプリの改善、JAXP標準装備、印刷サービス追加、NewIO追加

速度を意識したのがたくさんでてるよね
5.0では並列APIと言語仕様以外は新しい機能はあまりない

>>402
「J2SE 1.5では、Javaプログラミングの簡易化に焦点を当てている」

新構文とかでバグ減るし開発効率アップでいいことだらけなんだが
APIマニュアル読めない難民が続出してなかなか移行が進んでないというのが面白い
405デフォルトの名無しさん:2006/09/23(土) 21:42:32
なかなか知っている。それで、次は何を期待するのかな。
ところで、APIマニュアルって何のこと?
>>404
406デフォルトの名無しさん:2006/09/23(土) 21:48:02
>>404だけに、SUNのAPIリファレンスがダウンロードできなかったんだろうな。
407デフォルトの名無しさん:2006/09/23(土) 21:48:44
>>404
1.2から5.0の間違いだった
408デフォルトの名無しさん:2006/09/23(土) 23:10:45
>>405
>>404じゃないが、Generics使ったライブラリのAPIドキュメントのことじゃないかな
それだったら、読めない人が出てもおかしくはない、かも
409デフォルトの名無しさん:2006/09/23(土) 23:20:26
APIとマニュアルという事か。
確かに5.0を解説した本はそれほど多くないからな。
410デフォルトの名無しさん:2006/09/23(土) 23:23:15
JavaWorldオンラインにいい入門ページがあるよ。
確かにGenericsと並行ライブラリだけって印象だね。
Java6はJVM弄るらしいし、Java7は確か命令も増やすんだよね。
411デフォルトの名無しさん:2006/09/23(土) 23:35:13
>>409
新構文2年以上雑誌やネット等でやってきたのに少ないとは
412デフォルトの名無しさん:2006/09/24(日) 00:29:11
英語読めれば本家に行くしさ、
ネットだと知ったか振りの解説じゃないか?

しかし、無料のネットならそれでもまあ調べてみようとするのも分かるが、
有料のくせして質が悪い記事しかない雑誌じゃ・・

それも「雑誌」かよ・・
413デフォルトの名無しさん:2006/09/24(日) 00:34:39
もう雑誌記事もブログ・HPも同じようなもんだし、記者の質も落ちたしな・・
その程度の情報を詰め込んでも、単行本一冊(ブックオフで500円のとき)
より高いんじゃあんまり買ってまで見る価値ないと思う。
414デフォルトの名無しさん:2006/09/24(日) 00:36:09
>>410
> Java7は確か命令も増やすんだよね。
invokedynamicのことか。あれって、Pnutsの戸松さんがブログで反対表明
してたけど、どうなんだろうね。なんでも、invokedynamicだけあっても、
あまり性能は改善しないだろうとか。
ttp://d.hatena.ne.jp/tomatsu/20060329
415デフォルトの名無しさん:2006/09/24(日) 00:36:16
↓じゃあかんの?「雑誌」の無料の散文だが十分だろ
ttp://www.javaworld.jp/technology_and_programming/-/18161.html
416デフォルトの名無しさん:2006/09/24(日) 00:46:29
>>415
そういうことではないと思うよ。
雑誌一般の話じゃないか?
417デフォルトの名無しさん:2006/09/24(日) 00:50:12
>>414 その人が影響力あるのはわかるが、文句が言いたいなら、JCPに参加してそこでやるべきだと思うが。
418デフォルトの名無しさん:2006/09/24(日) 04:33:00
1.4も5も、6に比べれば大進化
6はぶっちゃけ中身なさすぎ
419デフォルトの名無しさん:2006/09/24(日) 08:46:15
だから5が出る頃に、これから言語仕様を変えるのは
奇数バージョンにするって言ってたじゃん
18ヶ月毎に新しいバージョンを出していく計画だから
36ヶ月毎に言語仕様が変わるくらいならみんなついて
行けるだろうと考えたってわけだよ
420デフォルトの名無しさん:2006/09/24(日) 11:47:37
6の目玉はDesktopとConsoleくらいしかないな


421デフォルトの名無しさん:2006/09/24(日) 11:59:40
>>28
比較のStringの生成、どっちが計算コストが高いと思っているんだ??
422デフォルトの名無しさん:2006/09/24(日) 14:05:38
比較とStringの生成?
後者ではないの?
423デフォルトの名無しさん:2006/09/24(日) 14:42:11
>>409
だね。
アノテーションんとGenericsのテクニックを把握するために

Effective JavaのJava5版が欲しい。
あれでEnumの説明も省かれるだろうし。
Genericsのテクニックがいくらかでるはず。ゴスリングは
新規にクラスを作るときはGenerics対応にせよって逝っているし。
424デフォルトの名無しさん:2006/09/24(日) 14:42:52
>>413
それは日本だけの場合だよね。
英語なら、さがせば良い情報が
何十倍にも膨らむと思う
425デフォルトの名無しさん:2006/09/24(日) 14:43:49
>>415
それだとアノテーション型の使い道/自作、Genericsクラス作成のテクニックやノウハウが載っていないんだよな
426デフォルトの名無しさん:2006/09/24(日) 14:45:04
>>418
5への進化は今までの進化とくらべたら凄まじいものがあると思うぞ
427デフォルトの名無しさん:2006/09/24(日) 14:48:54
>>420
JapansesEmperorCalendarがあるだろw
428デフォルトの名無しさん:2006/09/24(日) 14:59:25
>>423
> Effective JavaのJava5版

出るらしいよ。来年中ってことなので、まだ結構待たなきゃならんみたいだけど
ttp://journal.mycom.co.jp/articles/2006/05/18/javaone2/
429デフォルトの名無しさん:2006/09/24(日) 14:59:57
>>427
マジで皇紀入ったの?
430デフォルトの名無しさん:2006/09/24(日) 15:37:49
>>430
既にスナップショットにも入ってんじゃないの?
誰か使ってみて

java.netのjdk-6のページって全然更新されないね
431デフォルトの名無しさん:2006/09/24(日) 15:38:27
>>429
皇紀じゃないみたいよ
明治、大正、昭和、平成だけ扱えるカレンダーw
432デフォルトの名無しさん:2006/09/24(日) 15:40:44
>>427
Formatterに実装されてないんじゃなかった?
ならいみねぇよ
433デフォルトの名無しさん:2006/09/24(日) 15:46:15
>>425
sunの本ではannotationを自作で局所的に使用するのは進めてないよ
どっちかてとライブラリーとかでサポートされるイメージでしょ

genericsは確かにデザイン的な教科書が欲しいところ
434デフォルトの名無しさん:2006/09/24(日) 16:08:22
>>431
どうせなら全部やって欲しいよな
435デフォルトの名無しさん:2006/09/24(日) 18:47:01
>>428
だからそれがJava5版の元ネタソースだろ。

しかし、日本語版がでるのを考慮するとさらに時間がかかるのか。

英語でも良いのでネットでこういうテクニック情報手に入らないかな?
436デフォルトの名無しさん:2006/09/24(日) 18:50:38
>>434
そんなに使うこと有るのか?
どうせ過去の年号なんて一年二年ずれてたり、
鎌倉幕府ができたとしが1192年かと思ったら全然違う年に
できたことがわかって教科書もかわったし「いい国作ろう鎌倉幕府」
なんて暗記もまったく役に立たなくなった。

しかもCalendarクラスで扱えるのは1960年くらいからだしな。
long型の範囲内でしか使えないんだし、情報に正確さが
求められていない時代の何千年前の過去のデータなんていらんいらん。

今あるJavaプログラムが1000年後にあるかどうかっていうとそりゃ疑問だが
437デフォルトの名無しさん:2006/09/24(日) 18:59:03
Javaって2038年問題は対応済みだったっけ?
438デフォルトの名無しさん:2006/09/24(日) 19:16:53
Javaのユニックスエポックの実装は符号付64bitだよ。
それって32bit機のC言語の実装に依存する問題じゃなかったか。
439デフォルトの名無しさん:2006/09/24(日) 19:37:12
BREWが対応していないことだけはわかるんだが
Javaはどうだったろう
440デフォルトの名無しさん:2006/09/24(日) 19:37:22
>>438
じゃあ、大丈夫か
441デフォルトの名無しさん:2006/09/24(日) 19:42:30
>>436
おまえ、早く消えた方がいいよ。
442デフォルトの名無しさん:2006/09/24(日) 19:44:37
ほんとかな
それってJavaが動作するUnix系OSの実装に結局依存するんじゃ?
とはいっても昨今のは大丈夫だろうけど
2038年には隠居してるからいいか
443デフォルトの名無しさん:2006/09/24(日) 19:46:31
OSそのものの実装によるってのはあるかもな。
でもそれならOSが対応してれば自動的にJavaも対応済みって話だ。
迂回コードを書いてレスポンス落とすよりはそっちを待とう。
444デフォルトの名無しさん:2006/09/24(日) 20:12:42
予定日とかで2038年以降を設定したらアウト?
445デフォルトの名無しさん:2006/09/24(日) 20:18:53
BSD系のマニュアル見るとgettimeofdayシステムコールが使う
構造体の定義はlongになってるからこれならほぼ永久に問題ない

struct timeval {
long tv_sec; /* seconds since Jan. 1, 1970 */
long tv_usec; /* and microseconds */
};

しかし実際のヘッダーはこう
これだとアウトだな

struct timeval {
int32_t tv_sec; /* seconds */
int32_t tv_usec; /* and microseconds */
};
446デフォルトの名無しさん:2006/09/24(日) 20:22:53
結局64bit系OSに早く移行しようということだな
2038年特需に関われる香具師は楽しみだな
また正月からホテルに缶詰か
447デフォルトの名無しさん:2006/09/24(日) 20:53:58
>>441
なんで切れてんの?
448デフォルトの名無しさん:2006/09/24(日) 20:59:56
JapaneseImperialCalendar の間違いだなエンペラーじゃなくてインペリアル

しかしさ、和暦って使い物にならない点がひとつある。

今の平成天皇が死んだらまた変わるんだろ。
面倒くさくてやってられない。官公庁向けだろうから使わないけどさw
449デフォルトの名無しさん:2006/09/24(日) 21:09:10
旧暦もめんどうだな。閏月って特定の法則があるんじゃなくて、神社が決めるんだろ。
450デフォルトの名無しさん:2006/09/24(日) 21:15:43
>>448
たしかにな
今上天皇が崩御されたらシステム対応大変そうだ
Java VMはたぶん上げないまま放置されてるシステムだろうから
その時Sunが新年号を旧VMのために対応してくれるかどうか
451デフォルトの名無しさん:2006/09/24(日) 21:18:19
神社の気まぐれで決まるようなものをコンピュータに
採り入れるのは危険だな。
452デフォルトの名無しさん:2006/09/24(日) 21:18:57
>>450
VMだけアップデートすれば自動的に年号がかわるシステムになってるとかだったりしてな
453デフォルトの名無しさん:2006/09/24(日) 22:19:20
それをいったら西暦だって宗教のきまぐれだろう
454デフォルトの名無しさん:2006/09/24(日) 22:32:02
てかそういうのって普通政府が用意するもんじゃねーの?
IPAの未踏とかに出すより余程低予算で有意義なプロジェクトだろ。
455デフォルトの名無しさん:2006/09/24(日) 23:09:22
政府に介入されたくないな
456デフォルトの名無しさん:2006/09/24(日) 23:50:08
>>448
お隠れになったって書かないと朝鮮人認定されるぞ
457デフォルトの名無しさん:2006/09/24(日) 23:53:44
>>456
ゆとり教育で教えなくなったから、日本人と区別がつきにくくなった。
458デフォルトの名無しさん:2006/09/24(日) 23:55:09
とくに中国擁護には介入されたくないとおれは思う
459デフォルトの名無しさん:2006/09/24(日) 23:55:31
>>456
マジで? 知らなかった
460デフォルトの名無しさん:2006/09/25(月) 00:02:13
>>457
教えてたのっていつの時代の話?
俺、そういう表現があること自体、初めて知ったよ。。。
461デフォルトの名無しさん:2006/09/25(月) 00:38:48
お隠れになったを知らない?
俺も習った覚えはないが知ってるけどな
462デフォルトの名無しさん:2006/09/25(月) 00:47:05
何のスレだったっけ。
463デフォルトの名無しさん:2006/09/25(月) 00:56:43
>>462
次世代javaのお隠れスレ
464デフォルトの名無しさん:2006/09/25(月) 00:59:37
>>456
それを言ったらおまえ、今上天皇が「平成天皇」になるのは御隠れになった
あとなんだが....
465デフォルトの名無しさん:2006/09/25(月) 01:16:57
こういう流れになるとはなぁ

皇族に男子ご誕生万歳!!

そこで「マンセーじゃねーか?」などぬかす奴、ちょっと裏まで来てもらおうか
466デフォルトの名無しさん:2006/09/25(月) 01:19:04
昔は昭和天皇が今上天皇だと思ってたよ
467デフォルトの名無しさん:2006/09/25(月) 01:23:46
468デフォルトの名無しさん:2006/09/25(月) 01:52:10
今上ってのは現在在位中の天皇という意味だからほんとは今上天皇ってのも冗語だな。
469デフォルトの名無しさん:2006/09/25(月) 03:32:45
本当は「天皇陛下がお隠れあそばされましたら」だ臣民ども
470デフォルトの名無しさん:2006/09/25(月) 05:49:49
ちゃんとした言葉使わないと朝鮮人だよばわりされるっていっても

天皇家って1000年も前から朝鮮人の血がつながってるんだろ。
1000年前に半島から渡ってきた女の血を引き継いでいるのが今の天皇家なんだし。

471デフォルトの名無しさん:2006/09/25(月) 09:50:45
伊邪那岐神 (いざなきのかみ) と伊邪那美神 (いざなみのかみ) の子孫だよ
472デフォルトの名無しさん:2006/09/25(月) 10:04:53
いざよいの間違いでは?
473デフォルトの名無しさん:2006/09/25(月) 19:11:30
なんかもう、なんだこのスレ
474デフォルトの名無しさん:2006/09/25(月) 19:33:54
>>473
[mustang] 次世代天皇の動向 3 [dolphin]
475デフォルトの名無しさん:2006/09/25(月) 19:34:07
2ちゃんらしくていいじゃないか
476デフォルトの名無しさん:2006/09/25(月) 20:44:39
珍しくマンセーがこなかったな。
いいことだ。
個人的なことで恐縮だが、シナとかチョンはなんか臭いからな。
477デフォルトの名無しさん:2006/09/25(月) 20:50:24
どうでもいいのではよリリースしてほしい
478デフォルトの名無しさん:2006/09/25(月) 21:08:59
>>477 ソースは?
479デフォルトの名無しさん:2006/09/25(月) 21:21:26
480デフォルトの名無しさん:2006/09/25(月) 21:22:13
481デフォルトの名無しさん:2006/09/25(月) 23:49:53
そうか、JDK6の目玉は和暦対応か
482デフォルトの名無しさん:2006/09/25(月) 23:54:04
>>481
お前!タだろ、そこ
台無しだよ、もうorz
483デフォルトの名無しさん:2006/09/26(火) 00:20:38
484デフォルトの名無しさん:2006/09/26(火) 02:37:16
>>476
ああ、中国人や朝鮮半島人三国人はウザイ。

だから今後も俺は阿部・小泉を支持し自民党に投票し続ける。

もう中国人や朝鮮人・韓国人にはなにもあげないし
なにも奢ってやろうとも思わない。

日本に来ては日本人子供や恩人を殺す犯罪者が多いし
泥棒はするしスキミングはするし。電車では人の座席は奪うし。
ウザイから彼らにはもう何も与えてやらない。



485デフォルトの名無しさん:2006/09/26(火) 02:38:05
>>481
マジレスするとGUI強化
486デフォルトの名無しさん:2006/09/26(火) 09:01:37
>>484
三国人と書くなら、台湾人も書かなきゃ。
487デフォルトの名無しさん:2006/09/26(火) 10:12:50
>>484
自民党に投票すると、お前が何ももらえくなるぞ。
税金の仕組みとか知らないだろ?
お前から吸い取り、奪い取って、
大企業や銀行・政府よりの関連企業に還元されているじゃないか?
488デフォルトの名無しさん:2006/09/26(火) 11:04:43
>>485
そんなにかわるか?
489デフォルトの名無しさん:2006/09/26(火) 15:10:58
>>402
俺のブックマークではこれかな
ttp://research.sun.com/projects/barcelona/
ITmediaの話は、クラス共有までにとどまっているんじゃないかと。

System.exit問題を何とかしないと駄目だかんね。
490デフォルトの名無しさん:2006/09/26(火) 23:30:58
>System.exit問題
って何?
491デフォルトの名無しさん:2006/09/27(水) 00:00:42
System.exitはVMを終了させる。
VM共有してると全部一蓮托生。
ってことかいね。

サーブレットコンテナも同じような問題抱えてるけど。
492デフォルトの名無しさん:2006/09/27(水) 00:07:00
1つのプロセスでVMは複数立ち上げるということであれば問題ないんじゃね?
VM1つで1プロセスだと共有も限界があるが同一プロセスならなんとでもなるだろう
じゃないとシングルトンとかstatic使ってるところすべておかしくなる

なにも問題はない
493デフォルトの名無しさん:2006/09/27(水) 00:09:13
>じゃないとシングルトンとかstatic使ってるところすべておかしくなる

tomcatは大丈夫だけど?
classloaderいじってあれば大丈夫なんじゃないの?
494デフォルトの名無しさん:2006/09/27(水) 00:16:21
>>493
それクラスローダいじってる場合だろ?
VMレベルってことはブートストラップからなんだからまた違う話

VMひとつで複数アプリは問題あり
そもそもWEBアプリ部分はmainからスタートしねー
495デフォルトの名無しさん:2006/09/27(水) 00:20:02
>>487
だからおれも経営者になるのさ。
まずは個人事業主から始めて
次に独立を狙う
496デフォルトの名無しさん:2006/09/27(水) 00:24:52
>>494
mainから動かしたけりゃServletなんか使わなきゃいい。
497デフォルトの名無しさん:2006/09/27(水) 00:28:06
>>496
話の流れみてくださいね
498デフォルトの名無しさん:2006/09/27(水) 00:57:32
>>494
staticとかシングルトンで問題って例えばどんな問題?

499デフォルトの名無しさん:2006/09/27(水) 02:13:33
>>498
隣のアプリが初期化したシングルトンオブジェクト握ってたら
2つめのアプリが動かなかったりしてな
セマフォとかトークンみたいな使い方だからシングルトンならではってわけでもないが・・・

やっぱ基本的に、クラスローダはブート時から別、か
アプリによって違うバージョンのライブラリに依存してたりするし
500デフォルトの名無しさん:2006/09/27(水) 03:00:55
>>499
tomcatみたいなクラスローダーのシステム導入すればいいってことでしょ、結局。

exit問題は、個人的にはまぁいいんじゃね?と思ってるけど。
心配な場合はsecurity managerでどうにかなるんじゃないかなと。
501デフォルトの名無しさん:2006/09/27(水) 07:27:52
>>500
で、そのあたりJSR-291でIBMがOSGi4を取り込むことを提案してるけど、
Sunが「OSGiですでに規格化されてるんだからSEに取り込む必要あるの?
とりあえず反対票いれとく」ってのが今年の3月の状態。9/1にJSR291のEDRが
終わったからそれがどうなるかはわからん。

IBMはWebsphere/Notes/Rationalと大体OSGi4(というかEclipse)ベースに移行済みだし、
ApacheもFelix立ち上げてtomcatをOSGiベースに移行したいみたいだし
J2ME以外でもOSGiフレームワークの有用性はあると思うんだけど、
OSGiベースのクライアントを推進するEclipse参加企業連と反対
するSunって感じになって政治的にきまっちゃったりして。
502デフォルトの名無しさん:2006/09/27(水) 11:22:58
独立目指すのもいいが、今度は世間の荒波に揉まれて、
今度はお前が嫌な上司になったりシナやチョンを雇ってみたりするんじゃないのかね…
ケケケ
503デフォルトの名無しさん:2006/09/27(水) 11:27:47
>>486
台湾人は戦勝国人でしょ
504デフォルトの名無しさん:2006/09/27(水) 11:58:23
日本人は敗戦国人と言いたいのか?
505デフォルトの名無しさん:2006/09/27(水) 12:28:01
>>501
OSGiです
まで読んだ。
506デフォルトの名無しさん:2006/09/27(水) 13:40:34
三国人=戦勝国でも戦敗国でもない第三国のひと
507デフォルトの名無しさん:2006/09/27(水) 14:10:56
魏呉蜀の人の事だろ?
508デフォルトの名無しさん:2006/09/27(水) 14:22:23
第三国人
 第二次大戦前および大戦中、日本の統治下にあった諸国の国民のうち、日本国内に居住した人々の俗称。
 敗戦後の一時期、主として台湾出身の中国人や、朝鮮人をさしていった。
 [大辞林]
509デフォルトの名無しさん:2006/09/27(水) 14:24:59
>>507 お前、三国志好きなのか?三国志板あるぞ!
510デフォルトの名無しさん:2006/09/27(水) 16:45:49
>>508
その解説は間違い。

戦後、戦勝国人を名乗って暴れていた韓国人、朝鮮人を抑えるために
マッカーサーが「おまえらの国は戦勝国じゃなくて第三国じゃ」と
言ったのが起源だよ。

従軍慰安婦、南京大虐殺30万人説、三光作戦…
日中戦争や韓国併合に関する大手出版社の
解説には間違いが多い。
511デフォルトの名無しさん:2006/09/27(水) 17:03:22
結構調べてるな。次世代の日本の事ばかり。
ところで、まだチョンやシナが来ないけど
平和とはまさにこのことだな。
いいことだ。いいことだ。
512デフォルトの名無しさん:2006/09/27(水) 17:26:57
>>510
それは、全くのウソ。マッカーサーにそんな発言はない。

もともと俗語で、犯罪行為を行う朝鮮人や台湾人をさし、
戦後、日本の警察・マスコミ・官僚・政治家が使い始め、
広めた言葉。

513デフォルトの名無しさん:2006/09/27(水) 17:58:27
>>502
それよりお前Java質問スレ荒らすなよ
514デフォルトの名無しさん:2006/09/27(水) 18:18:53
>>513 よく覚えておけ!なんでも人のせいにするな!!
515デフォルトの名無しさん:2006/09/27(水) 19:08:07
>>501
なんでsunは反対してるの?
netbeansとeclipseの関係上?
516515:2006/09/27(水) 19:31:37
>>501
JSR277でいーじゃんってことね。
こっちはどーなってんだろ
517デフォルトの名無しさん:2006/09/27(水) 19:35:26
>>501
OGIS総研がどうしたって?
518デフォルトの名無しさん:2006/09/27(水) 19:39:44
>>502
おい、三国人、何やってんだお前。
つか、お前はその上司にすらなれないんだろ。
ん? お前は上司に嫉妬するダメ平社員か?

C#マンセーしてJavaに演算子オーバーロードを
つけることを強く勧めていた馬鹿だろお前。
それにJava質問スレをAAで荒らして今でも懲りて無いという。
519デフォルトの名無しさん:2006/09/27(水) 19:41:25
>>514
文体からもうお前が誰だかわかってるんだが。

死滅スレで大暴れしていた餓鬼だろ。
Java質問スレでは「ゆとり世代は犯罪者が多い」
と言われたら逆ギレでスレを荒らしていたよな。
あれからJava質問スレにサザエさん一家のAAを貼り付けて
「馬鹿質問者!」を連呼するようになっただろう


520515:2006/09/27(水) 19:41:35
JSR277のプレゼンによると、
super package com.2ch.xxxx
とか
export com.2ch.xxx
みたいな表現が出てきてますね。意味はよくわからん
521デフォルトの名無しさん:2006/09/27(水) 19:41:46
>>517
寒いよお前
522デフォルトの名無しさん:2006/09/27(水) 19:42:28
始めてOSGiという用語を知ったときOSI参照モデルと間違えそうになった。
523515:2006/09/27(水) 19:43:57
JDK7からは.jarに加えて.jamができるようだよ
524デフォルトの名無しさん:2006/09/27(水) 19:45:03
>>520
super package?

あくまで憶測だけど
パッケージにも継承の概念をとりいれたということでは?
二つのパッケージの間には継承の関係がある、みたいな。
『アジャイルソフトウェア開発の奥義』にそんなのが載っていたようなきがする。


にしてもexportってのが気になる。
importの逆か。
525デフォルトの名無しさん:2006/09/27(水) 19:45:31
>>523
jamって携帯電話のあのフォーマットが標準化されるってことですか
526515:2006/09/27(水) 19:48:23
.jam = JAva Module
らしい。
527デフォルトの名無しさん:2006/09/28(木) 01:10:01
super packageについてはMYCOMに記事が出てるよ。
ttp://journal.mycom.co.jp/articles/2006/05/18/javaone3/

要するに、 JavaにもPerl Module(.pm)みたいなものを作ろうという話
だと思う。

複数のパッケージをモジュールとして一つにまとめて、どのサブパッケージ、
どのクラスを外部に公開するか決められるとかそんな感じかな。

Win風に言えば、DLLでその関数を外部に公開するか定義するみたいな。

その部分が「export」とかいう部分だと思う。
528デフォルトの名無しさん:2006/09/28(木) 02:16:48
>>527
つまり、今のprivate,protected,publicとかとjarだけじゃ
使いにくいぜってことか。

あ、importがモジュール単位でできるようになったら便利かな。
529デフォルトの名無しさん:2006/09/28(木) 02:19:45
>>527
> super packageについてはMYCOMに記事が出てるよ。
> ttp://journal.mycom.co.jp/articles/2006/05/18/javaone3/
> 要するに、 JavaにもPerl Module(.pm)みたいなものを作ろうという話
> だと思う。

なんか違うような。そのまんま『アジャイルソフトウェア開発の奥義』に載ってる
ことを実践しようとしているだけだと思う。
530デフォルトの名無しさん:2006/09/29(金) 02:16:31
SE 6の split verifierってどんくらい効果があるんだろうか?
531デフォルトの名無しさん:2006/09/29(金) 03:25:06
>>527
この宣言、import宣言を短縮できるってことかね?


super package com.sun.myModule {
// super-package exports:
export com.sun.guild.myapi.*;
export com.sun.guild.util.Helper;

// super-package members:
com.sun.guild.myapi;
com.sun.guild.util;
com.sun.guild.impl;
}


import com.sun.myModule;
と書くと
一度に
import com.sun.guild.myapi.*;
import com.sun.guild.util.Helper;
宣言しなくても一行で済むってことかね?


あと、JSR 277として仕様が提案されている「Java Module System」とこれはまた別ものみたいだね。
あれはJARファイルの扱いってことで。
532デフォルトの名無しさん:2006/09/29(金) 03:26:15
JSR 277 「Java Module System」ではJARの中にJARを入れる
ことができるってことだね。
今までOne-JARかFatJarに頼らざるを得なかっただけに。
よって、Perl Moduleとは関係なさそうな気がする。


533デフォルトの名無しさん:2006/09/29(金) 03:52:10
あと、新しいJava モジュールシステムは
バージョン違いによるコンフリクト問題も解決するそうだ。
RPM(Redhad Package Manager)の依存関係みたいなもんかね?
それか、Fedora Coreで使われているWindowsUpdateライクな
yumでrpmを管理できるような仕組みとかできんのかね。

PM(Perl Module)というより、CPANモジュールみたいなもんかね?
するとApache Mavenで使われているJakarta JJarをJavaで標準装備するってことかね?



534デフォルトの名無しさん:2006/09/29(金) 04:05:31
よくみるとJava Moduleという新たなフォーマットが生まれる可能性があるということか。
JNLPファイルのようにメタデータ情報を記載しておくってことか。

たとえ依存関係にあってもバージョンが異なれば、依存できないようにするとか設定できるわけか。
まさにRPMそっくり。JavaレベルでRPM同等のことができるとは、嬉しいことだね。
これで、Jakarta JJarやApache Mavenの仕様も若干かわることになるかな。

さらにJARの名前空間もサポートするとは。
バージョン管理されたマシン上で保存、探索のためのリポジトリもサポートとは。
モジュールのインストール、削除もサポートするのか。
ランチャー、クラスローダ探索のサポートか。モジュールチェック。

これだと、RPMどころか、yumやCPAN, JJarに似てくるってことか。
535デフォルトの名無しさん:2006/09/29(金) 04:07:19
というか、Open Services Gateway Initiative (OSGi)を使うところが
Eclipseのアップデートマネージャみたいだね。あのプラグインフレームワークがJavaで
標準で使えるようになればかなり大きな進化になるぞ。
536デフォルトの名無しさん:2006/09/29(金) 04:18:54
JSR 291 - 初期レビューフェーズをクリアするも波乱の幕開け、IBMほか (MYCOMジャーナル)
後藤大地 2006/3/17
http://journal.mycom.co.jp/news/2006/03/17/343.html

Java Community Process, JSR 291 Expert Groupは14日(米国時間)、
「JSR 291: Dynamic Component Support for Java SE」がJSR Review Ballotの
ステージを通過したことを発表した。投票期間は2月28日から3月13日(米国時間)まで。投票結果は次のとおり(全数16)。
  * 賛成 11
  * 棄権 0
  * 反対 4
 * 投票なし 1

 「JSR 291: Dynamic Component Support for Java SE」は、既存のJava SEプラットフォームに対
してダイナミックコンポーネントフレームワークのサポートを規定するもの。OSGiから提供されてい
るダイナミックコンポーネントモデル仕様をベースにして策定が行われる予定になっている。
 初期レビューのフェーズはクリアしたが、Google、JBoss、Suleiman, Sun Microsystemsの4社は
反対を表明している。「JSR 291: Dynamic Component Support for Java SE」の策定に賛成しなかっ
たメンバーの主な反対理由は次の通り。

  * すでにOSGiから提供されている仕様があり、それがすでに十分なものであるなら、わざわざJCPにお
  ける認証プロセスを経てJSRに策定する意味があるのか
 * 「JSR 277: Java Module System」においてJavaにおける次世代モジュール仕様が定義されており、
  OSGiにも適応することができるように努力している。別途JSRを用意する必要はないのではないか
 * OSGiと重複した規格を策定することはOSGiを軽んじることなりはしないか
 * OSGiを参照するように明示するだけで十分ではないのか

 JSRにおける他の規格との重複、JSR以外の規格との重複が指摘されたものであり、賛成/反対とも、
提出されている意見が興味深い。賛成を表明したメンバーも、OSGiやJSR 277にふれ、意見を述べている。
 JSR 291のスペックリードはIBM, Glyn Normington氏。Expert GroupにはIBMやIntelをはじめHall, Richard S.、
Hedman, Niclas、Kriens, Peter、Nortel、ProSyst Software GmbH、Snyder, Bruceがエントリされている。
半月ほどでエントリが倍になったことになる。
537デフォルトの名無しさん:2006/09/29(金) 04:20:01
こんなニュースがあったとは。
Googleが反対しているところが気になった。
それどころか、Sunも反対とは。

IBMが推しているのは、Eclipseの
プラグイン管理がOSGiフレームワークに基づいているからかね。
538デフォルトの名無しさん:2006/09/29(金) 04:23:55
統合開発環境プラグインAPI - JSR 198、4つの棄権も可決 (MYCOMジャーナル)
http://journal.mycom.co.jp/news/2006/02/25/360.html

JSR 198は、16中10の賛成を得て可決されたが、棄権に付随したコメントは、
このJSRの今後の展開について重要な示唆を含んでいる。代表的な統合開発環境
がJSR 198に対応した場合、たとえばEclipse IDE向けに開発されたプラグインであっ
ても、そのままNetBeans IDEで使用できるようになると期待されているが、どれだけ
実現されるかは今後の展開にかかっているといえる。



これってかなり重要だな。


EclipseのプラグインがそのままNetBeansでも使えるようになることは俺が夢見ていることだ。
539デフォルトの名無しさん:2006/09/29(金) 07:15:31
>>536
J2MEにはJSR283でOSGiを導入しているから、OSGiですでにあるからとか
いうのはおかしい話だ。
540デフォルトの名無しさん:2006/10/03(火) 13:47:30
Closure の文法の別案(?)が出てるね。
http://www.writely.com/Doc.aspx?id=k73_1ggr36h
541デフォルトの名無しさん:2006/10/03(火) 18:00:13
これといって「何だぁ?」っていえるような文法が見あたらないね。

new Thread(new Runnable() {
public void run() {
foo();
}
}).start();


new Thread(Runnable(){ foo(); }).start();
に変わるってのが特徴なのかな?
しかし、run()メソッドの中で使っているってどうやってわかるんだろう。
約束事になるってこと?

それと気になるのはfor文の中でpublic が使えるようになっていることだね。

" for (public int taskId = 0; taskId < NUM_TASKS; taskId++) {
executor.execute(Runnable(){ newTask(taskId); });"
http://www.writely.com/Doc.aspx?id=k73_1ggr36h
542デフォルトの名無しさん:2006/10/04(水) 00:35:36
>>541
ちゃんと読んだ?for文でpublicが使えることが重要なんじゃなくて
publicをつけたはclosure内から参照&書き換えできるようにしようって話だよ。
543デフォルトの名無しさん:2006/10/04(水) 05:00:04
Neal Gafter の blog にも面白いのが出てきてるね。
http://gafter.blogspot.com/2006/10/iterative-control-abstraction-user.html
544デフォルトの名無しさん:2006/10/04(水) 05:20:40
>>543
なんかややこしいな
Mapをループで楽に扱うなら
for(String key,String value: map)
みたいに拡張for文をさらに拡張したほうがわかりやすいと思うのだが
545デフォルトの名無しさん:2006/10/04(水) 05:53:42
>>544
問題は Map 以外に使い道があるかって感じかな。

拡張for を更に拡張してくのは、基本的に言語を肥大化させる方向性。
>>543 のは複雑になるけど、どちらかと言えばライブラリを肥大化させる方向性。

どちらかしか選べないなら後者を支持するかな。
546デフォルトの名無しさん:2006/10/04(水) 11:18:00
もうMapはkeySetをイテレートでまわしてvalueでまわすのになれちまってるからなぁ

確かにほしい場面はあるが・・・
547デフォルトの名無しさん:2006/10/04(水) 15:17:39
>>542
そんな仕様になったら、名前空間がどうなってしまうのだろうか。
グローバル変数のような事態に陥ってしまいかねないか?
548デフォルトの名無しさん:2006/10/04(水) 22:49:09
>>546
valueがほしいときにkeySetをイテレートでまわしてからとるのと
最初からentrySetをイテレートでまわしてからとるのとでは
速度にかなり差があるよ。わかっててやってるならいいが。
549デフォルトの名無しさん:2006/10/04(水) 23:21:12
>>548
実際に速度はかってみたの?
550548:2006/10/05(木) 00:26:23
>>549
はかってみたから言ってんだろ、ボケ
551デフォルトの名無しさん:2006/10/05(木) 00:38:04
計らなくても分かりそうなもんだが、、
552デフォルトの名無しさん:2006/10/05(木) 00:40:09
LinkedHashListでvalues()してたら何のこっちゃだからな
ここらでオブジェクト指向を感じるときもしばしば
553デフォルトの名無しさん:2006/10/05(木) 01:00:02
>>550
で、どれだけの速度差が出たの?
554デフォルトの名無しさん:2006/10/05(木) 02:26:33
行列演算みたいに
内部でpivot操作できるようになっていれば
従来通りのやり方でも高速になるんだがなー
555デフォルトの名無しさん:2006/10/05(木) 22:49:45
>>553
俺は >>548 じゃないが、Map まわすときの常識だ。
entrySet を使わない奴はその存在を知らん初心者だけ。
速度差なんか要素数で変わるが、keySet で回して value
取り出すほうが遅いのはあきらか。
556デフォルトの名無しさん:2006/10/05(木) 22:57:37
Mapとリフレクションを上手く統合(?)できないもんかね。
アノテーションとかあるし何かいい方法がありそうなもんだが。
POJO相手にリフレクション使う最近のフレームワークを見て思う。
557デフォルトの名無しさん:2006/10/05(木) 23:35:49
>>555
拡張forつかわないのならいいのかもしれんがね
558デフォルトの名無しさん:2006/10/06(金) 01:39:04
>>557
>拡張forつかわないのならいいのかもしれんがね

for (Entry<K, V> entry : map.entry()) {
  K key = entry.getKey();
&nssp; V value = entry.getValue();
  …
}

ってするだけですが。
559デフォルトの名無しさん:2006/10/06(金) 01:40:05
いろいろ間違ってたので書き直し。

>>557
>拡張forつかわないのならいいのかもしれんがね

for (Entry<K, V> entry : map.entrySet()) {
  K key = entry.getKey();
  V value = entry.getValue();

}

ってするだけですが。
560デフォルトの名無しさん:2006/10/06(金) 09:25:29
>>557
このスレに来る前に現行 Java のことを覚えてきてくれ。
561デフォルトの名無しさん:2006/10/06(金) 11:04:59
アノテーションでJavaソースコードやパッケージにバージョン番号を
つけて、依存関係にあるJARファイルのチェックをしたい。

どうすればいい? そして最新のクラスだけ使用したい。

Java Module Systemが登場するまでこれはうまくいかない?
562デフォルトの名無しさん:2006/10/06(金) 11:07:00
拡張forで複数のiteratorまわせればいいんだけどな

List<String> list1 = 省略
List<Integer> list2 = 省略sizeはlist1と同じ

for(String str:list1 , Integer i: list2){
//省略
}

みたいな
563デフォルトの名無しさん:2006/10/06(金) 11:11:35
つまり、クラスパスにはすでに古いクラスが入ったJarファイルa.jarが通っている。

あとから、b.jarを入れた。このJARはa.jarに依存する。
しかし、このb.jarは、最新版のa.jarに依存しており、古いクラスが入ったa.jar
には依存できない。今、b.jarは最新版のa.jarを欲している。

ここで最新版のa.jarを入れてみたいが、古いa.jarが他の会社のプログラマが
入れて者で、上司に「ここは絶対に弄るな!(激怒」と厳重に、そのJarファイルの操作を束縛されている。
クラスパスから外すこともディレクトリ移動も設定ファイルの変更も許されていない。
サーバ内にある既存のシステムをただ拡張するだけにしろと支持されている。


どうする?  もう納期は迫っている!!!徹夜残業に
加え休日返上する事態にまで追いやられた!切迫した事態だ! 
上司のメールには【大至急】とSubjectについている。

上司の指示に逆い反旗を翻してa.jarをアップデートすべきか?
それとも上司の指示に従うために最新版a.jarを適用するのを諦め、そのために
b.jarの適用も諦めて、b.jarに相当し古いa.jarに会わせたパッケージを莫大な時間とコストをかけて自作するか?

さあどうするどうする!!!!!?
564デフォルトの名無しさん:2006/10/06(金) 11:18:11
>>563
上司に決めさせれば〜?
565デフォルトの名無しさん:2006/10/06(金) 11:27:13
スレ違いだろ

最新のa.jarをコピーしてpackage nameをかえる。
IDEを使えば一瞬ですむ
b.jarはそっちを使う。以上
566デフォルトの名無しさん:2006/10/06(金) 12:16:29
>>563
その書き込みをそのまま上司にメールして決済させればいいじゃねぇか
判断するために高い地位にいるんだから。
567デフォルトの名無しさん:2006/10/06(金) 18:36:38
上司に判断させると一番面倒くさい(現場に苦労させる)判断しかしないのがデフォだがな。
この場合では、

「b.jarに相当し古いa.jarに会わせたパッケージを莫大な時間とコストをかけて自作する」
568デフォルトの名無しさん:2006/10/06(金) 21:47:50
新しいa.jarから別途クラスをロードしておしまい。
569デフォルトの名無しさん:2006/10/06(金) 21:55:04
>>566
この話はすでにもう終わったことなんだが、
そのとき上司が、jarどころかJavaのことをろくにわかってなくて
Javaのクラスパスといっても理解できなかったので救いようがなくてさ。
結局おれの判断でやったよ。テストしてみてその結果で判断するってことになって。
テストもショボい問だけど本番のサーバ環境でJarをバックアップしてから上書きして
Tomcatを再起動してテストして、
テストが終わっておかしかったらまた古いJarに戻してTomcatを再起動するというとんでもないこと
やっていたよ。
しかも俺に客先のサーバのroot権限のパスワード教えちゃってさ。
570デフォルトの名無しさん:2006/10/06(金) 21:58:26
>>565
> スレ違いだろ
> 最新のa.jarをコピーしてpackage nameをかえる。
> IDEを使えば一瞬ですむ

a.jar解凍してから勝手に改変してEclipseのリファクタリングか。
うーむ。それはたまたまJakartaのブツだったからよかったが・・・。

a.jarとb,jarと自分が開発しているソースコードすべてを
Eclipseのプロジェクト上でソースコードに展開して
リファクタリングするわけだろ。

あとでb.jarに依存するJakartaのJarがあったら、
そのJarもいちいち名前変更リファクタリングしないといけないのか。
放置していると悪循環に陥りそうだ・・・


571デフォルトの名無しさん:2006/10/06(金) 22:00:31
>>567
それはありがちだな。
Jakarta 並みのでっかいものを自作で手がけるとコスト増大だな。
>>565の名前変更リファクタリングなら確かに有効かも知れない。


>>568
クラスローダか
572デフォルトの名無しさん:2006/10/06(金) 22:05:02
>>570
おまえ基本的に分かってないだろ?
解凍など不要
573デフォルトの名無しさん:2006/10/07(土) 01:44:26
独自暮らすローダーをつくりforNameをオーバーライド
if(name.startWith("mondai.no.package"))
//新しい方のa.jarを使う

これでいいんでない?

もしくわこっそりコードの中でclasspathを変える。
まずばれる心配はない。
574デフォルトの名無しさん:2006/10/07(土) 02:19:20
>>572
内部では解凍を行っているが表面上は
ユーザによる解凍操作が不要ってことを言いたいのか?
575デフォルトの名無しさん:2006/10/07(土) 16:38:08
Commons系ので困った事あったか、な・・・
今度のJavaって、複数のバージョンを混在できるようにっていう
フィーチャー無かったっけ?こういう時役に立つ?
576デフォルトの名無しさん:2006/10/07(土) 16:52:38
>>575
>>526 前後
577デフォルトの名無しさん:2006/10/07(土) 17:17:58
クラスローダがパワーアップするのかな
578デフォルトの名無しさん:2006/10/07(土) 22:53:06
>>575
VelocityとBeanUtilsとHttpClient何かを使っていたときだったろうか、
古いオッサンが書いたコードにバージョンの古いVelocityと何かが
使われていて、その「何か」はなんだか覚えていないけど、Commonsの古いバージョンのものだった。
そしたら、その古いやつに依存する他のJarも古い奴で新しい何かとは互換性がなかったんだ。

それで仕方が無くHttpClientを3.0から2.0にダウングレードする羽目になってしまったよ
579デフォルトの名無しさん:2006/10/09(月) 18:38:44
>>436
> どうせ過去の年号なんて一年二年ずれてたり、
> 鎌倉幕府ができたとしが1192年かと思ったら全然違う年に
> できたことがわかって教科書もかわったし「いい国作ろう鎌倉幕府」
> なんて暗記もまったく役に立たなくなった。

過去レスですまないが、君、歴史に無知すぎ
「年号」と「鎌倉幕府」は、全く直行する概念
580デフォルトの名無しさん:2006/10/09(月) 18:39:47
Hibernate 2.xと3.xの混在はよくあるな
581デフォルトの名無しさん:2006/10/09(月) 19:26:13
>>579
空気嫁。
言いたいことは歴史の正確さの問題だろ。
年号と幕府創設との間には直接な関係は無いが
細かい年号を定めたところでその年号が正しい数値に
なるのか?ってことだ

582デフォルトの名無しさん:2006/10/10(火) 00:23:16
>>579,581
スレタイ嫁。
583デフォルトの名無しさん:2006/10/10(火) 00:50:32
もう秋だよー。mustangのリリースまだですか?
584デフォルトの名無しさん:2006/10/10(火) 01:18:43
age
585デフォルトの名無しさん:2006/10/10(火) 09:44:37
天高く、馬遅れる秋。
586デフォルトの名無しさん:2006/10/10(火) 17:44:45
>>583
延期されたよ
587デフォルトの名無しさん:2006/10/11(水) 20:02:08
>>582
その程度のスレ違いはまだよい。
過去にはもっと酷い話題でやたら盛り上がったのがこのスレ
588デフォルトの名無しさん:2006/10/12(木) 18:54:06
for(int i: 5){
System.out.println(i);
}
みたいな構文もキボン

実行結果
0
1
2
3
4
589デフォルトの名無しさん:2006/10/12(木) 19:23:59
>>588
>>543 の構文が採用されれば
public interface B<throws E>{ void invoke(int i) throws E; }
public static <throws E> void for each(int num, B<E> block) throws E {
 for(int i = 0 ; i < num ; i++) block.invoke(i);
}
for each(int i : 5){ System.out.println(i); }
とかできるようになるよ。

もっとも、まだ草案レベルだろうし、実際に採用されるかも知らんけど。
590デフォルトの名無しさん:2006/10/12(木) 19:58:20
>>588
Intervalって名前付けられたクラスのインスタンスが行う振る舞いな気がする。
591デフォルトの名無しさん:2006/10/12(木) 23:46:57
>>589
そんなこと
public int[] seq(int start, int end)
みたいなapiでたりるだろ

for(int i : seq(0,5)){
//
}
これじゃだめ?
592デフォルトの名無しさん:2006/10/13(金) 00:16:59
>>547
それだと、約intのサイズ * (end - start) バイト分のメモリが必要になるから、
end - startが大きい場合に、多量のメモリを消費するという問題がある
593デフォルトの名無しさん:2006/10/13(金) 00:17:39
>>591
自己レス
間違えた。>>547じゃなくて、>>591だった
594デフォルトの名無しさん:2006/10/13(金) 00:40:03
>>591
富豪的プログラミングって奴ですな。

それなら int[] じゃなくて Iterable<Integer> 返した方が良いんじゃない?
595デフォルトの名無しさん:2006/10/13(金) 01:44:31
>>592
速度重視なら591
(もちろんstatic finalにしてconst化する)
メモリー効率重視なら594

と選択肢があるのはよいと思うが。
596デフォルトの名無しさん:2006/10/13(金) 01:54:35
> (もちろんstatic finalにしてconst化する)
これは笑うところだよな?

ってか、Tiger の構文で良いなら現世代スレ行け。
http://pc8.2ch.net/test/read.cgi/tech/1150286189/
597595:2006/10/13(金) 01:56:11
と思ったけどメモリー効率は変わらないか。。。
多少Integerのキャッシュが寄与するくらいだね。

メモリー効率だとfor(int i =0; i<6 ;i++)か。
598595:2006/10/13(金) 01:57:35
>>596
どのへんを笑っているん?
599デフォルトの名無しさん:2006/10/13(金) 02:09:22
>>598
たぶん・・・「もちろん」だと思う
そこまで強調しなくてもいいし
と、、その記述が持つ性能向上はJVMの最適化能力によって次第に誤差に・・・
「const化」という用語も何か違和感感じるし・・・

staticにすることでのメソッドのメモリ消費量ということでいうなら
まぁ変わらんだろうから、そこを笑ってる可能性も否定しきれない
600595:2006/10/13(金) 02:16:30
JVMというかコンパイラー依存でしょ?

本当はinlining(だっけ?)とかいうんだろうけど、const化のほうが分かりやすいでしょ。
601デフォルトの名無しさん:2006/10/13(金) 02:18:16
>>600
Hotspotの最適化能力をなめてはいけません。
static finalのインライン化はコンパイラだけどね。
602595:2006/10/13(金) 02:30:16
お前らバカにしやがって。。くやしぃ!!!



とにかくそれしきのことに新しい文法はいらないでないか?と言いたかった。

蛇足かも知れないが591がインライン化されるとメモリーそんなに使わないんじゃないか?
603デフォルトの名無しさん:2006/10/13(金) 02:40:48
Hotspotっていつまで最適化するの?
マイクロベンチするとある回数から突然速くなるけど
サーバとかの運用でもその段階で最適化は止まるの?
それとも常日頃からOracleでいうanalyzeみたいなことしてるの?
604デフォルトの名無しさん:2006/10/13(金) 02:42:53
現世代Javaの動向 1
http://pc8.2ch.net/test/read.cgi/tech/1150286189/

次世代な話題じゃなくなったんで
スレ移動したよ
605デフォルトの名無しさん:2006/10/13(金) 03:15:32
>>602
>>591はインライン化されてもメモリ使うだろう。seqの呼び出しで
繰り返し回数分のサイズを持ったintの配列が必ず確保されてしまうから。
606デフォルトの名無しさん:2006/10/13(金) 05:13:33
速度追求はJavaの本分じゃないだろ。
そこまでして便利さじゃなくて速さを求めるなら他の言語でやれ。
607デフォルトの名無しさん:2006/10/13(金) 13:02:16
すでに速度もとめる言語でもあるよ
608デフォルトの名無しさん:2006/10/13(金) 14:13:19
まあ実際早くなってきているんだし。
速度を求めるために文法を改造することにこだわって
C++やC#のようにスパゲティコード生成言語に成り下がるのは
ちょっとねえ

609デフォルトの名無しさん:2006/10/13(金) 15:38:52
>>607
お前誰だよ。
610デフォルトの名無しさん:2006/10/13(金) 16:09:47
>>609
お前こそ誰だよ
611デフォルトの名無しさん:2006/10/13(金) 16:18:16
>>607どこに速度もとめるわけ?
612デフォルトの名無しさん:2006/10/13(金) 16:27:10
おはようからおやすみまで
613デフォルトの名無しさん:2006/10/13(金) 16:33:15
携帯で成功してしまい、Sun/Javaの思惑は既に成功してるんだが…
それでも「速度」とか関係ない方向を見てる奴がいるとは…
614デフォルトの名無しさん:2006/10/13(金) 16:37:42
揺りかごから墓場まで
615デフォルトの名無しさん:2006/10/13(金) 16:38:08
>>613
開発現場はBREWだろうがJavaだろうが、成功していないように
見えるが・・・
616デフォルトの名無しさん:2006/10/13(金) 17:41:51
ずっとVM最適化しまくってるし速度もとめてるのは当たり前
遅いより速いほうがだれだっていいからな
状況に合わせて選択するクライアントVMと鯖VMがあるのもその証拠

ただ、速度という項目が一番目にはこないだけ
C言語と同じだろ
617デフォルトの名無しさん:2006/10/13(金) 17:46:18
Mustangからだっけ?
Javaアプリを一旦起動すると、二回目移行からは
ネイティブアプリとして起動するために無駄にコンパイルせず
高速化するというPreJITが搭載されるのは
618デフォルトの名無しさん:2006/10/13(金) 18:53:08
何その説明台詞w
619デフォルトの名無しさん:2006/10/13(金) 21:00:18
だからmustangは和カレンダーとscript以外は特にかわらないんだってば
620デフォルトの名無しさん:2006/10/13(金) 21:02:39
エスケープ解析だとかいうのでスタックの利用率が上がるんでしょ?
多少はリソースの消費量が抑えられるようになるんじゃないかな。
対PHP向けにチューニングしてくれんかね、CGI代わりに使いたい
621デフォルトの名無しさん:2006/10/13(金) 22:16:56
その和カレンダーも実装がイマイチでな
622デフォルトの名無しさん:2006/10/14(土) 00:38:02
>>619
タスクトレイを使えるようになったことGUIが刷新されたこと
JMXが使いやすくなったことなど、
でかいことはかなりあると思うが
623デフォルトの名無しさん:2006/10/14(土) 00:51:08
MSのように市場を支配する事を「成功」と勘違いしてるだろ。
単なる社内部の言語が、もはやないと困るほど広まっている
のは成功といえないか?
624デフォルトの名無しさん:2006/10/14(土) 00:53:16
>>616
C(とアセンブリ)は速度重視が主目的だが、何がC言語と同じなんだ?
625デフォルトの名無しさん:2006/10/14(土) 01:04:06
>>624
エロイ人は、なぜ高級言語を生み出したのか脳内で100回暗唱しる。
626デフォルトの名無しさん:2006/10/14(土) 01:44:32
>>617 と MVM を実現したらJavaかなり最強に近づくと思うんだけどな
627デフォルトの名無しさん:2006/10/14(土) 03:52:13
>>616
お前、日頃から「キモイ」って言われてないか?
JavaじゃなくてCを駆使した速度チューニングの方がお前に向いてると思うぞ。
628デフォルトの名無しさん:2006/10/14(土) 10:20:27
なんか釣がずっと住み着いてるようだが
629デフォルトの名無しさん:2006/10/14(土) 14:45:01
>>617
>ネイティブアプリとして起動するために無駄にコンパイルせず

今も昔もコンパイルしてませんが。
630デフォルトの名無しさん:2006/10/14(土) 14:51:08
昔はしてただろHotspotからです。
631デフォルトの名無しさん:2006/10/14(土) 14:51:53
お前ら!jsr-277のearly draftでてるぞ!
jdk-7で導入かね?
632デフォルトの名無しさん:2006/10/15(日) 00:32:26
>>626
どうやって?
633デフォルトの名無しさん:2006/10/15(日) 23:51:55
1.6 はいつ頃正式リリースなんすか?
634デフォルトの名無しさん:2006/10/15(日) 23:53:28
12月らしいが
635デフォルトの名無しさん:2006/10/16(月) 00:41:10
java.bean.XMLEncoderがenumを受け付けないってなんか間違ってないか?
newが出来ないのでダメーwwwじゃねーよ orz
636デフォルトの名無しさん:2006/10/16(月) 00:49:42
うぉ
そんな欠点が
ひでぇ

最近シリアライズにそれ使ってないからわからんかった
JAXBはうごくんかね

enumはまともなプログラマなら使いまくるからね
心配になってきた
637デフォルトの名無しさん:2006/10/16(月) 02:00:28
まるでInteger.valueOf(int)よりも
あくまでnew Integer(int)に拘る香具師みたいだな
638デフォルトの名無しさん:2006/10/16(月) 07:07:43
>>637
FindBugs じゃはじかれるけどねw
639デフォルトの名無しさん:2006/10/16(月) 07:22:22
JDK 6 Beta 2ってバグはどのくらいあるの?
めったに遭遇しない程度?
640デフォルトの名無しさん:2006/10/19(木) 18:33:02
せっかくのenumがクラスっぽいのがやだ。
641デフォルトの名無しさん:2006/10/19(木) 18:41:07
そのほうがいいじゃないか

enumが独自の型だと型変換で悩むし
値私などの扱いに苦しむ
642デフォルトの名無しさん:2006/10/19(木) 19:00:50
enumがタイプセーフじゃないほうがいいと考えてるほうが珍しいと思うのだがね
643デフォルトの名無しさん:2006/10/19(木) 19:09:22
>>640
enum は現行世代だから。
644デフォルトの名無しさん:2006/10/19(木) 21:21:44
まずは、>>640は何がいいのか聞いてからじゃないか?
645デフォルトの名無しさん:2006/10/20(金) 00:21:43
オレは640じゃないが。。

むしろクラスらしくextendできるようにしてほしい。
何か理由があるんだろうが。
646デフォルトの名無しさん:2006/10/20(金) 00:27:11
一意インスタンスが継承できちゃあかんでしょ
647デフォルトの名無しさん:2006/10/20(金) 00:30:57
enum の話続けたいなら、そろそろ現世代スレ行ってやってくんないかな?

現世代Javaの動向 1
http://pc8.2ch.net/test/read.cgi/tech/1150286189/
648デフォルトの名無しさん:2006/10/20(金) 09:24:31
649デフォルトの名無しさん:2006/10/20(金) 12:30:26
>>648
このスレ的には、そっちよりは
http://d.hatena.ne.jp/sumii/20060928/1159403268
の方が問題っぽいな。次世代じゃないけど。

B#compareTo(B) が override なのか overload なのかがわからん。
言語仕様みてみたけど、subsignature の説明で使われてる
the erasure of the signature って部分の厳密な意味がわからんので。
@Override つけると蹴られるので、コンパイラは overload と解釈してるっぽい。

個人的には言語仕様のミスなんじゃないかと思うんだが……
650デフォルトの名無しさん:2006/10/20(金) 12:46:05
おいおい、お前…
651デフォルトの名無しさん:2006/10/20(金) 13:13:42
>>645
できるはずだが、できなくなったのか?
652デフォルトの名無しさん:2006/10/20(金) 13:21:53
5.0 の @Override ってスーパークラスで定義されたメソッドを override してる場合しか効かないのか。

つまり
interface A { void m(); }
class B implements A { @Override public void m(){} }
は蹴られる、と。 6.0 では この振る舞いは変更されてるけど、
ドキュメントの方は変更無し……
653デフォルトの名無しさん:2006/10/20(金) 13:24:49
>>651
元から出来ないよ。

8.1.4 Superclasses and Subclasses
http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.1.4
> It is a compile-time error if the ClassType names the class Enum or any invocation of it.
654デフォルトの名無しさん:2006/10/20(金) 13:43:25
toStringとかオーバーライドできなかったっけ?
655デフォルトの名無しさん:2006/10/20(金) 14:42:00
>>649
調べてみたけど、

8.4.8.3 Requirements in Overriding and Hiding
http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.8.3
> It is a compile time error if a type declaration T has a member method m1 and there exists
> a method m2 declared in T or a supertype of T such that all of the following conditions hold:
>
> ・m1 and m2 have the same name.
> ・m2 is accessible from T.
> ・The signature of m1 is not a subsignature (§8.4.2) of the signature of m2.
> ・m1 or some method m1 overrides (directly or indirectly) has the same erasure
>  as m2 or some method m2 overrides (directly or indirectly).

・B#compareTo(B) と A#compareTo(Object) は同じ名前。
・A#compareTo(Object) は B からアクセス可能
・B#compareTo(B) は A#compareTo(Object) の subsignature じゃない(たぶん)
・B#compareTo(B) が実装してる Comparable<T>#compareTo(T) と
 A#compareTo(Object) は same erasure。

なのでコンパイラがエラー吐かないのはバグなのかも?
656デフォルトの名無しさん:2006/10/20(金) 15:13:03
>>654 出来ないよ
657デフォルトの名無しさん:2006/10/20(金) 15:26:24
>>654
enum E{ a{ public String toString(){ return "overriden toString"; } } }
とかできるけど、extends java.lang.Enum できるかとは全く関係ないと思うぞ。
658デフォルトの名無しさん:2006/10/20(金) 15:38:42
関係あると思うよ

そもそもenumは列挙定数なのでポリモーフィズムが意味ない
static intの代わりと考えればわかりやすい

そして宣言時の拡張は意味がある
インターフェースを付け加えたりすることが可能

switchでenumの初期実装がifだったんだからそろそろプリミティブ以外も
switch対応してほしいな
そっちのほうがよっぽどeod
クラスを入れた場合はtoString()で分岐くらいいれてもいいのに
659デフォルトの名無しさん:2006/10/20(金) 15:47:43
> static intの代わりと考えればわかりやすい
それはそれで C の enum に毒された発想のような。
ってか、「関係がある」という説明になってないし。

> switchでenumの初期実装がifだったんだから
それ、記憶違いとか見間違いじゃなくて?
660デフォルトの名無しさん:2006/10/20(金) 16:02:21
>>658
> クラスを入れた場合はtoString()で分岐くらいいれてもいいのに
そこは普通 equals() だろ。

どーゆーセンスしとんだ?
661デフォルトの名無しさん:2006/10/21(土) 04:20:31
|-`).。oO(・・・・・・static intの代わり以上に便利に使えるはずなんだがなぁ・・・)
662デフォルトの名無しさん:2006/10/21(土) 16:09:21
>>659
> > switchでenumの初期実装がifだったんだから
> それ、記憶違いとか見間違いじゃなくて?
もしくは、case の数やらバイトコードのアラインの関係で
tableswitch や lookupswitch 使ってないだけだったりして。
663デフォルトの名無しさん:2006/10/21(土) 16:16:21
664デフォルトの名無しさん:2006/10/21(土) 16:57:22
if文って…… せめて if_acmpeq とか言えよ。
665デフォルトの名無しさん:2006/10/21(土) 18:19:45
「せめて○○って言えよ」系のレスがきもくなかった試しがない。
if文で結構。分かりやすい。
666デフォルトの名無しさん:2006/10/21(土) 18:23:56
>if文って…… せめて if_acmpeq とか言えよ。
>if文で結構。分かりやすい。

どっちもどっちだな
667デフォルトの名無しさん:2006/10/21(土) 18:39:16
どっちでもかまわんが>>659が間違いってのが正解
668デフォルトの名無しさん:2006/10/21(土) 18:42:17
なんかどっかの図だと5.0から6への実行性能向上が、
1.4から5.0への実行性能向上より大きいんだけど
これってSUNの捏造?
669デフォルトの名無しさん:2006/10/21(土) 18:48:45
5.0は1.4からほとんど速度アップしてないからな
6で大きく変わってもおかしくはない
670デフォルトの名無しさん:2006/10/21(土) 19:04:46
>>669
1.4から4ではGC周りが結構改善されてて個人的には1.4に比べてだいぶ助かってる
デスクトップ用途も結構パフォーマンス上がってたんだが
まぁ、サーバ用途に比べたら差がなかったかもな

6は・・・1.4→5よりも俺的には衝撃少ないかな
それというのも、リリース前からずっと試せてるし・・・
速度よりもデスクトップ用途の機能増の方が注目かな
671デフォルトの名無しさん:2006/10/21(土) 19:15:26
GCの多少の性能アップだけは俺もよかったと思うけど
ベンチにその結果がでてくるかというと微妙だな

ただ、5.0はコンカレントAPIとか拡張構文とか便利だしもう1.4にはもどれんわ
ListとかMapとかでてくるとソースみないと中身がわからないというのが非常に困る

6はJava2DがWindows以外でやっとアクセラレーションがきくというから期待している
Windows版は変わってない気がするが
672デフォルトの名無しさん:2006/10/21(土) 19:18:03
ベンチにでなくていいよ、GCは、アレは実行速度を速くするものじゃなくて
遅くしない、止めないための仕組みだから
どうも間違って期待してる人がいるようで・・・・
673デフォルトの名無しさん:2006/10/21(土) 19:35:46
>>668
6.0 から入るとかいうエスケープ解析で
最適化しやすいコードで比較した場合の図だったんじゃね?
674デフォルトの名無しさん:2006/10/21(土) 19:36:46
>>667
>>659の前半は間違ってない
675デフォルトの名無しさん:2006/10/21(土) 20:00:35
>>672
GC時間が長ければ影響する
結果GCが最適化されていれば早くなる

5.0からはインクリメンタル指定がコンカレントGCなんだが、これかなりスループットさがるんだよね
ずっと通常の世代別GC以外はチューニングがイマイチなのはなんとかならんのかねぇ
コンカレントGCにしないとスループットよりレスポンスが重要なゲーム関係がイマイチだし

そもそもGCは場所によって利き方をコントロールさせてほしい
このメソッドだとスループットが必要、このメソッドはレスポンスが必要とかあるんだから
ひとつで何とかしようとすること自体が無理

あとSystemGCは実際にSunの実装としてフルGCがはいるが、新世代だけのGCとかも
コントロールできるようにしてほしいな
このへんは実装依存になるからアノテーションでヒントを与えるとかそういう感じで
676デフォルトの名無しさん:2006/10/21(土) 20:04:17
JavaOne2005のときと違って何故か6の性能が格段に上がっている謎
ttp://sdc.sun.co.jp/news/2006/06/images/j1r-perf-specjbb.jpg
677デフォルトの名無しさん:2006/10/21(土) 20:28:04
>>675
確かにGCにヒント出せると助かるなぁ
678デフォルトの名無しさん:2006/10/21(土) 20:28:55
>>674
あれはintがいいとかじゃなくてstaticだというところをアピールしたかっただけ
intなのは1.4までの列挙に使われてたというのをあらわしている
しかしEnumMapのコンストラクタはどうにかならなかったのかねぇ

>>676
2005年から2006年になってチューニングが進んだというのは考えられるが
SPECjbb2000というのが気になるな

非現実なコードだったりして当時から存在意義を問われたベンチだったのだが
2005は大幅に改善されたが5.0以上が対象だったからということなんだろうけどね
679デフォルトの名無しさん:2006/10/21(土) 20:47:12
そろそろ秒読みだと思うけど、6ってまだ?
680デフォルトの名無しさん:2006/10/21(土) 20:53:52
>>678
> あれはintがいいとかじゃなくてstaticだというところをアピールしたかっただけ
それなら必要なのは static の他に final だろ。int よりは。
681デフォルトの名無しさん:2006/10/21(土) 20:54:34
682デフォルトの名無しさん:2006/10/21(土) 20:56:10
>>681 おお!
683デフォルトの名無しさん:2006/10/21(土) 22:02:20
http://journal.mycom.co.jp/news/2006/10/21/342.html
JSR-277のEDR期間だったのでドラフトにざっと目を通してみた。
これ、すでにJavaME向けに通過してるJSR-232やOSGiの車輪の再発明
しちゃったって感はやっぱあるなあ。前回の投票時のBEAとIBMのコメントは
実質無視ってわけか。
684デフォルトの名無しさん:2006/10/22(日) 01:16:09
>>645
おいおい、TypeSafeの意味がねえじゃねえか。
不変クラスはfinal にしてこそ、価値がある。
685デフォルトの名無しさん:2006/10/22(日) 01:17:41
>>648
トラックバック:http://d.hatena.ne.jp/sumii/20060928/1159394568

東京大学教養課程の第一プログラミング言語がRubyに
http://d.hatena.ne.jp/sumii/20060928/1159394568

型変換に悩まなくて済む分、VB厨みたいな馬鹿を東大から
量産しそうだな
686デフォルトの名無しさん:2006/10/22(日) 01:18:45
JavaとRubyと本の数を比較するとJavaの方が圧倒的だろ。
687デフォルトの名無しさん:2006/10/22(日) 01:20:10
つーか、東大といっても文系馬鹿の連中のための課程かい。
文系東大卒は堀江被告みたいな馬鹿ばかりなのでどうでもいいや
688デフォルトの名無しさん:2006/10/22(日) 01:22:54
>>685
Ruby も良い言語だし、良いんじゃない?

ってか、言語論争やりたきゃ他所でやれ。二度と帰ってくるな。
689デフォルトの名無しさん:2006/10/22(日) 01:23:53
そいうのは、マ板でよろしく ( ´∀`)つ
690デフォルトの名無しさん:2006/10/22(日) 01:59:06
JRubyとかへの投資もされてるし、JavaとRubyは別に争う言語じゃねーよ。
691デフォルトの名無しさん:2006/10/22(日) 08:56:59
GCの改善はそれはそれでやってもらっていいのだが、GCの発生自体は
制御できないから、やっぱり何らかの明示的なメモリブロックの破棄を
サポートして欲しいな。
デメリットは、リファレンスのテストだけじゃそのリファレンスが有効かどうか
判断できなくなるというのがあるけど、free()使いたい香具師には問題ないよね?
どうせならリファレンスカウンタを併用してもいいし。
692デフォルトの名無しさん:2006/10/22(日) 09:58:59
あまりプログラムに詳しくない人に説明するとき

Perl → Mixi、はてな、Livedoor
PHP → Yahoo!

とかわかりやすい採用事例があるのですが、
Javaは特に思いつかないので困ってます。
次世代Javaではマーケティング面での戦略は進歩しますか?
693デフォルトの名無しさん:2006/10/22(日) 11:29:42
マーケティング云々以前に、
なんで採用事例がないのか考えてみるべきだろう。
言語仕様のせいじゃないわけだが。
694デフォルトの名無しさん:2006/10/22(日) 11:36:25
言語仕様は優れていても、運用環境などがダメってこと?
695デフォルトの名無しさん:2006/10/22(日) 11:38:30
楽天もPHPか。
696デフォルトの名無しさん:2006/10/22(日) 11:41:31
そしてAmazonはPerlか…

mustangあたりでどこか大手がJavaに乗り換えたりしないものだろうか。
697デフォルトの名無しさん:2006/10/22(日) 12:42:04
あまり詳しくない人相手の説明ならケータイJavaでいいんでないの。
698デフォルトの名無しさん:2006/10/22(日) 13:06:07
ANAとかWeb2.0と無関係な大企業では古くから広く利用されています。
だと微妙だよな。
699デフォルトの名無しさん:2006/10/22(日) 13:33:10
確か既にgoogleではJavaが使われてるんじゃなかったっけ?
700デフォルトの名無しさん:2006/10/22(日) 13:33:43
あ、正確に言うとJava「も」使われてるってことね
701デフォルトの名無しさん:2006/10/22(日) 13:46:58
大手とか勘違いしてる奴が要るけど、Java使って行うサービスってほどでもないんだろ。
結局同じ結果なのに高くつくでしょ?
新興企業・ベンチャー企業で金持ってないところでは、安い人件費で人海戦術が最強ってこと。
702デフォルトの名無しさん:2006/10/22(日) 13:48:52
GMailやAdSenseな
あとMMOのサーバに使ってるとこもある
デスクトップだとDBやCADなんかの
フロントエンドに使われてるな。
703デフォルトの名無しさん:2006/10/22(日) 14:12:39
>>701
新興企業・ベンチャー企業にJavaはオーバースペックってこと?

そのへん解決するためにJavaEE5からはEoDを推し進めてるんじゃないの?
704デフォルトの名無しさん:2006/10/22(日) 14:14:53
Javaがオーバースペックっていうわけじゃなくて人件費の問題じゃないかと。。。
705デフォルトの名無しさん:2006/10/22(日) 14:16:50
TomcatとPHPとで生産性が変わるとは思えないんだけどどうなんかね。
706デフォルトの名無しさん:2006/10/22(日) 14:19:45
SUNはNetBeans+JSFでポトペタ簡単開発を目指してるみたいだけど、
perl、phpみたいに気軽に利用されるようになるとは思えない。
707デフォルトの名無しさん:2006/10/22(日) 14:29:01
ロードバランサで数増やすとして
PHPとJavaとでどっちが得できるかだな。
708デフォルトの名無しさん:2006/10/22(日) 14:31:14
>>691
GCが発生してもいいタイミングと発生するとだめなタイミングがあるからね
それに発生タイミングはコントロールは出来るよ

いつおきるかわからない0.1msのGCより、空きがなくならない限りGCがおこらないように
コントロールできるけど5msかかるGCだと後者のほうがゲームとかで非常に使いやすい
スループットは大幅に下がるけどそういうもの

ページフリッピング発行直前でGCがおこると1ms未満だろうが今回の垂直同期とりこぼす可能性はあるわけで
709デフォルトの名無しさん:2006/10/22(日) 14:34:06
比較条件は速度や負荷だけ?
開発(コード書き)のし易さ、メンテナンス・保守のし易さなんかはどうなのさ?

PerlやPHPでオブジェクト指向なんて泥沼だと思うけど。
710デフォルトの名無しさん:2006/10/22(日) 14:37:42
>>705
PHPとの比較でいいのならJSPだけでいいから難易度は同じ
Javaのほうがロジックが絡むとIDEの関係でかなり楽にコードが書けるからなぁ

>>706
気軽に開発できるだけならJSPだけでいいんじゃね?
DreamWeaverでデザインできるし

動的コンテンツ程度の気構えでいいのかシステム開発として
将来的なメンテも含めてどうかという視点での選択だけでは?
711デフォルトの名無しさん:2006/10/22(日) 14:40:02
はいはい。「次世代のマーケティング」と関係ない
現世代のマーケティング関連(よーするに言語論争と大差ないもの)は他所でやってね。
712デフォルトの名無しさん:2006/10/22(日) 14:51:21
ttp://www.javainthebox.net/laboratory/JavaSE6/scripting/scripting.html

このへんのが上手くいけばPerlやPHPが得意な分野で対抗できるんじゃないかな?
713デフォルトの名無しさん:2006/10/22(日) 15:08:04
>>708
GCを実行しない・指定期間は止めておくクラスとかメソッドってなかったか?
ん、あったか?なければ、コミュニティーでvoteしておくといいよ。
GCが発生して欲しくないのは、よく分かる。
714デフォルトの名無しさん:2006/10/22(日) 15:11:46
>>712
例えば一年程度しか使わないプロジェクトにとっては、
それでも魅力はないし、余計なコストもかかるからいらないんだよ。
面倒な事したいんだね、君は。
715デフォルトの名無しさん:2006/10/22(日) 15:56:49
>>691
個人的には、GCにメモリ管理を任せるメモリと
自分でリソース管理ができるメモリってのが使えればいいかな?
パフォーマンスが気になる部分では、そのメモリを使って発生オブジェクトから
GCを起こさせないようにする、と。

全部が全部管理しなきゃだめだから、free()が面倒なんであって
自分で気にしてる部分だけってことにできればねぇ・・・
無駄な使い捨てオブジェクトでGCの手間を増やす事も無くなる
716デフォルトの名無しさん:2006/10/22(日) 16:11:08
現行GCはメモリの空きがなくなったときに発生&ヒープ拡張
ならば使用メモリ量が把握できてるならゲームだったら
たとえば秒60回新世代専用のGCが発生させる手段があればいいだけ
FullGCを実行させる手段があるんだし可能だろう

その場合スレッショルドが問題となるかもしれないがそもそも
こういった用途ではスループットが絶対ではないので世代別
である必要がなかったりする
717デフォルトの名無しさん:2006/10/22(日) 18:43:43
>>715
それは違うな。C++でメモリ管理が行き届いたライブラリーを作って、
それを組み合わせれば、結局メモリ管理云々の話は出てこないはずだ。
つまり、君は大きく考えすぎているだけじゃないか。
718デフォルトの名無しさん:2006/10/22(日) 19:09:17
FPSコントロール用の機能があってもいい気がするんだけどね。
用途が狭いからむりかな。
719デフォルトの名無しさん:2006/10/22(日) 19:31:21
なんだかわからんが、途中で止まったりしなくて一定の速度で動くように
したいなら...

つ Javolution
ttp://journal.mycom.co.jp/news/2006/09/20/343.html
ttp://javolution.org/

既存ライブラリとの併用にはちょっと工夫が必要なようだが(FAQ参照)、
オブジェクトをdirect buffer上に確保してリサイクルすることでGCを起動さ
せないようになってるみたい。
720デフォルトの名無しさん:2006/10/22(日) 20:18:09
>>688
いや、Javaは言語ではなくプラットフォームだから
それを解ってない香具師がマ板やム板に未だにいるのが不思議
721デフォルトの名無しさん:2006/10/22(日) 20:18:37
>>690
ますます東大の価値を下げる結果になりかねないかもしれぬ
722デフォルトの名無しさん:2006/10/22(日) 20:20:55
>>692
> あまりプログラムに詳しくない人に説明するとき
> Perl → Mixi、はてな、Livedoor
> PHP → Yahoo!
> とかわかりやすい採用事例があるのですが、
> Javaは特に思いつかないので困ってます。
> 次世代Javaではマーケティング面での戦略は進歩しますか?

酷い喩えだ。

Java → 基幹系業務、金融系、各種オンライントレーディングサイト(例:イートレード証券)、
      オンラインバンキングサイト(例:三井住友ダイレクト)、組み込み系(携帯電話)

などなど
と説明すればいい。
723デフォルトの名無しさん:2006/10/22(日) 20:21:10
>>693
採用事例がないってことはないだろ
724デフォルトの名無しさん:2006/10/22(日) 20:21:25
>>694
それも違う
725デフォルトの名無しさん:2006/10/22(日) 20:22:01
>>695
だが楽天証券はJava。
PHPを使ってるとこは
アクセスが殺到するところや、
クリティカルでない単純な処理をしているところ

726デフォルトの名無しさん:2006/10/22(日) 20:22:23
>>697
どうせなら、火星探査機とか銀行とかいったほうがましだと思う
727デフォルトの名無しさん:2006/10/22(日) 20:23:36
>>696
Amazon APIの中にはJavaが使われているところがあったりする。
もちろんGoogle APIも。

緻密な電子商取引が関わるところではJavaが使われると考えればいい。
昔はCOBOLが使われていたところをJavaにとってかわる、みたいな。




728デフォルトの名無しさん:2006/10/22(日) 20:24:19
>>720
Javaは言語だが、何が不思議なんだ?
729デフォルトの名無しさん:2006/10/22(日) 20:24:29
>>701
それだったらPHPだね。
PHP開発なら安い人件費で済ませることができる。
Javaでやると、Tomcatのセットアップやメモリ増設など、高くつく

730デフォルトの名無しさん:2006/10/22(日) 20:28:00
>>721
お前は東大じゃないだろ。余計な心配するな。
ところで、仕事は満足してるか?
731デフォルトの名無しさん:2006/10/22(日) 20:28:52
>>703
それも誤解を招く意見だ。
Sunは大手企業にJ2EEを普及させてきたという経緯はあるが。

むしろ、単なる検索するだけのサイトや操作に失敗しても
大して支障を来さないサービスなどにはJavaを使うには
オーバースペックということ。
失敗は許されない処理を、ミッションクリティカルなところに
Javaは適している。オンラインショッピングやオークション、
証券取引など。

誤発注なんて許されないからな。
検索エンジンが間違った検索結果を返してももう一度やり直せば
済むが、オンライントレーディングサービスが間違って指し値を指定したり
手持ち金も無いのに信用取引で間違って大量に株を大量購入するような
ことがおきればとんでもないことになる。
「間違ってもやり直せばいい」なんて考えは許されない。そんなところに
Javaが使われる。

732デフォルトの名無しさん:2006/10/22(日) 20:28:56
PHPが使われる大きな理由は
サーバー用のメモリは高いってとこにあるのかもシレンな
733デフォルトの名無しさん:2006/10/22(日) 20:30:35
>>709
PerlはPerl6が出れば少しは良くなるだろう。
それでもJavaには及ばないとは思うが。
PHPは名前空間が使えない時点で即座にアウト。

どちらも、オンライントレーディングサイトには
使って欲しくない言語だな
734デフォルトの名無しさん:2006/10/22(日) 20:33:56
>>710
> >>705
> PHPとの比較でいいのならJSPだけでいいから難易度は同じ

JSPのはうは型に厳しいという難易度がある、が、
カスタムタグライブラリやStrutsなどと併用するとなると、さらに難易度は上がる。


> >>706
> 気軽に開発できるだけならJSPだけでいいんじゃね?
考えが甘過ぎ。JSPがどれだけメモリを喰うと思っているんだ。
レンタルサーバでJSPやServletが使えるところがPHPやPerlなどと
比べて少ない理由をよく考えてみろ。


> DreamWeaverでデザインできるし
DWやAptanaなどはStruts向けに作られていないからそれも
どうかと思うが。DWだけではある程度までしか柔軟性を期待できない。

735デフォルトの名無しさん:2006/10/22(日) 20:35:18
>>712
それはどうかね。それはJavaでJNIを通してC/C++を使えるから
C/C++に劣らない速度を期待できるという考えに騙されてることに似ている。
736デフォルトの名無しさん:2006/10/22(日) 20:36:14
>>691
> GCの改善はそれはそれでやってもらっていいのだが、GCの発生自体は
> 制御できないから、やっぱり何らかの明示的なメモリブロックの破棄を
> サポートして欲しいな。

java.lang.ref.SoftReferenceだけじゃ物足りないかな?
737デフォルトの名無しさん:2006/10/22(日) 20:37:23
>>713
まさにjava.lang.ref
738デフォルトの名無しさん:2006/10/22(日) 20:38:13
>>712
それをPHPやPerl替わりに利用することに期待しない方がいいと思うぞ。
むしろ、お遊びやAjaxとの連携に使えるか、
ちょっとしたちっちゃなコードを埋め込みたいときに使えると考えた方が
楽じゃないかな
739デフォルトの名無しさん:2006/10/22(日) 20:39:04
>>728
Sunの説明では「Java」といっても言語という意味のほかに
プラットフォームという意味も含めているみたいだが

740デフォルトの名無しさん:2006/10/22(日) 20:40:00
>>730
東大でなくても、東大卒を信用できなくなるのは
がっくりじゃないか。あいつは東大だからこれができるだろう、と
思って期待してみたら全く仕事ができなくてがっかりするだろう
741デフォルトの名無しさん:2006/10/22(日) 20:40:53
>>732
メモリが少ないだけでなく馬鹿でも手軽に扱える、
Tomcatをインストールする必要がない、
レンタルサーバで導入しても複数人に個人用サイトを
運営させるのが楽ってのがある
742デフォルトの名無しさん:2006/10/22(日) 20:43:39
>>732
PHPが使われるのは敷居が低いからだと思うよ。
たとえば、画面にちょっとカウンタを表示したいとかだったら、PHPだったら
HTMLに直接PHP埋め込んで、HTML前後にタグを付けるだけで、ほれ、
PHPスクリプトできあがり、だからな。たしかに始めるにはお手軽だ。

敷居が低いから人が集まるし、敷居が低いから値段も安い。「それ、PHPだったら
いくらですか?」とかいわれるんだよ。もちろん、ビジネスだから安いほうがいいからね。

ところがHTMLに大量のロジックが混ざったようなHTMLだかコードだかわからないもの
の保守でいろんなところが混乱しているのが現状かな。いまでこそSmartyとかの採用が
進んでるんでマシだけど、「HTMLに直接書かないんだったらRubyかPythonでいいじゃん」
とか言われつつある。

正直、いま若手新人で「とりあえずPHPの仕事があるからPHPやっとけ」と言われている
人たちがかわいそすぎる。
743デフォルトの名無しさん:2006/10/22(日) 20:43:54
>>734
型に厳しいのは難易度低下だと思うが
実行前にチェックが出来るというのは大きい
ステップ実行とかも容易だしね

そもそもPHPとの比較ならStrutsは使わないという前提
カスタムタグなんていうのもループ以外使わない
それにDWでのJSP開発は難易度高くはないぞ
Tomcatと連携できるようになったバージョンからはね

>>737
それ使えないだろ
GCはしてほしいのだよ
ただ、タイミングをコントロールしたいだけ
744デフォルトの名無しさん:2006/10/22(日) 20:44:30
Javaは言語、
JVMはプラットフォーム

なら全然納得なんだけど。
745デフォルトの名無しさん:2006/10/22(日) 20:45:05
>>734
>JSPのはうは型に厳しいという難易度がある、が、

型に厳しいと難易度高いのか?
746デフォルトの名無しさん:2006/10/22(日) 20:59:39
そんなことより、Java製のブログやWikiを探してるんだが、
MovableTypeやPukiwikiやMediaWikiに匹敵するものが見つからない


なんかいいものないかねえ

とりあえずブログのほうがこんなのがあったみたいだ

人力検索はてな - JAVAで作られたフリーのブログサイト構築ソフトを教えて下さい。無ければPHP,Perlでもいいです。
http://q.hatena.ne.jp/1107748399
747デフォルトの名無しさん:2006/10/22(日) 21:10:20
>>746
ちょっとぐぐったけどこんなのがあるみたいよ
The Roller Weblogger
Blojsom
MapleBlog
Blog
JSP Blog
SnipSnap
Pebble
Blogunity
DLOG4J

JSPWiki
DevWiki
VeryQuickWiki
Chiki
Snip Snap
FitNesse
UseModj
Friki
yaWiki
Platypus Wiki
XWiki
ButorWiki
JBossWiki
Elsie Wiki
JAMWiki


748デフォルトの名無しさん:2006/10/22(日) 21:17:52
Blogのほうがあんたのリンク先にある回答がほぼ正解じゃねえの?

Javaだったらふつうにblojsomがあるんじゃん、と思うんだが。
ttp://wiki.blojsom.com/wiki/display/blojsom/About+blojsom

Movable Typeに匹敵するほど有名だというつもりはないけど、
それでも超有名といってもいいと思うんだが。

まあ名前から分かる通り、bloxsomの影響を強く受けてるブログ
生成プログラム。

「Roller」
ttp://rollerweblogger.org/

もJavaでは有名だし、Apache入り寸前だぞ?
749デフォルトの名無しさん:2006/10/22(日) 21:39:40
>>746
純粋なWikiやBlogとは違うっぽいけどTuigwaaとかも結構面白そうだぞ。
DBも作っていけるぽい。
750デフォルトの名無しさん:2006/10/22(日) 21:43:58
>>731 それは作るプログラムや設計の話であって、JavaかPHPかどれを採用するかの問題と違うと思わないか?
751デフォルトの名無しさん:2006/10/22(日) 21:52:30
>>740
東大卒を信用するとか信用しないとか、君はちょっと頭おかしいんじゃないか?
大学まで(人によっては高校まで?)の日本国教育課程を難無くこなしてきた
だけ、なにか特別な思いでもあるのか?
東大卒よりも、司法試験合格や国家一種や税理士とか持ってるほうが
よっぽど役に立つはずだろう。
752デフォルトの名無しさん:2006/10/22(日) 21:58:59
東大卒で30代になっても営業やってる奴は営業が大好きなんだろうな。
もう一回東大受験した方がいいと思うがな。
753デフォルトの名無しさん:2006/10/22(日) 22:19:13
>>736-737
主プログラムの方で「ちょっともたつく」原因がGCが作動するからなんだけど。
java.lang.refでGCの起動(作動)を指定時間止める事は出来たか?
754デフォルトの名無しさん:2006/10/22(日) 22:41:28
> java.lang.refでGCの起動(作動)を指定時間止める事は出来たか?
無理
755デフォルトの名無しさん:2006/10/22(日) 22:49:29
GCに関してはゲーム関係のスレでよくでるよね
Sunはいつおきるかわからない0.1msのGCのほうが
指定可能な5msのGCよりすばらしいと考えてるのだろうか
756デフォルトの名無しさん:2006/10/22(日) 23:00:29
だから「GCの起動(作動)を指定時間止める」要望を
次世代で実現してくれって、英語のサイトに行って、voteして来いってこと。
理由は>>755でいいでしょ?
757デフォルトの名無しさん:2006/10/22(日) 23:17:46
>>756
今、BugDatabase 止まってるみたいだけど。メンテ中だっけ?
欲しい人は report 頑張ってね。
1票余ってるから脈ありそうだったら vote ぐらいはするからさ。

あと GCを指定時間止める、ってのは大雑把で使い勝手悪いんじゃないかと思ったり。
758デフォルトの名無しさん:2006/10/22(日) 23:28:24
gcのスレッドをsleepしちゃえばよいんじゃないの?
できないんだっけ?
759デフォルトの名無しさん:2006/10/22(日) 23:38:32
>>757
普通の用途やGCを気にしてない人はGCを指定時間止めたりしないから、
特定用途(例えばゲームとかアニメーションとか)で、それも開始し忘れたり
キチガイなこと(指定時間が適当)やるなら自己責任でやっててオチだろ。
760デフォルトの名無しさん:2006/10/22(日) 23:40:35
GCを一定時間とめるじゃなくて
メモリに空き容量があるうちでもGCを発行させたいが正解だな
761デフォルトの名無しさん:2006/10/22(日) 23:42:44
>>760 それだと、>>755のように一瞬でもGCが起動する可能性があるから、意味が違うと思う。
762デフォルトの名無しさん:2006/10/22(日) 23:47:23
>>755なんだがそれでいいのよ

1フレームで1回GCはしらせればその間にGCがはいることはない
もちろんその間にメモリが足りなければ入るべきだし
普通はどんなアプリであれメモリ使用量を把握するのは普通なので
そんなあふぉなことはおきない
763デフォルトの名無しさん:2006/10/22(日) 23:53:32
ココは次世代スレだから、GC云々の話は要望・改善じゃないのか?
それとも現世代スレで続けるのか?
764デフォルトの名無しさん:2006/10/23(月) 00:21:28
>>747-749
おうサンクス。かなりの種類があるもんだな。

今、Perl + PHP製のMovableTypeが日本国内で優勢で
アメリカではMovableTypeの座を首位から奪った、
PHP製のWordPressが、優勢で
どうしようか迷っていたところだったんだ。
MovableTypeはエントリ数が多く、あるプラグインを入れると
再構築に時間がかかり糞重いので、
MovableType独自のタグも必要ない、
再構築の手間を省ける軽量のWordPressが勢力を拡大しているようだ。

Eclipseのようにプラグインが豊富にあれば、即座に
Java製ブログツールに飛びつくぞ。

そして、MTGoogleMaps, アフィリエイトサポート、
MTAmazon, MTPhotoGallery, MTBlackList, MTCollate, MTCompare,
MT-ISBN, MTWidgetManagerm MTPaginate, GoogleSearch, MTMacro,
MTIncludePlus, TinyMCE for MT, StyleCatcher, Template Baclup and Refresh,
OpenID Comment, などの各種MovableTypeプラグイン
に相当するプラグインや「はてなダイアリーキーワード」に
相当する機能、カテゴリ管理、タグクラウド、アクセス解析、moblog,
WordPressにも備わっている投稿スラッグ、それからテンプレート編集機能、
トラックバックスパム管理機能、それにAjaxによって管理しやすくなっている機能、
TypeKey認証またはOpenID認証、プラグイン開発支援、
などの機能がJava製ブログツールにあれば即座に飛びつく。




765デフォルトの名無しさん:2006/10/23(月) 00:32:07
そりゃ飛びつくだろうさ。
766デフォルトの名無しさん:2006/10/23(月) 00:39:21
>>764
完全にスレ違いなんだけど・・・
他所でやってくれんかね?
767デフォルトの名無しさん:2006/10/23(月) 11:44:37
Mixi、はてな、Livedoorがperlなのは基本的なアイデアは10年位前だからだろ
最近考え付いたんじゃなくて10年位前のWeb黎明期にcgiから始めた奴らが中心にいるからだな
そこで、JavaをみるとIBMを中心に大手ベンダーがたむろしてるからその線で行くと利益むしりとられるただそれだけの話
プラットフォームとしては貧弱でも生産性がたいしてひどくなかったってのが正解
まちがっても作りづれえけど抱え込みの為には仕方が無かったなんて事言うわけには行かない
Yahooがphpなのはフロントエンドは出来る限り生産性を高めたいが、辞められても他じゃ使えない言語が良いって感じ
768デフォルトの名無しさん:2006/10/23(月) 14:51:44
東大の文三なら適当な奴が多いから変なのいるだろうな。
文一、文二はそうでもないけど…
769デフォルトの名無しさん:2006/10/23(月) 19:15:38
人は学歴を見るけどコンピュータは見ないからなー
学歴高いんだったら人系の仕事についた方がいいよ
770デフォルトの名無しさん:2006/10/23(月) 19:32:54
>>767
> Mixi、はてな、Livedoorがperlなのは基本的なアイデアは10年位前だからだろ

そのなかでまともそうなのは「はてな」だけだな。Mixiは上場してもそこいらのブログツールと
比べると使い勝手がイマイチだし、Livedoorなんか問題外。Sledgeなんて糞役に立たんライブラリ
開発して大した技術も無い粉飾犯罪企業が作ったものなんてその程度。
最近上場した会社といえばドリコムとかいう会社もそうだなサーバーエージェントの都会コンプのミーハー社長が
株を大量購入したはいいが、BlogPeopleやテクノラティなどのサービスと比べるとあまりにも
劣る点が多すぎ。


> 最近考え付いたんじゃなくて10年位前のWeb黎明期にcgiから始めた奴らが中心にいるからだな

ネットサーフレスキューやKend Webを思い出すじゃねえか。確かにあのころはServletなんてまだ
存在しなかったからperlしかしらない堀江被告みたいな古い考え方に捕らわれた馬鹿が
暴れて日本国内でIT業界に対する印象が悪くなってしまったんだな。テレビしか見てない馬鹿は
IT企業関係者=堀江や村上みたいな変な奴だと勘違いしているし。

771デフォルトの名無しさん:2006/10/23(月) 19:35:05
>>768
成績が悪い堀江被告が宗教学科になってしまったために
がっかりして東大を中退したという件を思い出した。

いま法学部の奴が世の中を牛耳ってる感じだな。
どこの会社の社長も法学部出身が多いし。
技術系出身が少ない。アメリカ人から見るとあまりにも珍しすぎるし
不思議すぎる。ああいう酷い状態が続いているのは日本だけだろうね



772デフォルトの名無しさん:2006/10/23(月) 20:05:49
>>771
法学部じゃなければ、牛耳るのはどの学部出身がよさそうなんだ?
ところで今の君は、技術畑で野良仕事している事に気がついてないだろ。
773デフォルトの名無しさん:2006/10/23(月) 20:13:00
ダライラマみたいな人
774デフォルトの名無しさん:2006/10/24(火) 01:12:14
次世代の話を書け
775デフォルトの名無しさん:2006/10/24(火) 01:27:53
もうOMGのパッケージとかはずしちゃいなYo!
776デフォルトの名無しさん:2006/10/24(火) 01:38:10
>>770のような奴は、周りから嫌われてるんだろうな…
777デフォルトの名無しさん:2006/10/24(火) 10:45:18
>>687
東大工学部だが、
(前期)教養課程は東大の1,2年は全員通る道なので、文系のみに限った話じゃない。

しかし、昨日駒場の教科書販売所にいってみたら、Javaの教科書もあって売り切れてたんだが。
どうも全部が全部Rubyになったという訳ではなさそうだ。
778デフォルトの名無しさん:2006/10/24(火) 10:49:06
連書きスマソ。

というかJavaだったころもプログラミングの講義は必修だったわけじゃないし、必修の「情報基礎」って講義すら学生にはほとんど身に着いていない状況。
(1年の必修の情報基礎では一応Mac OS XのTerminalを触るんだが、シェルのコマンド3年生になったら忘れてる)

JavaからRubyになったから学生の質が下がるとかそういうものではないと思われ。どうせやる人はやるし、やらない人はやらない。
ちなみに漏れは大学のプログラミングの講義でJavaは書きやすい言語だってわかってServlet+JSPとか書き出したクチ。

ただ、JavaよりRubyのほうが学びにくそうな気がするんだが...
779デフォルトの名無しさん:2006/10/24(火) 11:04:47
>>788
東大でプログラミングの基礎みたいなことするならJavaだろうがRubyだろうがどっちでも良いんじゃね
そもそも社会のヒエラルキー的に東大でた人がやるべき事はちがうんだから
仮にも国の最高学府の東大でて底辺なドカティになるのは持っての他だよ
無駄に税金使ってるんじゃねえよって事だ
780デフォルトの名無しさん:2006/10/24(火) 11:17:49
東大は囲碁があるからいいよな。
俺も囲碁やりたかった。
781デフォルトの名無しさん:2006/10/24(火) 11:30:04
東大をちゃんと卒業できた奴は、
研究者か海外大学院に行かないならただの能無し。
上の方で次世代の技術を研究していればよくて、
現世に出てきてしゃしゃり出るなってーの。

>>778東大の理系はみんな優秀だから心配するな。
文3はブランドだけのバカ。家庭教師でもやってろってこと。
ところで、文・理にかかわらず、
お前のようなしゃしゃり出る奴がウザイっていうんじゃないか?
782デフォルトの名無しさん:2006/10/24(火) 11:58:12
優秀かどうかに係わらず、結局は人柄・性格になるんだな…
旧帝大や東大に行っても、おこちゃまな奴多いから
>>751の言うように単なる勉強バカって思われちゃうんだよね。

堀江の話があったけど、堀江のかばん持ちで紹介されて、
起業した指がキモイぐらいに長い奴、あいつ確か工学部?だったけど、
テレビに出てる時点ですでに終わってるって感じ。堀江もそうだが、どこ
にでもああいうキモイのがいるんだと分かったよ。>>770

旧帝大・東大とか仕事は優秀なんだろうが、
それとは関係なく、キモイい奴には近づきたくないのが本音だろうよ。>>751

ところでスレ違いだから、灯台君は、荒らしをするなら違うとところでやってくれ。
いくら灯台でも、スレ違いってことぐらいはわかるよね?>>777
783デフォルトの名無しさん:2006/10/24(火) 12:10:56
学歴ネタは荒れるから、あまりネチネチと突っ込まないように。
784デフォルトの名無しさん:2006/10/24(火) 12:44:53
>>750
そうでもないね。技術的な面やコスト的な面では言語選択は
重要な地位を占めていることにはかわりない。
785デフォルトの名無しさん:2006/10/24(火) 12:47:06
>>772
きみぃ、罵るのもいい加減にしたまえ
786デフォルトの名無しさん:2006/10/24(火) 12:49:51
>>781
> 東大をちゃんと卒業できた奴は、
> 研究者か海外大学院に行かないならただの能無し。

それじゃ、テレビに出ている東大卒はどいつもこいつも能無しってことか
村上ファンドといい堀江豚といい。

787デフォルトの名無しさん:2006/10/24(火) 12:50:32
>>777
> >>687
> 東大工学部だが、

工学部は昔から、人をこきつかうことがないから「頭が悪い」と言われてきた
来たみたいだが、そのことについてどう思う?
788デフォルトの名無しさん:2006/10/24(火) 12:52:19
>>782
> 堀江の話があったけど、堀江のかばん持ちで紹介されて、
> 起業した指がキモイぐらいに長い奴、あいつ確か工学部?だったけど、

あいつって誰だ。それだけじゃわからん。
789デフォルトの名無しさん:2006/10/24(火) 12:54:06
本郷キャンパスを歩いていたら
東大生がiMac弄ってた
790デフォルトの名無しさん:2006/10/24(火) 13:21:25
文に限らず工学部でもこの程度なのかよ…
東大の面汚しというのか、こいつは勉強バカの典型例だったな。
こういう奴と一緒に仕事はしたくないものだ…
君のために「犬小屋」作ってあげるから、おしっこはそこでしてくれるかな?
791デフォルトの名無しさん:2006/10/24(火) 13:28:53
>>785-788
君の育ちが悪いのは良く分かったよ。
灯台出ても君じゃ不幸になることが多そうだ・・
792デフォルトの名無しさん:2006/10/24(火) 13:36:55
はいはい、スレ違い。
高学歴ならちゃんと分かるよね?
793デフォルトの名無しさん:2006/10/24(火) 13:53:41
わかんねーからこんな関係ないスレで愚痴ってんだってば
794デフォルトの名無しさん:2006/10/24(火) 14:03:07
高学歴が口をはさむのは、自分の専門分野だけにしておくように!
こんな当たり前の事は、高学歴ならちゃんと分かるよね?
795デフォルトの名無しさん:2006/10/24(火) 14:27:39
学歴語る奴は自分の専門が身につかなかったからだろ。
ある意味かわいそうな奴だ。
796デフォルトの名無しさん:2006/10/24(火) 14:41:00
マ板いけ
797デフォルトの名無しさん:2006/10/24(火) 14:52:20
>>791
東大出ている奴=育ちが良い
というステレオタイプを持ってると堀江容疑者
みたいなのに騙されるぞ
798デフォルトの名無しさん:2006/10/24(火) 15:10:34
>>797
いいかげんにして欲しいんだけど、ところで君が騙されているんじゃないか?
799デフォルトの名無しさん:2006/10/24(火) 15:14:47
closure の続報

http://www.javac.info/closures-v03.html
http://gafter.blogspot.com/2006/10/closures-for-java-v03.html#links

文法が変わって、FunctionType が復活。
あと、Non-local control flow が削除されたっぽい?
800デフォルトの名無しさん:2006/10/24(火) 15:22:40
>>799
あ、Non-local control flow あるっぽいね。
あと、FunctionType も完全復活ってわけじゃないのか。
801デフォルトの名無しさん:2006/10/24(火) 15:22:47
>>797
「東大出てる奴」じゃなくて「君」の育ちが悪いと>>791は書いてないだろうか。
そして君は、東大工学部の面汚しだし、いつまでも騙されてるしね。
東大にいてもどうもつまんないなら、堀江様のように面白人生を歩むのはどうだ?
まあ所詮、育ちが悪い君ごときじゃガラクタと同じだけどな。
802デフォルトの名無しさん:2006/10/24(火) 15:35:31
どこにいっても弾かれ者っているだろ?
だから、ほっとけよ!
803デフォルトの名無しさん:2006/10/24(火) 15:37:55
だから学歴を出しちゃダメだって。><
みんな過剰反応するんだから。
804デフォルトの名無しさん:2006/10/24(火) 15:50:27
>>803 東大様が来てるだろ、高卒中退のお前は黙ってろ!
805デフォルトの名無しさん:2006/10/24(火) 16:54:34
>>799
メソッド呼び出しと変数アクセス + FunctionType の呼び出しが曖昧になるってのは

> A function type
>  { T0 ... Tn => Tr } throws E0 | ... Em
> is an interface type with a single abstract method
>  Tr invoke(T0 x0, ... Tn xn) throws E0, ... Em;

で解決するのか。{int=>int} f があったとき f(10) じゃなくて f.invoke(10) する、と。
806デフォルトの名無しさん:2006/10/24(火) 17:40:36
>>801は東大だったんだ
807デフォルトの名無しさん:2006/10/24(火) 17:40:57
>>804
実は中卒のほうが高卒より偉かったりして
808デフォルトの名無しさん:2006/10/24(火) 17:41:44
>>801は堀江信者なのかな。わざわざ堀江「様」なんて強調しているし

キモ
809デフォルトの名無しさん:2006/10/24(火) 17:48:53
>>806-808 スレ汚しはもう消えろ。
810デフォルトの名無しさん:2006/10/24(火) 18:04:00
>>807
田中角栄か!
811デフォルトの名無しさん:2006/10/24(火) 21:04:48
外国のトップ大学も東大と同じような感じ?
812デフォルトの名無しさん:2006/10/25(水) 09:34:08
>799
うーん、.class記法が
{int=>int,int} throws Exception1|Exception2.classになるのはかなりキモい。
そして、
{int=>int,int}.class.getInterfaces( )はどうするんだろう?
{int=>int,int} throws Exception1.class
{int=>int,int} throws Exception2.class
{int=>int,int} throws Exception3.class
……
とsuperinterfaceが無限にあるのだが。
813デフォルトの名無しさん:2006/10/25(水) 11:45:44
>>812
> {int=>int,int}
いつの間に多重代入やら複数返値が……
とか言ってみる。

> {int=>int,int} throws Exception1|Exception2.classになるのはかなりキモい。
確かに。

> {int=>int,int}.class.getInterfaces() はどうするんだろう?
普通に長さゼロの配列が戻るんじゃないかと思うけど。
superinterafce が無限にできる理由がわからん。
814デフォルトの名無しさん:2006/10/25(水) 12:00:36
複数返値は、散々BugParadeのコメント欄で議論した記憶があるなぁ
まぁ、結局、will not fixedなわけだが、まぁ、納得した
便利な局面はあることはあるが、バグの温床になりそうだからな
815デフォルトの名無しさん:2006/10/25(水) 14:23:13
>>811
東大は世界規模で見るとランキング300位くらいらしい。
残念だが。20年くらい前だったら東大っていうだけですごかったんだろうけど
規制緩和、国際化の影響で東大のブランドは下がった。
816デフォルトの名無しさん:2006/10/25(水) 14:25:05
>>801は東大生のフリをしてるだけなのかね。
「騙されてる」といってるから
817デフォルトの名無しさん:2006/10/25(水) 14:34:47
       ____
     /_ノ  ヽ、_\
   o゚((●)) ((●))゚o
  /::::::⌒(__人__)⌒::::: \
  |     |r┬-|     |    (⌒)     >>816 ワロスwwwwwwww
  |     | |  |     |   ノ ~.レ-r┐、
  |     | |  |     |  ノ__  | .| | |
  \      `ー'´     /〈 ̄   `-Lλ_レレ
                  ̄`ー‐---‐‐´
818デフォルトの名無しさん:2006/10/25(水) 19:53:20
>>815
白々しいまでの大嘘をよくはけるよなw
819デフォルトの名無しさん:2006/10/25(水) 20:19:52
おこちゃまはお勉強の時間ですよ!!
820デフォルトの名無しさん:2006/10/25(水) 21:12:04
>>801
つーかさ、本気で堀江のこと尊敬してるの?

それヤバイとおもうよ
821デフォルトの名無しさん:2006/10/25(水) 21:12:52
東大はMITにもかなわないのか
822デフォルトの名無しさん:2006/10/25(水) 21:17:51
東大は300位くらいではなく100位くらいだね


東大がそんなに凄かったら留学生なんていない
823デフォルトの名無しさん:2006/10/25(水) 22:50:43
>>820
ヤバイのはお前だな。お前の後ろで誰かが覗いているぞ!
824デフォルトの名無しさん:2006/10/25(水) 23:29:11
>>814
複数返り値があると、バグの温床になるというのが想像つかないんだが、
例えばどんなの?
825デフォルトの名無しさん:2006/10/26(木) 00:19:41
>>823
そういうお前の後で誰かが見ているぜ。

俺は誰に見られても困ることはしていないしな
826デフォルトの名無しさん:2006/10/26(木) 00:20:16
それに堀江信者がヤバイしな
827デフォルトの名無しさん:2006/10/26(木) 01:02:43
東大の価値が下がるのか。
東大よりちょっと低い学歴の香具師にとっては幸なのか不幸なのか
828デフォルトの名無しさん:2006/10/26(木) 01:35:54
東大工学部の一部のヤツはアホなのはよく分かったから、もうやめれ。
829デフォルトの名無しさん:2006/10/26(木) 03:43:06
SoftReferenceは、メモリ効率をキャッシュ効率などに優先させるための機能で、
負荷が軽いうちにGCを走らせるってのもちょっと違うんじゃないか?

キャッシュしていて、常に、使うようなデータはSoftRefrenceで扱うと
必要なときに無いってことがあるから、パフォーマンスを悪くする可能性がある。
830デフォルトの名無しさん:2006/10/26(木) 03:49:34
0世代もしくは永続でオブジェクトを管理すべし
831デフォルトの名無しさん:2006/10/26(木) 03:53:03
WeakReferenceと勘違いしてませんか
832デフォルトの名無しさん:2006/10/26(木) 11:10:32
>>824
複雑性が上がると単純に使いこなせない奴や意味不明な使い方をする奴が増えてバグが増えるって事もある
発想が柔軟と言うかなんと言うか思いもよらない使い方をする奴ってのは居るんだよ
833デフォルトの名無しさん:2006/10/26(木) 14:26:57
東大生のレベルってやっぱり
ゆとり教育の影響で
昔より下がってるの?

834デフォルトの名無しさん:2006/10/26(木) 16:25:32
>>833
下がってるよ。
835デフォルトの名無しさん:2006/10/26(木) 16:26:12
確実にさがってる。
東大といっていれば威張れる時代なんてとっくに終わってる
836デフォルトの名無しさん:2006/10/26(木) 16:29:32
気になるんだけど
学歴の話をすると過剰に反応する人ってどんな人?
837デフォルトの名無しさん:2006/10/26(木) 16:40:03
>>836
初心者質問スレに居た ぴゅあ とかゆう奴じゃね?
最近は初心者質問スレに頻繁に現れなくなったし。
838デフォルトの名無しさん:2006/10/26(木) 17:44:09
>>836
官僚社会では今だに東大ブランドは有効だよ。
839デフォルトの名無しさん:2006/10/26(木) 17:55:41
東大のレベルが下がっているうんぬんより、人間の質が全体的に下がっているのが
気になる。利己的というか幼稚というか。

自分がもし今の時代に産まれていたら、今より確実に質の落ちた人間になっていた
ことは確信できる。

60年代、田舎で産まれたことに感謝。
840デフォルトの名無しさん:2006/10/26(木) 17:59:26
東大でも佐賀でもいいから、GCをガリガリにチューニングしてくれ。
841デフォルトの名無しさん:2006/10/26(木) 18:05:47
佐賀?
なんで佐賀の話が
842デフォルトの名無しさん:2006/10/27(金) 02:46:45
今、佐賀は重要だぞ。
843デフォルトの名無しさん:2006/10/27(金) 03:08:32
>>836 君みたいな人。
844デフォルトの名無しさん:2006/10/27(金) 14:21:08
>>825
オナニーしてるときに視線感じたら怖いだろ

#カーテン開いてるの気が付かなかったことあり
845デフォルトの名無しさん:2006/10/27(金) 15:03:09
東大工学部もこの程度なんだな。
やっぱり「ただの勉強バカ」ってところか…
846デフォルトの名無しさん:2006/10/27(金) 15:12:25
東大に幻想を抱いている人が結構、多いのが分かった。
847デフォルトの名無しさん:2006/10/27(金) 15:53:08
クラスにいただろ「○○博士」って。
自分の好きなことは博士レベルでも、それ以外の分野は素人とかわりない。
まだ子供ならともかく、東大でもさ、一歩間違えると
「山の手線の駅名全部覚えてる」とかのオタクと同じ程度の知能だろ。
専門分野以外は大したことないザコってこと。
848デフォルトの名無しさん:2006/10/27(金) 15:53:09
>>843
その即答から、多分君も過剰反応している人だと思う
849デフォルトの名無しさん:2006/10/27(金) 16:47:33
>>847 確かにそうみたいだな。
850デフォルトの名無しさん:2006/10/27(金) 16:51:11
東大でない人が言っても何の説得力もない。
851デフォルトの名無しさん:2006/10/27(金) 17:38:07
>>850
m9(^Д^)プギャー!!
852デフォルトの名無しさん:2006/10/27(金) 17:43:27
>>850 スレ違いは、はよ消えろ!
853デフォルトの名無しさん:2006/10/27(金) 18:28:06
学歴の話してる奴は全員スレ違いだけどな。
854デフォルトの名無しさん:2006/10/27(金) 19:04:43
>>853 誤解してると思うんだけど、東大がアホなんじゃなくて、東大にいる一部の奴が「アホ」ってことだよな。
855デフォルトの名無しさん:2006/10/27(金) 21:50:28
ここは次世代佐賀のスレだぞ
856デフォルトの名無しさん:2006/10/27(金) 22:58:34
J・A・V・A・ジャバ〜
857デフォルトの名無しさん:2006/10/27(金) 23:05:22
誤解してると思うんだけど、このスレにいる全員がアホなんじゃなくて、
このスレにいる学歴に過剰に反応する奴が「アホ」ってことだよな。
858デフォルトの名無しさん:2006/10/27(金) 23:09:16
>>854
お前東大生だろうけど、アホ臭くない臭いを
出さないとお前自身がアホに煮える。
859デフォルトの名無しさん:2006/10/28(土) 00:14:43
はいはい、東大のヲタク
860デフォルトの名無しさん:2006/10/28(土) 01:40:20
それは東大のオタクに家
861デフォルトの名無しさん:2006/10/28(土) 02:03:12
佐賀大だと相手にされない?
862デフォルトの名無しさん:2006/10/28(土) 03:02:43
    |┃三 ガラッ
    |┃  ____
    |┃/⌒  ⌒\
    |┃(●)  (●) \ 
――‐.|┃:⌒(__人__)⌒:::::\   えへへっ
    |┃  |r┬-|     |⌒)  遊びに来たお!
    |┃   `ー'ォ     //
    (⌒ヽ・    ・ ̄ /
    |┃ノ       /
    |┃   つ   <
    |┃  (::)(::)   ヽ
    |┃/    >  )
    |┃     (__)



    |┃
    |┃  ____
    |┃/⌒  ⌒\
    |┃ (―)  (―)\ 
――‐.|┃:⌒(__人__)⌒:::::\   
    |┃           |
    |┃          /
    |┃ヽ・    ・ ̄ /
    |┃ \    ,.:∴~・:,゜・~・:,゜・ ,
    |┃ヽ_)つ‘∴・゜゜・・∴~・:,゜・・∴
    |┃  (::)(::)  ヽ    ・゜゜・∴~゜
    |┃/    >  )    ゜゜・∴:,゜・~ >>858 お前東大生だろうけど臭い
    |┃     (__)    :,゜・~:,゜・゜゜・~??.
863デフォルトの名無しさん:2006/10/28(土) 10:58:45
>>832
そんなこと言ったら、breakやcontinue、例外など既存の機能だって意味不明な使い方
をしようと思ったらできるわけで、具体的にどのように、意味不明な使い方をされ得るか
について言及しないと意味が無いよ。

で、多値があると具体的にどのような意味不明な使い方をされる可能性がある?
864863:2006/10/28(土) 11:08:03
>>863
に追加だが、そもそも多値という機能でできることなんてたかが知れてるわけで、
予想もしない使い方なんてしようが無い

唯一考えられる弊害としては、本来ならクラスにまとめるべきところを
何でもかんでも多値を使って表現しまう奴が出てくる可能性があると
いうことがあるが、そんなことする奴は、どの道まともにクラスを設計
できるはずは無いから、結局大した問題ではない

それと、一応念のため言っておくと、俺はJavaに多値を入れろと
言っているわけではないからね。あったら便利だとは思うけど、
無くてもものすごく不便という程じゃないし。ただ、多値がバグの
温床になるという意見には賛成しかねるというだけ。
865デフォルトの名無しさん:2006/10/28(土) 15:26:36
温床かどうかはともかく・・・・
返り値をラップして渡すときに、クラスと言う入れ物が必要で
クラス作って、オブジェクト生成してってコストが心理的に気にくわないから
多値の返り値が欲しくなってるんじゃないかと思う

だから簡単に返り値のラップオブジェクトを作る方法があれば
いいんじゃないかなぁ?
今だとMapにラップするくらいだが、その場合各返り値の方については
柔軟性を失ってしまう
いい方法ないもんかね?
866863:2006/10/28(土) 15:53:15
>>865
返したい値の個数ごとに

class Pair<T1, T2> { ... }
class Triple<T1, T2, T3> { ... }
class Quadruple<T1, T2, T3, T4> { ... }
...

みたいなのをライブラリで用意してやって、それを使うという手はあり得るが、
使い勝手がいいかというと微妙な気がする
867デフォルトの名無しさん:2006/10/28(土) 16:11:04
>>864
じゃあ、どうやって多値を返すことを実現するのだ?
実現できるのなら、別にJavaじゃなくてもいいが。
868デフォルトの名無しさん:2006/10/28(土) 16:37:00
Java7でクロージャが導入されれば
schemeみたいな多値が実現できるだろう。
869デフォルトの名無しさん:2006/10/28(土) 16:47:10
>>814
bugparade みてきたけど、
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4222792
の evaluation だけしか見てないけど、複雑性があがるとは書いてないね。

・配列もしくは Pairs みたいな genericsクラス使えば煩雑さはそれ程でもない。
・コメントを読むと、パフォーマンスが向上するという意見と、面倒くささの軽減という意見があるが、
複数戻り値を使ってパフォーマンスを向上させるには stack allocated objects が必要。
・OO原理主義から言えば、クラスインスタンスで返すのが良い。

だそうで。
870デフォルトの名無しさん:2006/10/28(土) 18:49:02
どうして多価返却なのか動機による。
871デフォルトの名無しさん:2006/10/30(月) 00:17:40
「オレは東大工学部だ!」「東大一直線で頑張ってきたんだ!!」
とか自慢してる奴って、やっぱりバカ丸出しじゃん。あーあ。
872デフォルトの名無しさん:2006/10/30(月) 09:15:33
終わった話題を蒸し返したい学歴コンプレックスがいるな。
873デフォルトの名無しさん:2006/10/30(月) 09:52:46
中卒もどきの話はもういいから
874デフォルトの名無しさん:2006/10/30(月) 14:25:35
>>862は東大生なのか。

堀江系の悪い東大生かな?
875デフォルトの名無しさん:2006/10/30(月) 14:26:00
俗に言う、悪徳東大生
876デフォルトの名無しさん:2006/10/30(月) 14:26:32
>>871
オッサン世代に多いよなそういうの。
40代の馬鹿とか
877デフォルトの名無しさん:2006/10/30(月) 16:59:30
そのながれだと30代だと東京大学物語(江川達也)なのだろうか。
20代だとどうだ?
878デフォルトの名無しさん:2006/10/30(月) 18:22:17
879デフォルトの名無しさん:2006/10/30(月) 19:47:42
Java SE 6ではActionにSELECTED_KEY、DISPLAYED_MNEMONIC_INDEX_KEY等が追加されたんだね。
今まで何でないのか不思議だった。AbstractButtonにもHideActionTextプロパティが追加されてる。
880デフォルトの名無しさん:2006/10/31(火) 01:48:44
>>878
小林よしのりは20代じゃないだろw
881デフォルトの名無しさん:2006/10/31(火) 12:47:07
>>868
確かにクロージャが導入されれば、多値の戻り値は必要ないような
882デフォルトの名無しさん:2006/10/31(火) 14:14:45
学歴の話題で過剰反応と言えば
マ板に学歴の話をすると過剰反応して
大学の悪口を書きまくる高卒がいたことを思い出す。

大卒や大学や大学教授に対するものすごい怨念を感じた

883デフォルトの名無しさん:2006/10/31(火) 14:47:26
「東大出のくせに」とか「東大ってこの程度?」とか言うやつは間違いなく学歴コンプレックス。
884デフォルトの名無しさん:2006/10/31(火) 14:55:49
その程度ならまだいい。
大学そのものを否定している異常な厨が
たまに2chに湧いてくる
885デフォルトの名無しさん:2006/10/31(火) 17:57:53
>>881
いや、要るでしょ
全部Continuation Passing Styleで書くなら話は別だけど
886デフォルトの名無しさん:2006/11/03(金) 13:36:07
多値返却は入れて欲しいな
1つのクラスにまとめられないときもあるし
887デフォルトの名無しさん:2006/11/03(金) 14:19:16
そんな案もあるの?うわぁ
888デフォルトの名無しさん:2006/11/03(金) 14:42:56
>>886
Collectionとか使えばいいのに
889デフォルトの名無しさん:2006/11/03(金) 14:49:41
JTableとかを考えると固定長配列でGenericsとかできるのが一番嬉しい。
Object[]<String, String, Integer> row = {"文字列", "文字列2", 123};
こんな感じで。
890デフォルトの名無しさん:2006/11/03(金) 15:10:20
それDefaultTableModel使ってるから汎用的になってるだけでは?
Genericsがどうのこうのとは関係ないとおもわれ
891デフォルトの名無しさん:2006/11/03(金) 15:57:27
>>886
どんなとき?
892デフォルトの名無しさん:2006/11/03(金) 16:05:18
>>888
代替案があるのはわかるんだけどめんどいでしょ。
拡張forループだってなくてもいい
893デフォルトの名無しさん:2006/11/03(金) 16:16:55
>>889
列の数が増えたら宣言書くのが面倒になるような。
894デフォルトの名無しさん:2006/11/03(金) 16:35:00
どーせ思いつきで書いたんだろうからそこまで考えてねーだろ。ボケ。
895デフォルトの名無しさん:2006/11/03(金) 16:44:58
>>893
それはいえてる。>>889の例は
設計上問題ありすぎだな
896デフォルトの名無しさん:2006/11/03(金) 16:45:20
CollectionのCollectionと、
入れ子にしないと整然としないし
897デフォルトの名無しさん:2006/11/03(金) 17:09:13
POJOとJTableがアノテーションで仲良しになれば完璧。
898デフォルトの名無しさん:2006/11/03(金) 19:51:32
Swingも、使いやすい新しいインターフェースを持ったコンポーネント
が出てきてもいいよなぁ・・・・
899デフォルトの名無しさん:2006/11/03(金) 20:35:27
>>898
SwingXとか?
900デフォルトの名無しさん:2006/11/03(金) 20:41:04
public class Bean {
@JTableColumnId(1)
@JTableRenderer(MyNameRenderer.class)
public String getName();

@JTableColumnId(2)
@JTableRenderer(MyAgeRenderer.class)
public int getAge();
}
901デフォルトの名無しさん:2006/11/03(金) 20:43:24
レンダラはいいけどエディタが苦労する
1レコードに複数のコンポーネントが複雑にな配置されるとか業務系だとよくあることだし
902デフォルトの名無しさん:2006/11/03(金) 20:46:04
>>901
そこは棲み分けで、今ってかなりファットな作りだから
シンプルなテーブルってことでいけるんじゃない?
903デフォルトの名無しさん:2006/11/03(金) 20:49:23
JTableに表示するBeanが、JTable専用ならそれでいいけど、よそで使うBeanを表示するならJGoodiesのData Bindingがいいね。
SwingXのdata bindingはどこに行ったんだろう?
904デフォルトの名無しさん:2006/11/03(金) 22:04:05
JGoodiesってのは初耳なので調べてみたが
非推奨となったものをガンガン削除する姿勢なのは好感が持てるなw
905デフォルトの名無しさん:2006/11/05(日) 03:09:31
>>882-884
他人のコンプレックスを考えるより、まずはお前のマザコンを治したらどうだ?
そうやって他人のことをあれこれ詮索するのは良くない事だよね。
906デフォルトの名無しさん:2006/11/05(日) 14:39:15
東大卒や東大生なら「お前」と「お前ら」の区別くらいつけろや


907デフォルトの名無しさん:2006/11/05(日) 14:46:27
高卒の俺は勝ち組^^^
908デフォルトの名無しさん:2006/11/05(日) 15:15:39
マ板に出没する大卒を僻む変な高卒にならないように
909デフォルトの名無しさん:2006/11/05(日) 17:39:47
もう似非中卒の話はいいから。
910デフォルトの名無しさん:2006/11/06(月) 09:45:24
なんだこの小卒どもは
911デフォルトの名無しさん:2006/11/06(月) 12:03:19
義務教育だから小卒はリア厨以外ありえない。
912デフォルトの名無しさん:2006/11/06(月) 12:11:56
マ、マジレスだと!?
913デフォルトの名無しさん:2006/11/06(月) 12:20:51
高卒ブビ忠の話はもういいから
914デフォルトの名無しさん:2006/11/06(月) 12:21:12
伊藤厨商事
915デフォルトの名無しさん:2006/11/06(月) 13:30:34
どうでもいいけどWindowsにおけるjarファイルのアイコンがリッチテキストと同じなのはそろそろやめてほしい。
916デフォルトの名無しさん:2006/11/06(月) 19:36:25
>>915
??ウチじゃ違うな・・・Mustangが入れてくれたのかな??
917デフォルトの名無しさん:2006/11/06(月) 19:57:30
>>915
アイコンとかよりも、実行可能JAR向けに別の拡張子を用意してほしい。
lhaplusとかが解凍したがるから迷惑なんだよね。
918デフォルトの名無しさん:2006/11/06(月) 20:47:54
>>917
lhaplusって詳しくしらんけど
設定の方がおかしいでしょ
jarは解凍しない設定にしないと・・・

コンテキストメニューで、明示的に解凍を選ばないと解凍にならないという
ソフト使った方がいいんじゃない?
元々、jarは実行可能と考える方が普通
919デフォルトの名無しさん:2006/11/06(月) 22:18:58
>>918
俺自身の端末はJARは解凍しない設定にしてる。
だけどlhaplusの初期設定が解凍する設定になってるため、実行可能なJARの存在を
知らない人に送った時に、「解凍されてその後どうしたらいいかわからない」っていう
無用な問い合わせが来てめんどくさい。
しかもlhaplusユーザが微妙に多くて結構困るんだよ
920デフォルトの名無しさん:2006/11/06(月) 22:59:18
NSISかなんかつかってWindows系のインストーラを用意してやった方がいいだろうな。
921デフォルトの名無しさん:2006/11/06(月) 23:37:24
>>919
それは lhaplus が駄目なんじゃなかろーか?
922デフォルトの名無しさん:2006/11/06(月) 23:40:40
解凍できるもんはすべて解凍するっていう、解凍ソフトの設定が悪いとは思わんけど。
923デフォルトの名無しさん:2006/11/06(月) 23:59:55
>>922
解凍できるもんをすべて解凍するという設定が悪くないのであれば、
>>917 が言うような、実行可能JAR向けの別の拡張子作っても無駄。

拡張子変えただけのJARは解凍できるので、解凍するという設定にされてしまい
今の JAR と扱いは変わらない。
924デフォルトの名無しさん:2006/11/07(火) 01:40:00
それでも、jarはもともと単なるアーカイブ用の拡張子だったわけだから、実行用jarを別拡張子にするというのはアリだと思うよ。
925デフォルトの名無しさん:2006/11/07(火) 02:22:25
>>924
本気でそう思ってるなら BugDatabase に RFE 出してくれば?
926デフォルトの名無しさん:2006/11/07(火) 04:25:16
>>922
そうでない解凍ソフトの方が多いと思うが
927デフォルトの名無しさん:2006/11/07(火) 18:11:01
俺も実行可能JAR向けに別の拡張子があった方がいいと思う。
でも要望の出し方が分からん。日本語じゃ無理なんでしょ?
japとか付けられたら笑うがw
928デフォルトの名無しさん:2006/11/07(火) 18:12:46
>>927
英語勉強して頑張れ。
929デフォルトの名無しさん:2006/11/07(火) 22:03:05
それ用のexeを同梱するから拡張子分けてまでは要らないな
930デフォルトの名無しさん:2006/11/08(水) 12:33:22
実行可能JARが普通のアプリみたく見えるようになったら便利じゃない?
アイコンの入れ方とか決めてさ。Winは無理だろうけど、LinuxとかMacで。
あぁ、別に拡張子変えなくてもできるか。
931デフォルトの名無しさん:2006/11/08(水) 16:41:12
JNLPがないというか組み込まれたオフライン用WebStartアプリのような感じのがあればいいのかな

Java用インストーラを経由してローカルに格納されてデスクトップやスタートメニューにショートカット作るかとかきめて
Jar(互換のために拡張子変えたほうがいいけど)をダブルクリックするとセットアップが始まるだけ、と
932デフォルトの名無しさん:2006/11/08(水) 17:34:45
>>931
jnlpでよくね?
933デフォルトの名無しさん:2006/11/08(水) 18:32:13
WebStartではサンドボックス前提だから違うと思うが
934デフォルトの名無しさん:2006/11/08(水) 18:38:57
個人的には、MVMでの起動用にjnlpの拡張をしてやればいいと思う。
サンドボックスで、exitを制限かけれるし
935デフォルトの名無しさん:2006/11/08(水) 20:48:48
もの凄く普通な話、それようのexe一個作れば使いまわせるよ。
jar以外のファイルは配布したくないって拘りがあるなら別だが。
あとjwsとかに拘らなくてもURL#openStreamで最新情報引っ張ってくるだけで同じ事できるし。
936デフォルトの名無しさん:2006/11/08(水) 21:27:50
exe作るの面倒なんだよな
アイコンかえてコンパイルするのがな
937デフォルトの名無しさん:2006/11/08(水) 22:30:34
正直、Javaしかやった事無いからexeの作り方わからん
938デフォルトの名無しさん:2006/11/08(水) 22:38:14
みんなexeの作り方ってどうやってるの?
939デフォルトの名無しさん:2006/11/08(水) 22:39:12
いくらなんでもexeの作り方がわからないってのは無いだろw
bccでもgccでもdmcでもすきなのぐぐって使いなさい
940デフォルトの名無しさん:2006/11/08(水) 23:42:51
>>938
俺はexewrapを使ってる。なかなか便利だよ
941デフォルトの名無しさん:2006/11/09(木) 00:10:18
>>940
そのツールのサイト見てみたがかなりよさそうに見えるな
サービスも出来るようだし、キャッチしてない例外とらえるのはいいな
htmlが一部ミスってて表示が変とか標準出力をしたくない場合どうするのかわからんが

ところでマニフェストファイルに指定したクラスパス設定って使われるのかな?
NetBeansだとlibフォルダ作って吐き出すからいいのだけれども、それ以外の場合が気になってね
あとVM埋め込み機能はないか
942デフォルトの名無しさん:2006/11/09(木) 01:58:02
>>940
俺もexewrap。他のはゴテゴテしすぎてる。
943デフォルトの名無しさん:2006/11/09(木) 08:43:41
これいいね、俺も使わせてもらおうっと。

アイコン設定するだけですらデスクトップに置いた時に探しやすくなってありがたいや。

944デフォルトの名無しさん:2006/11/09(木) 15:30:10
>>941
一行でまとめてくれるかな?
945デフォルトの名無しさん:2006/11/09(木) 15:35:20
>>944
よさそうだがいくつかわからいことがある。
946デフォルトの名無しさん:2006/11/09(木) 15:36:48
>>941
そうか、JVM埋め込みか・・・それは気づかなかった・・・
ライセンスによっては同梱してしまえば、Javaインストールも要らないか・・・
同梱できるコンパクトなWindows用JVMか・・・SableVMあたり何とかなればなぁ・・・
947デフォルトの名無しさん:2006/11/09(木) 15:46:45
exeを使う用途だとだいたいPrivateJREで扱うことが多いんだよね
publicJREの影響を受けないとか特定のリビジョンで動作確認しているとかもあってね
jreとかってフォルダ使ってそのbin/javaw.exeを起動するだけなんだけれどもね

最近のアプリは容量がでかいのが多いから圧縮時10Mとか増えても問題ない
Javaはクラスファイル自体は非常に小さいしね

1.4系と5.0系とでJREのサイズが1.5倍近いから埋め込む分には1.4のほうがいいけど
さすがにいまさら1.4のプアな開発には戻れないね
948デフォルトの名無しさん:2006/11/09(木) 23:05:55
Collections.EMPTY_LISTとかunchecked警告を外して使うときは1.4に戻ろうかと思ったりするw
949デフォルトの名無しさん:2006/11/09(木) 23:13:31
1.4さわるときっついよな

ListとかObjectしか書いてないわけでそのドキュメントで明記されていなければ
ソースまでおうはめになったりするしな

6ではどこが変わるだろうか
950デフォルトの名無しさん:2006/11/09(木) 23:59:12
つかObjectを返すって宣言されてる昔のコレクションの残骸にアノテーション後付で型を限定できるようにとかしてくれ。
(生コレクションじゃなくてそれを使ったクラスの振る舞いの方)
951デフォルトの名無しさん:2006/11/09(木) 23:59:54
噂の「学歴君」がこのスレに張り付いてしまったのかなぁ…
952デフォルトの名無しさん:2006/11/10(金) 00:04:47
>>946
JREがもっと軽くなってEXEに埋め込めたら便利だね。

それか、rt.jarの中の確実に参照されないクラスを除外してEXEに埋め込めたら
いいと思うんだが。。。ライセンス的に不味そうだけど。
953デフォルトの名無しさん:2006/11/10(金) 01:34:37
100%ライセンス違反
はずせるのはフォント周りとWebStartだけ
組み込めるのはSDKから一部だね
SoundBankは一番大きいやつが音があまりよくないのは仕様だろうか・・・
小さいほうがいい音してる
954デフォルトの名無しさん:2006/11/10(金) 09:26:08
>>952
参照されてないかどうか保証するためにRefrection使わないって分けにも行かないから面倒じゃね?
955デフォルトの名無しさん:2006/11/10(金) 12:22:04
>>951
だれそれ
956デフォルトの名無しさん:2006/11/10(金) 19:25:27
>>948
Collections.emptyList()
コンパイラが型推論してくれる場合は、型指定もいらない。
中身は結局、EMPTY_LIST返すだけだと思ったが
957デフォルトの名無しさん:2006/11/12(日) 23:32:09
JDBC4.0って見送り?
958デフォルトの名無しさん:2006/11/13(月) 00:00:36
PreparedStatementのキャッシュをプールできるんだっけ?
959デフォルトの名無しさん:2006/11/13(月) 19:30:15
気づかなかったがdolphinのbuild02が4ヶ月ぶりに出たね。
ttp://download.java.net/jdk7/binaries/
Mustangから開発者がシフトできたのかな?
960デフォルトの名無しさん:2006/11/13(月) 20:29:55
【IT】JavaがGPLv2としてオープンソース化へ――米サンマイクロシステムズ
http://news18.2ch.net/test/read.cgi/bizplus/1163401647/
961デフォルトの名無しさん:2006/11/13(月) 23:09:40
>>959
実質Mustangなのが悲しい。。。
JavaDocもJDK6 b105だったw
962デフォルトの名無しさん:2006/11/14(火) 12:24:32
963デフォルトの名無しさん:2006/11/14(火) 20:54:28
>>953
GPLになればライセンス上は問題無い?
964デフォルトの名無しさん:2006/11/14(火) 21:04:39
>>963
過去のはまずいだろうが、新しいリリースからは
ライセンスに従って可能なのでは?
965デフォルトの名無しさん:2006/11/14(火) 21:30:00
だが一番はずしたいライブラリはGPLじゃないぞ
VMとかはGPLだが
966デフォルトの名無しさん:2006/11/14(火) 22:10:50
あの↑この話しって配布するアプリにJRE埋め込みできるって話しですか?
前にできるようなこと聞いたんですけどソースが見つからないんです…
967デフォルトの名無しさん:2006/11/14(火) 22:43:11
GPLといってもGPL2.0なんだよね。
あの強烈な、商売あがったりなGPL1.0とは違って


内容としては、LGPLに近いよね
968デフォルトの名無しさん:2006/11/15(水) 00:12:13
GPL2も十分感染力は強力だぞ
例外規定がライブラリに指定されたから大丈夫というだけ
969デフォルトの名無しさん:2006/11/15(水) 00:20:25
ソースは要求されたら公開しなきゃダメになるの?
「jad使えよ」って断ったらダメ?(´・ω・`)
970デフォルトの名無しさん:2006/11/15(水) 01:12:24
確かに、jadがあるからソースなんか、要求すんなって気はするね。
難読化してあったら大変だけど、そんなのあんまりしてるところないじゃんね?
971デフォルトの名無しさん:2006/11/15(水) 01:16:54
引数同じで返り値の型が違うメソッドを同じ名前で作って
逆コンパイルしてもコンパイルできなくするとか、
jadがクラッシュするバイトコード仕込むとか、あたりまえだと思ってたが…
972デフォルトの名無しさん:2006/11/15(水) 01:21:09
>>971
全員に配るとウダウダうるさいけどjad使える位のヤツなら見てもらっても
まあいいか、くらいの気分の時は多い

ソースは人に見られる事を意識して書いたほうが
自分で後で見ても分かりやすいしな
実際見せるかどうかは別にして

jadがクラッシュするコードとか、そんなの気にする手間が馬鹿らしい
973デフォルトの名無しさん:2006/11/15(水) 01:22:05
すげーな。そんなのやったことねぇ。
パッケージ系なのかな。そーゆーのに苦心するのは。

うちは、Web系だから全然そっちに手を入れない。
974デフォルトの名無しさん:2006/11/15(水) 01:28:53
普通に作る分には伝染しないって考えは甘い?
975デフォルトの名無しさん:2006/11/15(水) 03:38:34
>>971
> 引数同じで返り値の型が違うメソッドを同じ名前で作って
ふつーも無理だろ。
シグネチャ変えない限り、戻り値の型が違う同名メソッドは規約違反。
976デフォルトの名無しさん:2006/11/15(水) 13:49:50
>>975
言語仕様とVM仕様(というかクラスファイルの仕様)の
差異を付いてるんじゃないかな、やろうと思えばできると思うよ。

そこまで手間をかける人も居るんだねぇ……
977デフォルトの名無しさん:2006/11/15(水) 15:31:58
クラスの後ろにゴミコード放り込むとかjumpはさんでゴミ入れるといい感じにjadはこけるね
978デフォルトの名無しさん:2006/11/15(水) 16:21:06
>>976さん、975です。俺、無知を晒してカッコワルス。orz
どうせ恥かいたんで教えて君になってしまおう。
それってふつーのjavacじゃコンパイルできないよね?
なんかオプションでもあるの。
それともふつーに考えてやっぱり直接バイトコードを
いじるんですかね。だとすると手間ですねえ。すげえ。
979デフォルトの名無しさん:2006/11/15(水) 17:29:47
>>972
Crema爆弾のことか?
今あの爆弾はダウンロードできなくなってるみたいだが
980デフォルトの名無しさん:2006/11/15(水) 18:07:21
981デフォルトの名無しさん:2006/11/15(水) 18:26:08
>>980
ありがとうございやす!
982デフォルトの名無しさん:2006/11/16(木) 01:57:08
>>981
Obfuscate Java でぐぐってみると色々わかると思うよ。
983デフォルトの名無しさん:2006/11/16(木) 05:45:36
('A`)
984デフォルトの名無しさん:2006/11/18(土) 12:20:44
複素数のプリミティブ型
complex c = 1 + 5i;
985デフォルトの名無しさん:2006/11/19(日) 02:27:20
↑どういうこと?
986デフォルトの名無しさん:2006/11/19(日) 09:35:33
プリミティブ型に複素数も入れろってことじゃないの?
987デフォルトの名無しさん:2006/11/19(日) 14:24:47
ドカタ言語でそんなの導入するひつようねぇっての。
絶対、二値の返り値を返すための入れ物として使う奴が出てくる。
988デフォルトの名無しさん:2006/11/19(日) 14:39:03
>>987
ドカタ言語ってのはC言語やPerlやPHPやVBみたいな言語のことを言うんだよ。

まさかとは思うけど、complex値型が使えるD言語はドカタ言語じゃないっていいたいのかね。


いずれにしてもJavaでもJakarta Commons Mathを使えばComplex型やMatrix型をクラスとして
扱うことができるけどね。

989デフォルトの名無しさん:2006/11/19(日) 14:56:07
>絶対、二値の返り値を返すための入れ物として使う奴が出てくる。

いずれにしても、そういう弊害を予防するには、
Java5から導入されたType SafeなEnum型のように、
本来のEnumとは異なるような使い方を防ぐという機能を付加するといいんじゃないかな。

あと、complex型はjava.lang.math.Complexのシンタックスシュガーみたいになるように。
ついでにベクトル型やMatrix型も作って欲しかったりする。
java.util.Vectorとごっちゃになると不味いので
java.math.Matrix
java.math.Vector
んな感じで。

java.math.Complex

それからついでに、
java.math.BigComplex
java.math.BigVector
java.math.BigMatrix

java.math.BigComplexVector
java.math.BigComplexMatrix

java.math.ComplexUtils
java.math.ComplexUtils


くそ! ワイヤレスキーボードがいかれたのでここまでにする。
何者かが近所でジャミング装置か?
990デフォルトの名無しさん:2006/11/19(日) 14:57:54
クラスのアノテーションと組み合わせてjavac側が定数表記のシンタックスシュガー導入とかできんものかねぇ。
ComplexにしろQuaternionにしろ
991デフォルトの名無しさん:2006/11/19(日) 19:10:20
シンタックスシュガーだけ入れられてもなぁ、という感じはする。
そんなら自力でコンパイラなりトランスレータなりプリプロセッサなり作っちゃった方が効率良いし。
992デフォルトの名無しさん:2006/11/19(日) 19:39:45
>>987
物理で波を扱うときに、速度とエネルギーを同時に格納する入れ物として複素数使うのも、ヤツらがドカタだからだね?
993デフォルトの名無しさん:2006/11/19(日) 23:23:42
>>989 お前、死ねよ。
994デフォルトの名無しさん:2006/11/19(日) 23:26:17
>>992
馬鹿じゃねぇの?
995デフォルトの名無しさん:2006/11/20(月) 00:16:35
>>994 お前、死なよ。
996デフォルトの名無しさん:2006/11/20(月) 00:23:51
997デフォルトの名無しさん:2006/11/20(月) 00:42:02
998デフォルトの名無しさん:2006/11/20(月) 00:44:32
999デフォルトの名無しさん:2006/11/20(月) 00:47:38
1000なら死ぬ!
1000デフォルトの名無しさん:2006/11/20(月) 01:06:16
>>999
イキロ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。