現世代Javaの動向 1
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/06/14(水) 20:56:29派生元
次世代Javaの動向 2
http://pc8.2ch.net/test/read.cgi/tech/1147881822/
J2SE1.4やJavaSE 5.0などの現在リリースされているJavaについて
検討、反省、うだうだするスレです。
参考リンク
http://java.sun.com/j2se/1.5.0/ja/docs/ja/
http://java.sun.com/j2se/1.4.2/ja/download.html
0153デフォルトの名無しさん
2006/09/22(金) 02:26:55君も何アホなこといってんの?
0154デフォルトの名無しさん
2006/09/22(金) 03:41:19利用するコードは実行時のライブラリに応じて動的解決される
結局は型チェックは行っており、メッセージ投げてみればわかるべ、という
Objective-Cほど動的ではないと言える
中庸を目指した設計だからな
0155デフォルトの名無しさん
2006/09/22(金) 05:41:19Javaはスクリプト言語じゃないと区別したいのは分かるが、
virtaul/overrideのキーワード有無とかJavaに対しての不満の方が強いみたいで、
ソフトウェア工学とか意味不明なところからスクリプトとJavaを区別しようとしてるから、
行き詰まるんじゃないかな?
0156デフォルトの名無しさん
2006/09/22(金) 05:47:400157デフォルトの名無しさん
2006/09/22(金) 13:31:150158デフォルトの名無しさん
2006/09/22(金) 14:36:150159デフォルトの名無しさん
2006/09/22(金) 14:44:170160デフォルトの名無しさん
2006/09/22(金) 14:45:460161デフォルトの名無しさん
2006/09/22(金) 15:14:48φ
0162デフォルトの名無しさん
2006/09/22(金) 15:36:19結果良くなったかどうかはワカンネ。
0163デフォルトの名無しさん
2006/09/22(金) 15:46:31結局MSに持ってかれたってことか?
とにかくワロタ
0164デフォルトの名無しさん
2006/09/23(土) 03:03:12しかもパッケージ=フォルダ。
rubyだってrailsでやっと動的ロードを手に入れたくらいなのに
0165デフォルトの名無しさん
2006/09/23(土) 03:12:09D言語
0166デフォルトの名無しさん
2006/09/23(土) 03:13:30だからそれは「動的型付け」とは関係ないと何度いったら(ry
一度作ったクラスの仕様を変える事ができてしまうのが
動的型付け。
たとえばクラスに有るはずがないフィールドやメソッドを追加したり
0167デフォルトの名無しさん
2006/09/23(土) 03:40:31それは動的型付けの副作用でしかない。
フィールドやメソッドを実行時に追加したいだけなら、AOPでも事足りる。
0168デフォルトの名無しさん
2006/09/23(土) 04:00:53読みにくくなるんだよね。
Ajaxのソースコードなんかとくにひどいもんだ
0169デフォルトの名無しさん
2006/09/23(土) 07:44:57おしい!実におしい!!
0170デフォルトの名無しさん
2006/09/23(土) 09:17:230171デフォルトの名無しさん
2006/09/23(土) 17:17:24静的っていったら、プログラムの実行前になにかすること。
違う?
0172デフォルトの名無しさん
2006/09/23(土) 17:31:040173デフォルトの名無しさん
2006/09/23(土) 17:45:50じゃないの?他に使い道ある?
っていうか今頃この辺が整備されるって遅すぎ
0174デフォルトの名無しさん
2006/09/24(日) 11:24:15動的/静的型付けの違いは、式の型がコンパイル時に決まるかどうかだから、
メソッドの追加は関係ない。
だいたい、その説明だと
たいていの言語はソース書き換えてコンパイルすればメソッド追加できるから
たいていの言語は動的型付けになっちゃうよ。
0175デフォルトの名無しさん
2006/09/24(日) 11:46:49メソッドが追加されたらクラス、つまり型が変わるだろ。
それだけでも動的なのに、
どう変わるかも実行時にしか分からないかもしれない。
0176デフォルトの名無しさん
2006/09/24(日) 12:33:16「あほ?」とはずいぶんと強気だけど
「メソッドが追加されたらクラス、つまり型が変わるだろ」
どういうこと?まったく意味が分からんけど?
0177デフォルトの名無しさん
2006/09/24(日) 15:55:31メソッド単体でのGenericsって引数なしだと何もできない気がする。
<T> <T> get();
これ動かないよね?
Tをnewすることもキャストすることもできないんだから。
0178デフォルトの名無しさん
2006/09/24(日) 16:03:490179デフォルトの名無しさん
2006/09/24(日) 16:19:49まてまて、それでJavaScriptの型とJavaの型との違いをうまく
説明できるか?
0180デフォルトの名無しさん
2006/09/24(日) 18:31:54動的クラスを使うためには動的型付が必要になるが、クラスがなくても動的型付けはできる。
動的言語処理(実行時型解決など)ができるかどうかは、言語自体が動的型付か静的型付かには関係ないよ。
0181デフォルトの名無しさん
2006/09/24(日) 23:39:090182デフォルトの名無しさん
2006/09/25(月) 00:37:07typedef struct {
Class *extends;
Interface **implements;
void **methods;
void **fields;
} Class;
0183デフォルトの名無しさん
2006/09/25(月) 01:18:310184デフォルトの名無しさん
2006/09/25(月) 15:46:03一般の熟語ではないという合意が得られてないので
「動的」という一般的な形容詞句の話が混じってしまったのが混乱の元。
学会とか専門家ばかりが集まってる場所じゃないから
前提はある程度しっかりしてた方がいいな
まぁ、それくらい分かれよ、と突き放すこともできるが
いろんな人が集まれるこういう場所だ、お互い尊重すればあれることもない
0185デフォルトの名無しさん
2006/09/25(月) 15:52:37もまえ、わかってるようだな。
0186デフォルトの名無しさん
2006/09/28(木) 15:39:12一応できることはできる。未検査キャスト入るし、実際には使い道が無いが
public class Variant {
private Object value;
public <T> void set(T value){
this.value = value;
}
public <T> T get() {
return (T)value;
}
public static void main(String[] args){
Variant v = new Variant();
v.set("foo");
String s = v.<String>get();
System.out.println(s);
}
}
>>166
クラスにメソッドを追加できるかどうかと、動的型付けかどうかは無関係。
実際、静的型付けで既存のクラスにメソッドを追加できる言語もある。MixJuiceとか
0187デフォルトの名無しさん
2006/09/28(木) 23:17:360188デフォルトの名無しさん
2006/10/06(金) 20:57:19<T> T get(){
SomeFactory<T> factory = new Factory<T>();
return factory.getInstance();
}
0189デフォルトの名無しさん
2006/10/06(金) 22:02:160190デフォルトの名無しさん
2006/10/06(金) 22:37:270191デフォルトの名無しさん
2006/10/06(金) 22:42:190192デフォルトの名無しさん
2006/10/06(金) 22:52:55Validator<EMailAddress> emValidator = ValidatorFactory.get();
みたいなことが出来るならあるいは便利かとも思うが
<T>からClassインスタンスって取れないから使えないな
0193デフォルトの名無しさん
2006/10/07(土) 16:19:16Point pt = StringConverter.fromString("0, 0");
みたいにしたかったんだけど、Class取れないんで、
Color color = StringConverter.fromString("0, 0, 0", Color.class);
Point pt = StringConverter.fromString("0, 0", Point.class);
で我慢した。Class取れればいいのにね。
0194デフォルトの名無しさん
2006/10/13(金) 02:42:15向こうでやるとスレ違いだから
スタティックメソッドとインスタンスメソッドの
呼び出し性能を検証する簡単なコード書いてみた
実行速度見たかったから、俺はヒープサイズ余裕持たせて
実行してみたけど、性能は誤差だね
メモリ消費量はもっとやってみないとわかんないね
0195デフォルトの名無しさん
2006/10/25(水) 20:21:41AWTは1コンポーネント=1ウインドウだからシステムリソースを
食いまくる問題って解決されたのでしょうか?
0196デフォルトの名無しさん
2006/10/25(水) 21:01:15つttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/awt/1.3/designspec/lightweights.html
0197デフォルトの名無しさん
2006/10/26(木) 00:09:36こんなに流行るとは思わなかった
0198デフォルトの名無しさん
2006/10/26(木) 00:14:070199デフォルトの名無しさん
2006/10/26(木) 01:48:130200デフォルトの名無しさん
2006/10/26(木) 02:59:30それはOSの問題だと思うが
0201デフォルトの名無しさん
2006/10/26(木) 03:05:05ウィンドウだってのと同じことなんだが、わかってる?
0202デフォルトの名無しさん
2006/10/26(木) 12:47:03Windows9xのときはGDIとかシステムリソース気にしてたけど、
今じゃそんなのどうでもよくて、レスポンスが速いかの方にうつってる。
リソース食いまくるとか過去の話し出し、つまり一番速いAWTつかってOK。
0203デフォルトの名無しさん
2006/10/26(木) 13:03:360204デフォルトの名無しさん
2006/10/26(木) 20:04:320205デフォルトの名無しさん
2006/10/26(木) 22:59:450206デフォルトの名無しさん
2006/10/26(木) 23:02:320207デフォルトの名無しさん
2006/10/26(木) 23:12:38そのプログラムの処理は低速CPUで事足りるんじゃないか?
Javaってのは最新・現状のパソコンだけをターゲットにした言語じゃないだろ。
0208デフォルトの名無しさん
2006/10/26(木) 23:22:41そしてメモリの速度やキャッシュの速度は速いほうがいい
NetburstアーキよりPenM系列のほうが早い
あとSwingはJava2Dが需要なのでアクセラレーションのレスポンスがいい統合チップセットは意外と早い
Swing使った業務アプリはずっと作ってるけど快適さはやっぱりコードにもよるね
OSがNT4でJRE1.3.1、Pen3/600MHzは快適だった
2000やXPだと5.0にしてPen3/1GHzクラスにならないと快適さはおいつかない感じ
0209デフォルトの名無しさん
2006/10/27(金) 00:08:33それはSwingやJavaが速いとかではなくて、ハードが進化して速くなった事はじゃないか?
業務アプリならなおさらだけど、端末がNTでPentium 200-600とかざらだからね。
それでSwingはないだろ。そしてJavaつかってもらいたいのに、
AWT無視とかどういうことだ?これだったら、UIはWebブラウザの方に流れて当然。
2D, 3DはJavaでなくてC/C++や専用ライブラリ使うから、
Javaはいくらハードが進化しても入り込めない。
今も昔も、何年たってもいまだにJava向けのヒットゲームないでしょ?
0210デフォルトの名無しさん
2006/10/27(金) 00:12:56ハードも大事だし、VMの種類も大事とかいてるだろ
1.2と5.0くらべたら恐ろしいほどの性能さだぞ
それに当時のマシンならブラウザよりSwingのほうがはるかに軽いぞ
ブラウザってかなりメモリは食うし重いものなんだよ
それにインターフェースとして参照系ならともかく入力系はおわっとる
AWTも機能不足
ゲームは今MMORPGとかで海外はJava製ふえてきてる
0211デフォルトの名無しさん
2006/10/27(金) 00:43:01ハードの進歩が格段に勝っていたってこと。ハード(CPUやGPU)はJavaだけ
じゃなくて他の処理(OSやイベント)をこなして、さらに余った余力でやっても、
VMの性能よりも高速ってどういうこと?
業務アプリはデータベース問い合わせを想定しているが、
大体は業務アプリはその程度じゃないか?AWTやブラウザで十分だろ。
つまりブラウザが重いとか言ってるなら、(winなら)VBとかでUIつくっても
いいけど、そうするとどこにJava(とSwing)の出番があるんだ?
0212デフォルトの名無しさん
2006/10/27(金) 00:48:54DB引いてくるだけて、・・・・どんな業務アプリ・・・
集計ロジックくらいは、入るだろ。
ユーザとのインタラクションはいくらでも入ってくる。
0213デフォルトの名無しさん
2006/10/27(金) 01:00:09「出番なし」だからじゃないか?
C, C++, Perl, Ruby, JavaScript ライバルの方が強すぎて
(PCの)デスクトップには入れないだろ。
ネットワークでも、アプレットでこけたのがいたかったんじゃないか?
今じゃFlashに持ってかれてるし… (デスクトップの話ね)
0214デフォルトの名無しさん
2006/10/27(金) 06:54:07まあオーサリングツールが無かったのと
ダウンロードの手間がFlashのが少なかったというのが大きい
0215デフォルトの名無しさん
2006/10/27(金) 08:28:55集計ロジックはサーバサイドにやらせて
画面は入力と参照だけの作りが多いと思う。
三階層モデルが普通。DB直で触るような
C/Sモデルは5年前くらいに下火になってる。
それよりも210氏が指摘してるが入力系での優位性が大きい。
ブラウザで入力なんてのは業務系だと無理。
(業務系はえてして入力項目数が多い。)
ここ数年はそれでやってきたプロジェクトが多いけど
結局効率下げるだけで現場では不評。
これからはブラウザベースで作った業務アプリを
作り直す需要が多くなる。(既に増え始めてる。)
リッチクライアントの標準を巡って主導権争いが盛んなのもそれを見越してるから。
Swing は能力的に善戦できると思うんだけど
JRE 入れないと行けないところが難点。
(業務系になると致命的な問題にはならないことが多い。)
FLASH の方がウケが良いのは確かだが、
Swing アプリの方が制約の少ない分、後で盛り返せる余地はあると思う。
アプレットは問題外。これ提案するようなベンダーと付き合うべきでない。
0216デフォルトの名無しさん
2006/10/27(金) 09:40:090217デフォルトの名無しさん
2006/10/27(金) 11:06:46>ここ数年はそれでやってきたプロジェクトが多いけど
>結局効率下げるだけで現場では不評。
>これからはブラウザベースで作った業務アプリを
>作り直す需要が多くなる。(既に増え始めてる。)
>リッチクライアントの標準を巡って主導権争いが盛んなのもそれを見越してるから。
でもこのおかげで社員のほとんどは意味も無いのにPCの前に座らせる必要が無いって事に経営層が気づいたのは事実
更に業務はパッケージ買って、経理/人事の社内総務部門をアウトソースして
株主へ利益を還元していく仕組みが出来上がりつつある
0218デフォルトの名無しさん
2006/10/27(金) 12:12:50すべてWEBアプリになってるわけじゃない
クライアントサーバーも開発コストの面で優れるために今でも業務系では多いし
WEBアプリからクラサバや3層式への動きもある
って>>215と重なることばっかりだ
業務系パッケージ/受託とかクラサバ多くてびびるかもよ
ようは流行とか関係なくユーザーの求めるもの作ったところが勝ち
ただアプレットはリッチクライアント用途として問題ないと思うぞ
WEBスタートにしてもいいわけだし、もちろんSwingを使うわけだし
>>216
開発ライセンスの問題とか高コストとかライブラリが整備されていないとかあって
わりと敬遠されてる
3倍金はらってくれるなら作ってもいいとはよく言われる
>>217
総務のアウトソースってはやってるようには見えないし、
パッケージのカスタマイズだけでは無理な場合も多いぞ
無理してカスタマイズされたコードのさらに修正とか死ぬぞ
新規に作ったほうが早くて使いやすい場合も多い
日本はユーザーがパッケージに業務をあわせる文化ないからね
0219217
2006/10/27(金) 12:37:05仕組みが出来つつあるってこと
偽装派遣を合法化した結果はおそらくそこに影響が出る
最終的には金を生み出す仕組みと借金の担保になる会社という資産以外は交換可能な部品にするのが今の経団連のトップ辺りに居る連中の考え方
0220デフォルトの名無しさん
2006/10/27(金) 13:19:18この数年どんどん手が入ってるでしょ
キヤノンとか偽装請負すべてやめると明言したばかりでしょ
0221デフォルトの名無しさん
2006/10/27(金) 14:46:03密告とかなかなか深いね。
これから噴出する問題だね。
御手洗さんですか・・・
ただ、スレ違い。
0222デフォルトの名無しさん
2006/10/27(金) 14:51:15なかなか良かったんですが…
>Swing アプリの方が制約の少ない分、後で盛り返せる余地はあると思う。
これの根拠はあるんですか?次のJava6でってこと?
>アプレットは問題外。これ提案するようなベンダーと付き合うべきでない。
そうでもないと思うけど、どうしてアプレットは問題外なの?
確か、サーバ・クライアントモデルで、DB集計はサーバーって書いて
るんだから自分の言ってる事と矛盾してるでしょ。
0223デフォルトの名無しさん
2006/10/27(金) 15:36:43昔のしょぼい連中の作ったJavaAppletをみてリッチクライアントじゃねえとか思ってる口だから気にするな
0224デフォルトの名無しさん
2006/10/27(金) 21:56:24>これの根拠は
ローカルリソースにアクセスする為に
署名しろとかいろいろ面倒。
ブラウザから始めるのも一手間無駄になる。
(ブラウザを開くことと仕事とは一切関係がない。)
zip 落として展開して、これを 叩いてください、
次からはショートカット叩きゃOKです、の方が最終的に楽。
だと俺は思ってる。そうは思ってない人も居るだろうし、
それは根拠と言えないだろうと言われればそれまで。
個人の意見なのでご自由にどうぞ。
>どうしてアプレットは問題外なの?
アプリに比べて上段で挙げたことを感じるから。
逆にアプレットの方が優れてるところってどこでしょうか?
0225デフォルトの名無しさん
2006/10/27(金) 22:22:01>個人の意見
そういうことなら了解です。面倒とかそういうのは分かりますです。
>アプレットの方が優れ
サーバー・クライアントモデル、そのままってところでしょうか。
0226デフォルトの名無しさん
2006/10/27(金) 23:07:19CGoban 3 のダウンロード
http://www.gokgs.com/download.xhtml
0227デフォルトの名無しさん
2006/10/27(金) 23:17:24「最初に自動的にインストールしてくれます。更新も自動です。」
ってだけでしょ。
0228デフォルトの名無しさん
2006/10/28(土) 00:20:59そもそも一般人はローカルにZIP落として適当なフォルダに展開というのを嫌がる&出来ない人もいる
というのを認識したほうがいい
わかる人だとZIP版のほうがレジストリいじらないとか変なところやられてないとか安心感はあるけど
普通の人はウィザードインストーラがないとダメみたい
WebStartって最初だけでその後はショートカットがデスクトップに自動的に生成されたり
バージョンチェックとか細かく動かなかったっけ?
アプレットもあるバージョンだった科からはいろいろと細かく動くしね
用途としてローカル資産いじりまくるようなのは確か似合わないけど
WebStartアプレットならJNLPAPI経由でローカル資源はアクセス可能だよ
雇う側からすると今の時代は鯖サイドの技術者のほうが入手せいがいいので
クライアントはあくまでも操作性がいいSwingベース、鯖でロジックという3層式はやりやすい
SpringとかDI使ってさくさく組めるしね
0229デフォルトの名無しさん
2006/10/28(土) 00:28:44>>226がそれ。
起動時にバージョンアップもしてくれるので楽。
0230デフォルトの名無しさん
2006/10/28(土) 00:29:53まだまだ途中ですけどね〜
0231デフォルトの名無しさん
2006/10/28(土) 00:48:00しかもJDKじゃないからserver vmはふるいまんまだし。
せめて古いバージョンって自動的に削除とかしてくれないの?
0232デフォルトの名無しさん
2006/10/28(土) 00:52:57パッチレベルの違いで挙動が異なるプログラムがある以上
勝手に削除するわけには行かないところなのが実情。
0233デフォルトの名無しさん
2006/10/28(土) 01:32:35例えばゲームとかだと頻繁にバグフィクスや難度調整が入るだろうし。
0234デフォルトの名無しさん
2006/10/28(土) 03:50:26「デスクトップ」という言葉が何を指しているのか人によってまちまちなんで
難しいんだけど。
Perl, Ruby, Java Scriptはサーバーサイドでよく使われる技術であって、
PCのデスクトップでの競争にはならないんだと思うけど。
Ruby&Ruby on Railsも、ウェブアプリケーション開発でPHP, Python, Perlを
飛び越してJavaの得意とする業務系でとタイマンでやり合えるかも?という
期待感で注目されているわけで。
デスクトップについてはおれはSwingで作ったらWin標準と同等になるという
ここ最近の状態を今の今まで作らなかったのが最大の敗因だと思う。
あとOSをまたがって汎用性を持たせようとするあまり、あるプラットフォーム
固有の文化というかやり方に合わせようとしないような文化がJavaには
あるような気がする。
例えば、MacユーザーはMacぽくないUIはうけいれないし。
一方でV2Cという2チャンネルビューアがプラットフォームを超えて受け入れられ
ているのは、もしかしたら今後に期待できるということなのかもなーとか思う。
0235デフォルトの名無しさん
2006/10/28(土) 04:28:570236デフォルトの名無しさん
2006/10/28(土) 05:25:120237デフォルトの名無しさん
2006/10/28(土) 09:24:550238デフォルトの名無しさん
2006/10/28(土) 09:32:19デスクトップ用のFlash&Ajaxな世界を画策してるな。
0239デフォルトの名無しさん
2006/10/28(土) 10:59:010240デフォルトの名無しさん
2006/10/28(土) 11:03:360241デフォルトの名無しさん
2006/10/28(土) 15:22:46ないんだろうなぁ・・・・
0242デフォルトの名無しさん
2006/10/28(土) 15:38:52言いたい事はわかるが、ずれてる・・
0243デフォルトの名無しさん
2006/10/28(土) 18:11:23Java 遅いというレッテルはなくならない。
つまり永遠になくならない。
0244デフォルトの名無しさん
2006/10/28(土) 18:26:45そのまま実行環境を10個くらいプーリングし
要求に応じて割り当てる。
メモリをデフォで2GB以上消費する。
そんなJVMサービスプロセス。
0245デフォルトの名無しさん
2006/10/28(土) 18:45:59その辺はどうかね
0246デフォルトの名無しさん
2006/10/28(土) 18:50:180247デフォルトの名無しさん
2006/10/28(土) 20:38:330248デフォルトの名無しさん
2006/10/29(日) 00:34:40どうかねって言われても、この図式だろ。
話をそらしたつもりか?
Java アプリ: プロセス起動時間 + VM 起動時間
ネイティブアプリ: プロセス起動時間
0249デフォルトの名無しさん
2006/10/29(日) 04:22:05JVMのプロセス起動しとけばいいじゃない
MVMが実現したら、解決だな、それじゃ
0250デフォルトの名無しさん
2006/10/29(日) 15:37:09こまかい揚げ足だが、
>Java アプリ: プロセス起動時間 + VM 起動時間
Javaの場合、プロセス=JVMだから、プロセス起動時間 + バイトコード起動時間ね。
昔は.EXEは.COMに比べて起動に時間がかかるとか言われてたけど、いまや誰も気にしてないから、
そのうち、マシンパワーが吸収してくれると思う。WindowsはUNIX系に比べて元々プロセス起動が重いOSだからね。
だからスレッドが発達した訳だし。
でも、regeditとかnotepadのような軽さには到達できんとは思うが。
>>249
やっぱり、.NET Frameworkのような、バイトコード実行インフラが必要になるわけね。
JavaもGlobal Jar Cacheとか作って、共用JarはJITコンパイルされて、キャッシャされるのだろうか。
0251デフォルトの名無しさん
2006/10/29(日) 16:34:48アプリごとにクラスパスも違うし、バージョンアップ作業もコピーだけでよかったり
クラスパスルートもさまざまだしね
でも標準APIくらいはやってくれてもよさそうなんだけどね
あと設定でクラスをロードしたらすべてコンパイル完成するまで待つというモードもほしいよ
ゲーム用途とかだととくにね
フォアグラウンドコンパイルにしたところでそのメソッドを指定スレッショルド以上つかわないと
コンパイルされねーからな
0252デフォルトの名無しさん
2006/10/29(日) 17:07:46■ このスレッドは過去ログ倉庫に格納されています