クライアントサイドJavaどうよ? part2
■ このスレッドは過去ログ倉庫に格納されています
0001Sunがダメ
NGNGマターリ語りましょう。
前スレ
http://pc3.2ch.net/test/read.cgi/tech/1002160815/
0760733
NGNGに出来ているから(Winでは確認。ほかはシラン)それを利用して、プロセス
間共有のMutexLockやSemaphoreを作ってみるのはありかモナー。
プロセスをまたぐことは考えないというのが、Javaのポリシーなのかもね。
スレッド使って一つのJVMでなんでもやれ、ということかと。
マルチプロセスだと、プロセスフットプリントのメモリと実行時のコンテ
キストスイッチのコストが無駄だしさ。
0761733
NGNGこんどは「スレッドスケジューリング操作API」と、「GCスケジ
ューリング操作API」が欲しくなるね…
できるかな?JCP調べてみるかな。
0762749
NGNGJVMの境界を越えた形に拡張できる気が。
インスタンスをJVM内のstataic変数という形ではなく、共有メモリ上に
シリアライズされた形で配置する。もっとも普通Cでこれを実現する場合は
一々シリアライズする必要はなくて、アラインメントさえちゃんとしていれば
単にキャストするだけの話なので、性能的に大きな差がありそう。
>>760
コンテキストスイッチのコストが発生するのはマルチスレッドでも
同じ話では。
Javaのポリシーという意味では単純に「移植性」の問題かなぁ、と思って
いたのですが。「クライアントサイド」というスレッドの趣旨に即して
云えば、例えばMutexロックを利用してアプリの多重起動を防止する、といった
テクニックは非常にありがちであって、できれば欲しい、という類の
ものですよね。
シングルJVMにあくまでこだわるのであれば、javaコマンドは独自の
JVMインスタンスを起動するようなものではなく、JVMサービス(daemon)に
新たなスレッドを生成し、クラスロードを指示するようなものであるべきだった
と思います。
その方が起動は確実に早くなっただろうし。
0763733
NGNGそういうのは、おそらくEJBサーバとかRMIサーバを利用するの
がJava流。(TCP/IP越しになるので遅いだろうけど。でも、
LinuxのGNOMEなんかCORBAでやってるし〜♪)
アプリケーション製作側が、全体でJVMを一個だけ使用する
ようにして、追加機能はプラグインで、という発想は、
Eclipseとか、APサーバーとかでどんどん普及してるじゃんよ。
シランカ?
0764っていうか
NGNG0765デフォルトの名無しさん
NGNG0766749
NGNGMappedByteBufferまわりのヘルプを呼んだ限りでは、それがMAP_PRIVATE
相当機能ではなくMAP_SHAREDなものを提供すると読めたのですが、
勘違い?
分散オブジェクト環境は、個人的には
・大がかりすぎる
・柔軟だが、スケーラブルでない。端的に云えば性能がよろしくない。
と思っているので、代替手段があるのならその方がいいわけです。
性能がよくなくても良いのであれば、何らかのメッセージ機構が提供
されているならば、それを用いて排他プリミティブも実現できるでしょう。
APサーバが単一のJVMを用いているのは無論知っています。が、
何でもかんでも一つのAPサーバ上で実現できる(または、する)訳でも
ないでしょう。現実的な問題を云えば、例え基本的な実行単位が
プロセスではなくスレッドであるWin32環境においても
*スレッドはプロセスの代替にはならない*
ので、マルチプロセス環境を無視する訳にはいかないし、
javaインタプリタを>>762に書いたような方法で実装することは
現実的で有効な選択肢ではない(だから実際にそうなっていない)
...ということを云いたいわけです。
0767デフォルトの名無しさん
NGNGJ2EE学んでおけばなにか楽なことができそうだな。
移植性の高さからJ2EEを学ぶ価値は高そうだな。
ライブラリの統一性から学んでも損はしなそうだな。
それよりレスを見るとOSやネットワークの話が多いのか。
OSの知識やTCP/IPとかも深く学んでおく必要がありそうだ。
0768デフォルトの名無しさん
NGNGそれにかかるお金も大きいほうだよ。
0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNG俺は >>764 では無いが、あくまでこのスレの主旨が「クライアントサイドJava」であるのだから、
当然、対となる「サーバサイド」の存在があるわけで。
たぶん >>764 が言いたかったのは、「クライアントサイドが起動する時にサーバ側に問い合わせて、
自分は起動してもいいかを確認する」って事だったんじゃないの?その起動情報の保存用にサーバ側の
DBを使う、と。
接続法としては、別にSocketだろうが、URlConnectionだろうが、RMI(含む IIOP)だろうがなんでもいいと。
...って、そう考えると、APサーバやDB周辺がデカいMutexに見えてくるな(笑
0771デフォルトの名無しさん
NGNGアプレットみたいなもんじゃないのか?
ま、どれを話題にしてもすぐネタ切れになりそうではあるが…。
0772デフォルトの名無しさん
NGNGwhile(true) {
>>715-771
}
0773デフォルトの名無しさん
NGNG0774デフォルトの名無しさん
NGNGat line 772
0775733
NGNGファイルがマッピングされるダイレクトバッファは、JVMインスタンスに対して
関連付けられている状態ですので、プロセス間で共有は出来ませぬ。
Sunは、Javaでスレッドをプロセスの代替として使うことを推進してますでしょ。
第一、プロセスフットプリント分のオーバーヘッドを消費してまでプロセス分け
なきゃいけない理由ってナニヨ。JVM一個でヒープ広く取っておいて、スレッドで
シェアしたって一緒じゃん。
もしJavaでOSつくるなら、OSカーネル=イッコのJVMなんじゃないのかな。
0776デフォルトの名無しさん
NGNGSunとMSのバトルで振り回されるのは、もう飽きた。クライアントサイド
にやる気のないSunは市ね(MSとの訴訟は大好きみたいだなw)。
こちとら、年配のコンシューマがターゲットなんで、JREをインストール
しろだなんだと、めんどくさいことさせられねぇのよ。アナログ回線な時
代はそんなことは死刑を宣告するようなもんだった。んで、インストール
ベースの一番多いMicrosoftVMを仕方なく使ってるが(Swingなんて使った
ことねーよバカ!)、バグの修正はもうやってねーし、この間はWindowsXP
SP1aなんか出しやがって。MSVMが入ってねー客はどーすんだオラ。JREダウ
ンロードさせようと思っても、使用許諾画面はなんで英語なんだ?ダウン
ロード方法教えるのがめんどくせーんだよ!Java Plug-inのgetjavaページ
もなんで英語なんだよ。日本語版作れ!ま、SunのVM入れたって、Win98とか
じゃHotSpotが落ちることあるしな。バグ減らせよ。本当に勘弁してくれ。
世間じゃJ2EEだなんだと、サーバサイドや組み込み全盛。展示会のセッショ
ンじゃ、クライアントサイドの話題なんて殆どねーよ。見に行く気にもなら
ん。JavaWebStartはなんで2回目の起動時にショートカットアイコンを作る
ような画面を出すのだ?余計なお世話はやめてくれ。その説明もめんどくさ
いんだよ。今じゃこの辺の制御は出来るようになったのか?
よーしパパ、C#に浮気しちゃうぞ。これならファイルの関連付けもマイドキ
ュメントフォルダも自由自在だ!あ、パイの狭いMac版対応は後回しで許して。
じゃ、バイバイ。
0777デフォルトの名無しさん
NGNG0778776
NGNGおいおまいら。
マリンバはどーした?クライアントサイダーにとって、カスタネットは希望の
星じゃなかったのか?いや、違うな。失礼した。
とにかく、Sunはさっさと安定したVMを出せってんだ。ちょこちょこバー
ジョンアップするな!マウスのクリップ部分の画面表示が崩れるのを
DirectXのせいにして放置するな!グラボのパフォーマンス設定を落と
せだと?ふざけんな!そんなことユーザにさせられるか!VMオプショ
ンでDirectXをOffにしろ?そしたら画面が汚いんだよ!アホ!
BugParadeの大行列を解消しろ!
すっきりしたのでマジバイバイ。
聞いてくれてありがと。
0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNGはるか昔に聞いたことがあるような気がするが…。何だっけ?
調べようかと思ったけど別にいいや。
俺は netscape4 についてきた netcaster の糞っぷりが忘れられない。
アクティブデスクトップに対抗したプッシュ配信技術なんだけど、
Java で書かれてたせいで起動に 1 分以上かかったな。
あとは Java で書かれた netscape4 ヘルプの糞鈍重っぷりとか。
あの辺がクライアントサイドの行く末を暗示してたな。
さて、仕事すっか。
0781デフォルトの名無しさん
NGNGあなたは仕事でJavaやっているの?
0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNGあなたはよくそんなことを客に言えますね。
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNGSunでもMSでもいいから、どっちか倒してくれ
0786デフォルトの名無しさん
NGNGかといって.NETにサーバーサイドを支配させるのはどうかと
0787デフォルトの名無しさん
NGNG0788デフォルトの名無しさん
NGNGJavaと.NETが相互利用できるようになるのが一番ありがたい。
0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNG(゚Д゚)ハァ? ソースは?
0791デフォルトの名無しさん
NGNG0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNGJava マンセー、みたいな。
0794デフォルトの名無しさん
NGNGhttp://developers.slashdot.org/article.pl?sid=03/02/09/1347215&mode=nested&tid=108
0795デフォルトの名無しさん
NGNG肝心の部分が見れないんですけど。
0796デフォルトの名無しさん
NGNG0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNG0799デフォルトの名無しさん
NGNG本家 ./ のでかさって、./-J と桁違いなんだな。
0800799
NGNGぁゃゃか、俺は。
0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNGとりあえず Sun 自身が「Solaris の Java 実装はイマイチ」と思ってるらしい
ということは読み取れるけど、これは「Java 自体がイマイチ」いってるわけではないよね。
「(Solaris の Java はイマイチだから) Solaris よりも Linux に注力することで
Sun の負担を軽減したい」ということなのか?
でも Enterprise 分野って Solaris 主流なんだよな。よくわからん。
後半は「JREでかすぎ」とか「バージョンでの互換性低すぎ」とか
「とっととバグ直せ」とかこのスレで言い尽くされた内容ばかりだな。
0804デフォルトの名無しさん
NGNG俺も読んでみたけど、なんだかなぁって感じがした。
Solarisの話されても、ウチでは使ってないし。
0805デフォルトの名無しさん
NGNG漏れもExcite翻訳使って読んだ。
やっぱりSolaris上で動くJavaだけの問題だったか。
>>789は電波だよ。あの全文ちゃんと呼んでいない厨房。
C#死滅スレPart7でさっきまで暴れていたあいつだよ。
なぜか不思議というか奇妙なくらいにかなりJavaを目の敵にしているみたいなんだ。
0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNG放置を覚えられないやつは何をやっても駄目。 みつを
0808デフォルトの名無しさん
NGNG1.4 になって実行速度はほとんど問題ないのですが、
起動時間が遅いのが問題です。起動・終了の多いアプリケーションなので。
そこで次のようなものを考えました。(まだ実装していません。)
JVMをあらかじめひとつ起動しておいて待機します。
ソケットで実行したいクラス名をそいつへ通知します(Cで実装します)。
受け取ったクラス名からインスタンスを生成してあげます(別スレッドで)。
アプリケーションの起動 = ソケットで実行したいクラス名を通知 ということです。
ここで問題になるのが、コードの書き方によっては JVM 自体を落としてしまうということです。
呼ばれたクラスで System.exit() なんて書いてたら、呼出元もろとも即死ですよね?
それと、呼ばれたクラスでエラーが発生したら・・・? これは、呼出元で
catch(Throwable t) {} しとけば大丈夫ですよね。
なにかいいアイデアないですかね?
0809デフォルトの名無しさん
NGNGでも昔全く同じことをやったとき(1.2とかそのへん)、System.exit()を
投げてきたスレッドグループをどうするかでVMごとの違いがあって
はまったな。単純にSystem.exit()してきたグループをkillすると
AWTまわりのオブジェクトを破棄するVMとかかえたままのVMがあったりして。
最近のはわからん。でも自分でクライアントアプリケーションも実装する
なら「System.exitはつかわない。もしつかったらセキュリティマネージャ
で捕まえてassertのメッセージを出す」くらいでいいだろうね。
0810デフォルトの名無しさん
NGNG> 起動・終了の多いアプリケーションなので。
その時点でJavaを選択肢から外さないのがおかしい。
0811デフォルトの名無しさん
NGNGまぁ、回避策はいくつかあるからねぇ。
0812デフォルトの名無しさん
NGNG判断は冷静にしようね。
0813デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNGこれから作るんだったらJava以外の選択肢も選べるだろうけど
もー作っちゃってる場合はJavaで起動時間短縮する工夫した方が早いっしょ。
0815デフォルトの名無しさん
NGNGコレ結構いいよクライアントサイドにはもってこいだな
SWTも使えるし・・・
いま、体験版だけどマジで製品版買おうかな?
JETで作ったSWTのサンプルexeプログラム(Winのエクスプローラ風)ここからDLしてみそ
ttp://www.xlsoft.com/jp/products/jet/jetswt.html
0816デフォルトの名無しさん
NGNG冷静な判断という言葉の意味を判ってないのね。
0817808
NGNGアプリケーション上に表示されるGUI部品が動的に変わるので
VB には荷が重いかと思いました。
C# のほうが良いとも思うのですが、文法はともかくクラスライブラリの
使い方やクセを覚えるのにそれなりに時間がかかると思いまして。(C#未経験)
(Swingもそれなりに使えるようになるのに時間かかったし…)
0818デフォルトの名無しさん
NGNGSwingよりハラクダヨ。そんなにディープなことが出来ないようになってるし。
0819808
NGNG以前ちょっとだけ使ったことがあります。実行速度をちょっとでも速くしたい、
というのならともかく、配布を簡単にしたいということであればオススメしません。
スタンダードエディションでは、実行クライアントへ JRE と JET を
配布する必要があります。結局、足枷が増えるだけですね。
Webで公開されているサンプルのように JRE から独立したフルネイティブで
コンパイルするにはプロフェッショナルエディション + SWT使用 が必要です。
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNGDoJa Builderは、DoJa(iアプリ)アプリケーション開発ツールです。
NTTドコモのiアプリ開発を強力にサポートします!
http://www.skyarts.com/japan/products/programing/dojabuilder/index.html
Q:なぜ.NET Frameworkが必要なのですか?
DoJa Builder Ver 1.xはJavaアプリケーションでした。しかし、
そのことにより以下の問題点がありました。
起動が遅い
動作が重い
GUIが使いづらい
ホイールマウスが使えない(JDK1.3の場合)
ダイアログが後ろに行くと元に戻しにくい
これらのことからユーザーの開発効率をあげるためにはVer1.xを引き継いで
Javaアプリケーションのままバージョンアップを行うことは難しいと判断しました。
0823デフォルトの名無しさん
NGNGJava ─ めんどい。
.NET ─ らく。高機能。
0824デフォルトの名無しさん
NGNG2回目以降はものすごく速い。
起動・終了繰り返すものなら適当だと思う。
0825デフォルトの名無しさん
NGNGそう、それそれ。ありがとう。
悲しい現実ですね。
0826808
NGNGところでみなさんクライアントサイドでのJavaあきらめて .NET ですか?
0827デフォルトの名無しさん
NGNG「冷静な判断という言葉の意味」って何?
0828デフォルトの名無しさん
NGNGUnix系でしか動かないものなら興味ある。
0829デフォルトの名無しさん
NGNG意味の意味について問いただすと深いぞ。
0830デフォルトの名無しさん
NGNGmono試してみて
0831デフォルトの名無しさん
NGNG動かない on FreeBSD
0832デフォルトの名無しさん
NGNG動作が重い
GUIが使いづらい
これを2ちゃん以外の場所で目にするとは・・・現実って残酷ですね
0833デフォルトの名無しさん
NGNGじゃ、Cで決まりですね。
0834デフォルトの名無しさん
NGNGしかもiアプリ開発に.NETというところがミソですな。
0835デフォルトの名無しさん
NGNG0836デフォルトの名無しさん
NGNG実際に製品を作って、売ってる人たちの言葉だからな・・・
結構なクレームが来たんだろう。
0837デフォルトの名無しさん
NGNGもっと待たないといけないと言うことだな。
ハードウェアの性能向上を待つのみ
0838デフォルトの名無しさん
NGNGそう言われ始めた頃から既にCPU、メモリともに10倍の進歩を遂げてるけど、
未だに待ち続けてるよね。
待ち疲れますた・・・
0839デフォルトの名無しさん
NGNGならないすね。誤差になってきます。
たとえば 朝一度立ち上げて 夕方まであげっぱなし、なんて運用の
プログラムだと Javaでも十分いけるです。
Swing部品がいけてない、ってのは たしかに初心者の開発者が
そう誤解しても仕方ない面がありますけど、
好きなだけ いじくりまわせるので、一度凝った部品作ったことがあれば、
VBなら部品購入しなきゃできないような機能も
簡単につくれるようになるす。
わたしは Delphi も VBも C#もさわりますが、Javaのクライアントもいいすよ。
0840デフォルトの名無しさん
NGNGつまり、一般配布用には使い物にならないってことだよね。
メーカーさんには申し訳ないけど、いい実験例だったと思うよ。
0841デフォルトの名無しさん
NGNG0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNGそれは言っちゃダメでしょ。
0844デフォルトの名無しさん
NGNGあ、837か。
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNG>>1-999 までの全てを妄言と認定します。
0847デフォルトの名無しさん
NGNG一つのメソッドに無駄にオブジェクトをnewしているとか
不要なオブジェクトにnullをポイントしていないとか
ループ文の外側でできることをわざわざ内側で無駄に処理しているとか、
気になる。
>>838 もっと待て。
>>839
Javaは一度起動すると他の言語で作ったものと速度差が少なくなるものが多いんだな。
>>841
SwingがほかのGUIと同じくらいパフォーマンスになるには
どんなコーディングにすればいいのか、という分析をしてからそういう発言をしてくれ。
>>841 代わりになるものが無いからJavaで作っていると思う。
0848デフォルトの名無しさん
NGNG開発環境だけが.NETということで
携帯電話が.NET対応になったわけじゃないのか。
0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNG「(藁」が抜けてますよ。
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG笑った。見ちゃった?
0853デフォルトの名無しさん
NGNG死滅スレに引きこもってろよ
0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNG激しくむかつくんですが。
常にランタイム同梱ならSmalltalkで作ったって同じだな。
0856デフォルトの名無しさん
NGNGOracle とか Borland に文句言えば?
0857デフォルトの名無しさん
NGNGJREはバージョン違いでの動作の違いが甚だしいから、
そうするしかないよ。
0858デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています