クライアントサイドJavaどうよ? part2
■ このスレッドは過去ログ倉庫に格納されています
0001Sunがダメ
NGNGマターリ語りましょう。
前スレ
http://pc3.2ch.net/test/read.cgi/tech/1002160815/
0042デフォルトの名無しさん
NGNG>おいらは自作のJavaアプリがLinuxのGNOMEでドラッグアンドドロップが動かなかった。
ああ,なるほど。そんなこともあるんですか。
#JavaはSwingアプリ作った時に何か遅いのが嫌で辞めてしまったので
#良く分かってないのです。叩かないでちょ。
dat直読みって早いけど、初回にスレ読むときしか使えないからね
(2回目以降も使ってるブラウザもあるけど、使ってないものもある)
まあ自分でやろうとは思わないw
文字コードの問題は、無指定だとOS標準文字コード使う処理が
まだまだ残ってるんで、多少やっぱりなって感じです。
通信関連の部分は、ほとんど指定したつもりだったけど・・・
報告さんくすでした。
近々Linux環境を整えるので、その時にでも修正してみます
0044デフォルトの名無しさん
NGNG今はどうかしらないけど、俺もそれ経験した気がする。
たしかNetscapeのブックマークは拾えたので、Motif系なんじゃないかと
0045デフォルトの名無しさん
NGNGダウソしてきて実行したときって、前のバージョン
にもどすことって可能?
0046デフォルトの名無しさん
NGNG冗談はよせ
0047デフォルトの名無しさん
NGNG具体例(体験談?)キボンヌ
KilixとかコードウォリアーとかJavaよりマルチプラットフォーム楽?
autoconfはどうなの?とかとか
0048デフォルトの名無しさん
NGNG46ではないが、日本含めて4ヶ国語対応アプリ一発でできたよ、
Windowsプラットフォームで動作確認、まぁJavaならあたりまえといえば当たり前だけど
ネイティブだと国ごとにいろいろうっとおしいからな
0049デフォルトの名無しさん
NGNGん?通りすがりのものですが,
どのプラットフォームからどのプラットフォームへ移植したのですか?
0050デフォルトの名無しさん
NGNGハードウェアアクセラレーションが使えるようになり、
素晴らしくスムーズに表示できるようになってたよ。
これはクライアントサイドの朗報じゃないかと。
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNG移植じゃなくて、新規でつくったんだよ
日本語Windowsで作っておいて、世界中にばらばいてやった
0053デフォルトの名無しさん
NGNGまたひとつwrite once debug anywhereの要因が増えちゃったねえ
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG0056名無しさん@XEmacs
NGNGそれはアプレットだろ
0057デフォルトの名無しさん
NGNGハァ?じゃあ何故>>48のような関係無い話をしたのですか?
ただの勘違いだったのならスマソ
0058名無しさん@XEmacs
NGNG>>48は頭弱いんだろ。
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG言わんとしている事はよく理解できるが、ロケール間の動作互換性とプラット
フォーム間の移植性はまた別の問題。まぁ各国語版 Windows を異なるプラット
フォームと捉えることも出来ますが。
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGオブジェクトの使いまわしをしなければならない(あらかじめ作っておいた Event オブジェクトを listener に渡す)ほどの状況というのは、標準的にはどのくらいなのでしょうか。
1秒間に数回は起こるイベントでも、イベントオブジェクトを一個作るくらいなら気にしなくても OK なのでしょうか。
0063デフォルトの名無しさん
NGNG想定している動作環境で問題なければいいんでない?
0064デフォルトの名無しさん
NGNGそうっすね。気にしないどきます。
0065デフォルトの名無しさん
NGNGスレッドセーフってどういうこと?
コンストラクタなんかでも、例えば
--
class ACls {
..int x, y;
..public ACls( BCls b){
....x = b.getX()
....y = b.getY();
..}
}
--
この b.getX(), と b.getY() 実行する間に、b の の x と y の値がズバッと変わっちゃったりしたら、
ACls のオブジェクトの x, y の値は変なものになってしまうってこともありうるんですか。
(そうするとキリが無いような気がする)
0066U ◆tFsGiu0c
NGNGコンストラクタをスレッドセーフにする必要はないと思うけど:-)
普通のメソッドだったらそういうことです。ただ同期をとるのは
最小限にしないとパフォーマンスに悪影響があります。
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGいや、この場合状態を持ってるのは b だから、コンストラクタ実行中に
別スレッドが b の状態を非アトミックに変えたら変なことになるかも。
あとコンストラクタ内で static フィールドいじるようなときはスレッド
セーフになるように意識しなきゃいけないし。
0069U ◆tFsGiu0c
NGNG>いや、この場合状態を持ってるのは b だから、コンストラクタ実行中に
別スレッドが b の状態を非アトミックに変えたら変なことになるかも。
なるほどね。じゃあ、
synchronized(b) {
}
で囲む必要があるわけか。でももし仮にgetX、getYがstaticフィールドの
値を返すのであればこれも意味ないね。
>あとコンストラクタ内で static フィールドいじるようなときはスレッド
セーフになるように意識しなきゃいけないし。
それはもちろん。
0070デフォルトの名無しさん
NGNGこんなのどうですか?
JDesktopPaneとJInternalFrameを使って、
動的に読み込んだクラスをJInternalFrameに
表示するアプリを作る。(ある意味仮想デスクトップ)
各アプリは、InternalFrameで表示できる形にしておく。
仮想デスクトップなアプリを常時立ち上げておき、
そこにそれぞれのアプリを呼び出せば、
それぞれの立ち上げは速いはず。
今試してますが、結構いけそうな・・・
InternalFrame対応のアプリ
(ほとんど単にJFrameをJInternalFrameに置き換えるだけ)
がどんどん増えていけば、標準的な環境になるかも?
0071デフォルトの名無しさん
NGNG単にランチャーではだめなの?
007270
NGNGInternalFrameだと統合環境みたいで
かっこいいかなと思いました。(^^;
どちらにせよ、
内部的に読み込むことで、それぞれSwingを
立ち上げなおさなくていいから
その分の時間が軽減できると思うのだけれど。。
0073rubyist
NGNG0074名無しさん@XEmacs
NGNGhttp://www.jdistro.com/
とりあえず、あんたの言うようなものは既に開発されてる。
0075デフォルトの名無しさん
NGNGつーかどうしてJavaでクライアントサイドつくるヤツってこうセンスがないんだろう
Swingそのものも問題だけどSwingを扱ってるヤツらのセンスも相当問題だ
0076デフォルトの名無しさん
NGNGJavaが第一義とするのは「美しさ」であることを理解していない
ヴァカは今すぐ殺んでほしいですね。
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG言語屋のオナニー?
0080デフォルトの名無しさん
NGNG美しくないという意見は多いのは事実。
事実ぐらい受け入れろよ。
0081デフォルトの名無しさん
NGNG誰の意見?
まさか2ちゃんでそういう発言が多い
とか言わないよね(藁
008270
NGNG>>71
ランチャで十分でした。
>>74
やっぱり思いつくようなものは
たいがい作られてますね。
めざせKDEってとこでしょうか。
使い方はわかりにくいですが。
>>75
センスってどの辺の話?
0083デフォルトの名無しさん
NGNG「Mac でハードウェアアクセラレーションが使えるようになった」
→「Debug Anywhere の要因が増える」
っていう話の流れを他でも見かけますが、これってどういう理屈なんでしょう?
「(Win の?) Java 1.4 でビデオメモリに直アクセスするようになったので
描画が速くなった」という話とは根本的に違うことなのでしょうか?
あと、Mac で速くなるのは Swing の Mac Look and Freel だけ?
それとも Swing 全体について速くなるのでしょうか?
なんか中途半端な知識で書いてるので
突っ込みどころ満載な文章でスイマセヌ。
0084デフォルトの名無しさん
NGNG008550
NGNG> →「Debug Anywhere の要因が増える」
> っていう話の流れを他でも見かけますが、これってどういう理屈なんでしょう?
APIの中身は変わったけれど、外見は変わらないので、既存のコードは
理屈上問題なく動く。
でも人間のやる仕事に完璧はないので、もしかしたらピュアJava版Java2Dと
OpenGL版(だったと思う)Java2Dで動作が違うことはあり得る。
それでDebug Anywhereの要素が増える。
DirectX版Java3DとOpenGL版Java3D程度の差だろうな。
だから、
> 「(Win の?) Java 1.4 でビデオメモリに直アクセスするようになったので
> 描画が速くなった」という話とは根本的に違うことなのでしょうか?
これは違わない。
> あと、Mac で速くなるのは Swing の Mac Look and Freel だけ?
> それとも Swing 全体について速くなるのでしょうか?
MacのSwingがネイティブコード使ってるってのは本当?
もしもそうなら、Mac Look and Feel以外は速くなると思うんだけど。
たぶんSwing全体で速くなるけど、どちらかというと重要なのは
たとえばJavaでフラッシュ的なことやゲームとかを書きたい時とかじゃないかと。
画像に複雑な回転だとか拡大縮小をかけてピュアJava版と比較してたが、
ピュアJavaだと秒間5か6フレーム程度だったが、
ハードウェアアクセラレーションかかってるのは500フレームとか
無茶な数字が出ていて、そのくせメモリ消費量は減っていた。
JDKのおまけのJava2Dのデモもサクサク動いてた。
あれで何か書いてみたいなあ。
0086デフォルトの名無しさん
NGNGギャグにもならんな
>>センスってどの辺の話?
どの辺もなにも全部、アイコンもメニューも何もかも
Swingはクラス設計はよく出来ている(というか美しく出来ている)
だけにUIのダサさは許せん、即刻腕のいいデザイナーを雇うべき
MacのJavaは高速でAqua LookAndFeelを兼ね備えているらしいので気になっているが
MacOS Xそのものがもう少し軽く、使いやすくならないと買う気にはならない
0087デフォルトの名無しさん
NGNGMFC見ろよお前ら
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNGああいうのはすぐに見飽きるもの。Flash 程度の Swing 用 Look and Feel ビルダー
(スキン感覚程度で使えるもの) を求む。
0090デフォルトの名無しさん
NGNGなにとはいえないが、なんか変な気がする
なにがこう私に感じさせるのだろうか・・・
0091デフォルトの名無しさん
NGNG古いバージョンに対する後方互換を維持しながら、おなじ層を担当する
(初期には想定していなかった)新機能を織り込んでいこうとすると、
マクロ的な見方ではでかいばかりでこ汚い、というものになってくとお
もう。コレは仕方ないことかも。
今から入ってくるヒトには分け分からんこともあるだろうね。
java.ioとjava.nioなんて、なんで両方あるか(なんでこんな分け方
してるのか)納得できるnewbeeっているのかね。
0092デフォルトの名無しさん
NGNGヴァカですか?
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG今月のソフトウェアデザインに関連記事があります。
「Macには元々ココア&objectiveCというネイティブな開発環境があって、
それがjavaから呼び出せるようになった。」と解釈したけど。。。
なのでswingでもピュアjavaでもなさげです。
ちょっと興味出てきたけど。
009594
NGNGちょっとでも性能を上げようとするとどんどん汚くなってくよね。。
なので可読性&汎用性か性能のどちらを重視するかで
話は変わってくると思う。
ただ性能重視の場合、Cで書いたほうが賢い。
009694
NGNGそれってmetalとmotifのことを指してるの?
WindowsLookAndFeelを使えばべつに普通だし、
SkinLFとか使えば見た目は好きにできるので
ダサいも何もって感じなのですが。
0097デフォルトの名無しさん
NGNGWindows風であってWindowsそのものではない
その微妙な違いがクライアントに評判悪いという話をどこかのスレで見たよ
0098デフォルトの名無しさん
NGNGとりあえず、使えるところではなるべくfinalにすること、
くらいしか思いつきません。
0099デフォルトの名無しさん
NGNG実機を高速なものにする
010096
NGNGはあ。。。勉強不足でした。
そういう次元の話なんすね。
個人的にはL&Fで好きにできるのが
気に入ってますが。
>>98
java特有の方法なら、
できるだけコードを美しく書いて
あとはマシンのパワーでカバーって
ことになる?
それ以外なら
・なるべくインスタンスを使わずに1クラスで書く
・インスタンスは使いまわす
とかなんでしょうか。
0101デフォルトの名無しさん
NGNGアルゴリズムを勉強して、設計も勉強しろ。
0102デフォルトの名無しさん
NGNG・オブジェクト指向を捨てる
010398
NGNG>>101
Java特有の話ではないじゃないか。
>>100
・なるべくインスタンスを使わずに1クラスで書く
これよくわかん
>>102
Javaのインラインアセンブラ萌え
どこかのコードで、高速化のためかフィールドをtransient宣言しまくってるのを
見た事有るんだけど、意味あるんだろうか。
0104名無しさん@XEmacs
NGNGjavaは(VMの起動を除いて)遅いのではなく、処理にかかるコストが見えにくく
なってるだけで、ロジックの処理速度自体は、他の言語と大して変らない。
便利さを犠牲にすればスピードアップは可能
Reader/Writerより、Stream. Stringよりbyte[]かchar[].
JDKクラスライブラリよりプリミティブ型を使って自前で実装
とか。
> どこかのコードで、高速化のためかフィールドをtransient宣言しまくってるのを
> 見た事有るんだけど、意味あるんだろうか。
直列化のコストが減る。
010596=72
NGNG>>・なるべくインスタンスを使わずに1クラスで書く
>これよくわかん
>>102 におじ
あとgcとフィールド変数のnull化をしっかり行う。
なんにせよどんどんjavaらしさはどんどんなくなってくね。
あとはVM立ち上げのオーバーヘッドをなくすために
ランチャ(以下略)
010698
NGNG>javaは(VMの起動を除いて)遅いのではなく、処理にかかるコストが見えにくく
>なってるだけで、ロジックの処理速度自体は、他の言語と大して変らない。
状況によってはJavaの方が原理的に早くできる可能性があったりするしね。
・実行時に実行環境(CPUのモデルなど)の情報が得られるので、
実行環境にあわせて最適化する事が出来る。
・GCがメモリのデフラグしてくれるので、ヒープメモリの取り扱いに有利
・実行時の統計(if文でどっちに分岐するか等)を元にして、
動的に最適化することができる。
これをJREが実装してるか否かは別の問題モナー
>直列化のコストが減る。
直列化しないときでも影響あるのかな?
あと細かいところでは、StringじゃなくてStringBufferを適宜使う、
変数名を短くする(←そんなに効果有るのか?)、
内部クラスはなるべくstaticにする、
ArrayListで要素のサイズが確定した後はObject[]にコピーしてそっちを使う、
try catchはなるべく使わない、
等を思いつくのだけど、どうだろう。突っ込み歓迎。
0107デフォルトの名無しさん
NGNG対応してるのだから、JavaVMも対応しろYo。
0108デフォルトの名無しさん
NGNGJava関連のコメントや要望宛先一覧。
0109デフォルトの名無しさん
NGNGOSに組み込め
0110デフォルトの名無しさん
NGNGJavaのtry-catchはC++と違って性能に影響を及ぼさない
0111デフォルトの名無しさん
NGNGでも、throw使うと急に性能が悪くなるんだよな、これが。
0112デフォルトの名無しさん
NGNGそれってVMの実装に依存するんでないの
0113デフォルトの名無しさん
NGNGボトルネックな部分を探して、そこに
・なるべく処理を回さない
・それがio系なら裏で処理をさせる
・その部分だけ、バイトコードorCで書く
0114デフォルトの名無しさん
NGNG・最初に/*を書く
・最後に*/を書く
・コンパイル&実行
↓
ウマー
0115デフォルトの名無しさん
NGNGtry-catchの部分のバイトコードを逆アセンブルしてみれば
「例外が投げられないかぎり」性能に影響を与えないコードになってるのがわかる
例外が投げられると性能が落ちるのは111の言うとおり
(C++だと例外が投げられようが投げられまいがtry-catchを書いただけで性能が落ちる)
011698
NGNG1.5でasmブロックの導入きぼーん(大嘘)
今日の作業で、Jythonで記述したPlug-inへの呼び出しが
パフォーマンスのボトムネックになってることを発見しますた。
Plug-inの記述言語をJythonから生バイトコードにしようか検討中(萎え
0117アフォ
NGNGCYGWINのSETUPみたいにTOMCAT落とせると最高なんだが。
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNG一瞬WebStartのことかとオモタ。
ちなみに知らない。糞レスすまそ
0120デフォルトの名無しさん
NGNGやっぱりクライアントサイドはだめぽ
0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNGグラフィックカード依存の Windows クラッシュバグが直ってないと入れる気にならん…。
でもそういう情報ってどこにあるんだろ。
試してまた青画面ってのも精神衛生上良くないし。。
0123名無しさん@XEmacs
NGNGリリースノート
0124デフォルトの名無しさん
NGNGと思ってたらちゃんと書いてあるのね。失礼。
1.4.1: http://java.sun.com/j2se/1.4.1/relnotes.html
1.4.1_01: http://java.sun.com/j2se/1.4.1/ReleaseNotes.html
でも俺が気になってるバグは直ってなかった…。トホホ。
0125デフォルトの名無しさん
NGNGBugParade じゃなんか勘違いしてるみたいだし鬱
0126デフォルトの名無しさん
NGNGというあたりがネックになってると妄想
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGSWT Look and Feel が出る予定です
0130デフォルトの名無しさん
NGNG0131名無しさん@XEmacs
NGNGハァ?
0132デフォルトの名無しさん
NGNGいう共通認識がある。というか、実際クソ。
0133アフォ
NGNG俺は、J2EEをもったいぶらずに、クライアントサイドへ持ってくればいいと思う。
CachedRowSet 欲すぃ。
そして、それを利用したライブラリからライセンス料搾取しないでホスィ。
Swingのどの辺が駄目?CollectionViewとか見てみた?
久しぶりにこっちも。
http://www.bekkoame.ne.jp/ha/vzy03312/asrabbit/
そしてWeb上にでっかいメモ帳が欲しい。 no-ip.com 検索中。
0134デフォルトの名無しさん
NGNG速度もそんなに遅くなくなってきたし、融通は利くし。
0135デフォルトの名無しさん
NGNG一応つっこむけど
嘘だよな!?
0136デフォルトの名無しさん
NGNG>>CachedRowSet 欲すぃ。
Serializeの使い方わかってるなら、ValueObjectを適当に作って
RMIでオブジェクト丸ごと投げればいいだけじゃないのけ?
0137デフォルトの名無しさん
NGNGどうでもいい機能がいっぱいついているクセに肝心な機能がついてない
レイアウトマネージャの動きも
マトモな人間が考えたとは思えん
0138デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNGXはウィンドウマネージャー次第でぜんぜん違うし
やっぱりクロスプラットフォームが足枷
0141デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています