- 1 名前:デフォルトの名無しさん mailto:sage [2006/05/18(木) 01:03:42 ]
-
前スレ 【Java】次世代Java・J2SE1.6の動向【Mustang】 pc8.2ch.net/test/read.cgi/tech/1081698555/ 関連スレ 【JavaFive】C#からJ2SE5.xへ進化【TigerShot】 pc8.2ch.net/test/read.cgi/tech/1094891986/ www.itmedia.co.jp/news/articles/0404/07/news018.html マルチタスク実現へJava言語改良 Sun幹部によると、2005年に一般リリース予定の「J2SE 1.6」には、 Javaバーチャルマシン(JVM)のアプリケーション共有を強化する「分離」機能が備わり、 ローカライズコンピューティング処理実行のための分離が可能になるという。 米Sun Microsystemsは、Javaバーチャルマシン(JVM)内部での アプリケーションマルチタスク実現に向けてJava言語の改良に取り組んでいる。 カリフォルニア州サンノゼで開催のClusterWorld Conference & Expoで4月6日、同社幹部が明らかにした。 SunのJavaアーキテクト、ムラリ・カウンディンヤ氏によると、 今秋β版が登場し、2005年に一般リリース予定の「J2SE 1.6」には、 JVMのアプリケーション共有を強化する「分離」機能が備わる。 この機能によってローカライズコンピューティング処理実行のための分離が 可能になり、第2のJVMを要求することなくJVM内部でマルチタスクが行えるようになるという。 またJ2SE 1.6では、Javaプログラム間の高速通信を可能にする Sockets Direct Protocolのサポートが計画されている。カウンディンヤ氏によると、 J2SEに施された改良は、その後間もなくJ2EEにも組み込まれる予定。
- 855 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 22:50:38 ]
- >>854
852だけど、一応そういう系の人です。Java VM上で動作する とあるスクリプト言語開発してます。超マイナーな言語ですが 一応どんな言語かというと、Javaに似たセマンティクスに スクリプト言語っぽいシンタックスシュガーをふりかけました みたいな言語です > 言葉遣いが足らず失礼しました ?別に特に>>854さんが失礼な言動をしたとは思わなかったけど
- 856 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 22:54:35 ]
- あ、ひょっとしたら誤解してるかもしれないんで一応いっておくと
>>850さんと>>852(= >>855)は別人なんで
- 857 名前:デフォルトの名無しさん [2006/08/30(水) 23:31:46 ]
- いや〜、やっぱりここにはいろんな人が来てるね〜
\_____ _______________ ∨ | | まいど、まいど!繁盛、繁盛!! \_ ___________ __ ∨ / /| ∧_∧ | ̄ ̄|/| (・∀・ ) ( | ̄ ̄| | ̄ ̄ ̄|\_(_ )_ (・∀・: )Java は さいきょう じゃ | ̄ ̄| |___| ∧_∧  ̄ ̄ ̄ ////| | ̄ ̄| |___|( )____| ̄ ̄ ̄|/| | ̄ ̄ ( ○ )  ̄ ̄ ̄| | | | | | | | | (_(_) |/
- 858 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 23:44:50 ]
- ここで思ったんだが、JVM用のC言語を書くってのはどう?
- 859 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 23:47:50 ]
- >>858
JVMしか作成できない言語を作るの? どんなメリットがあるの?
- 860 名前:デフォルトの名無しさん [2006/08/30(水) 23:53:53 ]
- ちょっとだけスレを読んでみたけど、
ガベコレ実装しそうな職人とか、 サーバー用ツールと次世代Javaの関係が気になる人とか、 クライアント用(携帯アプリ)の開発者とか、 コンパイラ作る人とか、 CマンセーなのにJavaが気になる人とか、 JVM上で動作するスクリプト開発者とか、 いっぱい居て楽しそうだね〜♪
- 861 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 23:55:09 ]
- >>859
ごめん言葉足らずだったね JVM上で動くバイナリを吐くC言語だ
- 862 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 00:10:41 ]
- >>861
> JVM上で動くバイナリを吐くC言語だ Cのソースからクラスファイルを作るということ?
- 863 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 00:20:12 ]
- >>855
ちょいと質問なんだが、JRubyやJPyton、GroovyやJavaScriptじゃだめだったの? 独自スクリプト言語を新規開発するに至る動機はナンデスカ?
- 864 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 00:54:34 ]
- 「独自スクリプト言語を新規開発する」どころか、
「独自スクリプト言語を新規開発するためのフレームワーク」が出て来ているのに、 そんな質問するに至る動機はナンデスカ? せめてどんな特徴があるんですか?くらいにしてくれよ
- 865 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 00:56:48 ]
- >>862
そんな感じ それなら単純にJava言語とC言語の比較が出来るだろ
- 866 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 01:01:57 ]
- >>861
そんな無意味なものを誰が使うんでしょうか。 性能上の要求が高くて、高級アセンブラを使うリスクを拾わなきゃいかん場合に、 仕方なくCを使うのであって、要求が低くてJavaなり何なり使って手抜きできるな ら、手抜き言語使うんじゃないの。
- 867 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 01:02:58 ]
- > それなら単純にJava言語とC言語の比較が出来るだろ
言語仕様そのものを比較するわけじゃないから、意味なくない?
- 868 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 01:07:26 ]
- >>863 私の野生の勘ですが、javascript かjrubyの開発関係の人ですよ、きっと。もしくは学者先生。だからそそうのないように・・
- 869 名前:sage [2006/08/31(木) 01:18:44 ]
- >>868
なんで2chで書きこみのリアル人生に気を使う必要があるんだと小一時間(ry 大体、そんなエライ人がこんなところでクダまくかいな。
- 870 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 01:20:32 ]
- >>855
JVM系のスクリプト言語は多くが動的型で、パフォーマンスがJavaに比べて劣るから、 静的型でJavaと同等のパフォーマンスを保ちつつ、手軽に書ける言語が欲しかった というところ 実際、簡単なベンチマークとってみたら、Javaとほとんど同等の速度が出てた まあ、セマンティクスがJavaに極めて近いから、速度出るのは当たり前なんだが とはいえ、予定していた言語仕様はそれなりに実装できたものの、ライブラリをまだ 全然作ってないので、Javaのライブラリを使うしかないという情けない状態になってるが
- 871 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 01:27:29 ]
- >>870
よくわかりませんが、それって、例えばGroovyみたいな言語 →JVMバイトコードのコンパイラ作ったってことですか?
- 872 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 01:27:45 ]
- >>858,>>861-862,>>865-867
現時点での実用性で考えると、いらない、意味無いというのは当たり前だと思う。 現状の、Java VMが各OS上のの単なる1サービスや1アプリケーションと考えると 無意味だけど、これとは逆に各OSはJava VM上の1アプリ・1コンテンツと考えると、 状況は変わってくるんじゃないかな? よく言うところの、ネットワークをでかいプラットホーム見立てて各OSはJavaの環境 で統一って言うやつ。 ちなみに私は>>858じゃないよ。
- 873 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 01:28:06 ]
- >>869
855だけど > 大体、そんなエライ人がこんなところでクダまくかいな。 まあ、そりゃそうだわなw リアルではただの大学院生です ただ、エライ人でも興味ある分野のスレ見てる人は結構居るみたいですが
- 874 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 01:29:30 ]
- >>871
そういうことです しかし、自分が言えたセリフじゃないが書き込みのペースが早いなw
- 875 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 01:31:55 ]
- >>867
だって、JavaとCの比較ならおかしくないだろ JITとAOTのどっちが早いってだけの話なのか?
- 876 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 01:36:29 ]
- なんか知ってるかもと思ったので質問。
Java6のHotSpotコンパイラでエスケープ解析が入るのが売りの一つらしい けど、スタックにオブジェクトが積めるようになるとそんなに性能上がるの? 世代別GCならヒープへのオブジェクトの確保解放はたいしたコストじ ゃないし、どうせ短寿命なら初回MinorGCでedenからさようなら〜なので、 なんかイメージつかないんだけど、ナニがどう軽くなるんでしょう?
- 877 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 01:43:02 ]
- ところで、JVMで動作するC言語の処理系だけど、既にあるよ
JVMで動作するっていうか、C言語 -> Java言語のプログラムへの トランスレータだけど。C2Jでぐぐってみるといいと思う
- 878 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 01:45:47 ]
- >>875
静的コンパイルとHotSpotでどっちが早いというのがテーマなのかねえ… 「HotSpotコンパイル」の中身がどんな最適かなのかわからないことには、 なんともかんとも。
- 879 名前:デフォルトの名無しさん [2006/08/31(木) 01:49:48 ]
- もしスクリプト言語作るなら、
個人的には数式処理・代数処理程度で、 それをevelする程度で十分なんですけど。 複素数や行列の独自表記ができたり、(a+b)^2と書けたり 多項式展開や因数分解できたりとかです。 Java VMで動くバイトコードコンパイラ、スクリプトコンパイ ラ?を作る意義・動機と言うのは、そういう特定用途に特化し た言語を作るのでもありということだと思うんですけど・・
- 880 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 03:49:03 ]
- C言語厨である>>841はなぜJava似のC++も使いこなせ
なかったんでしょう
- 881 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 03:50:11 ]
- >>844
Javaカードは、 住民基本台帳カード、 大日本印刷が作ったカード、 海外の国民健康保険カードに使われているよ
- 882 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 04:24:32 ]
- >>876
そりゃヒープに取らないで済めば、その分処理が軽くなるでしょう。 ヒープはGC含めてなんだかんだで競合が多いので、 C10Kな時なんかには効いてくる。object poolもしないで済む。
- 883 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 05:56:41 ]
- >>877
そのトランスレータ使える? たった一行のCのプログラムもとんでもない量のJavaになるし、 ポインタ演算している所なんか、酷すぎる。
- 884 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 07:12:58 ]
- >>787
ちょw まだアプリ間連携もまともにできないJavaなのにw どうみてもやっと「アプリケーション構成を考えるようになりました」ってレベルだろ? docs.sun.com/app/docs/doc/802-2112/6i63mn60p?l=ja&a=view のデリゲートとか docs.sun.com/app/docs/doc/802-2112/6i63mn62q?l=ja&a=view のサービスにいつ追いつくのやらw 20年前のフレームワークに負けてるってはずかしくね?
- 885 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 09:15:02 ]
- >>828
> >>807 > >だから、nが大きくて、CPU毎に最適化したコードによる恩恵が十分得られる場合は、 > >>805のような動的実行コード生成をC, C++でもやればいいだけの話。 > >で、こういう手法は机上の空論じゃなく、多くの動画コーデックや > >OSカーネル(ページクリアに使うmovntiとか)など、多くの場所で用いられているんだよ。 > if(SSE2命令が利用可能か?) { > // SSE2命令を利用したインラインアセンブラによるコード > } > else { > // SSE2命令を利用しないインラインアセンブラによるコード > } > これのどの辺りが動的実行コード生成になるのか説明してくれんか? > 無知は怖いね。 無知晒し上げ
- 886 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 09:31:54 ]
- 最近、各種OSは、
securityがらみでdata領域を実行出来なくする方向だけど、 JIT/HotSpotはそれじゃ困るやね。
- 887 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 10:01:01 ]
- >>883
.いや、たぶん実用にはならないだろうなあとは試してみて俺も思ったけど まだそういう処理系は無いという前提で話が進んでいるように見えたので、 一応そういうものはあるということが言いたかっただけ
- 888 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 11:34:40 ]
- >>884
なんかcocoaとかで見る名前だね。 あたりまえか。 何でこれがSunにおいてあんだ?
- 889 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 11:44:02 ]
- >>885
ドトネト厨笑えるw
- 890 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 11:59:42 ]
- >>888
OPENSTEP
- 891 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 12:44:51 ]
- >>886
デフォルトが実行不可になるってだけで、 別途実行可能な領域を確保する方法は用意されている。 たとえばUNIX系ではmmap()にPROT_EXECフラグを付けて領域を確保すればいい。 というか、IA32アーキテクチャではNXビットがサポートされるようになったごく最近まで PROT_EXECフラグの有無にかかわらず常に実行可能になっていたってだけで、 他のアーキテクチャでプログラムしていた連中にとっては今更って話だろうね。
- 892 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 15:09:33 ]
- Java6.0っていつリリースされるの?
- 893 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 19:36:00 ]
- >>888
これSunがSolarisにポートした幻のOPENSTEPのやつだな 俺リアルで使ってたけど、、
- 894 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 19:56:15 ]
- >>1の「分離」とかSockets Direct Protocol
はMustangで実現してなくないか? dolphinで?
- 895 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 19:58:30 ]
- >>892
そのうち
- 896 名前:デフォルトの名無しさん [2006/08/31(木) 20:45:38 ]
- That house?
- 897 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 21:11:58 ]
- 次のjavaではインライン・アセンブラが出来るようなる
らしい・・・
- 898 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 21:49:05 ]
- >>892
Java6.0はリリースされない リリースされるのはJava6
- 899 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 22:14:09 ]
- >>897
ネタだろうけど、あえて反応してみる。こんな感じか? public class HelloWorld { public static void main(String[] args){ asm("getstatic java/lang/System.out:Ljava/io/PrintStream;"); asm("ldc \"Hello, World\""); asm("invokevirtual java/io/PrintStream.println:(Ljava/lang/String;)V"); } } しかし、もし仮に本当にJavaにインラインアセンブラが搭載されたとしても、goto 使えるくらいしか利点が無さそう… バイトコードレベルでは、大した最適化もできんし、JITコンパイラの最適化を阻害する危険もあるしな
- 900 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 22:45:40 ]
- >>899
>>897はネタの匂いがするけど それだったらJava標準でなくてもすでに誰かが 作ってそうだ。 Java 6ではそれと似たような方式でスクリプト言語をサポートしていたし。 結局、Jakarata OROと同じように文字列のエスケープは避けられないというわけで。 外部ファイルに置いた場合だけエスケープしなくて済むってほうが言語としてまともだね。
- 901 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 23:43:59 ]
- コンパイラサポートすんだから普通にやるんじゃないか。
- 902 名前:デフォルトの名無しさん [2006/09/01(金) 00:06:39 ]
- >>892
2006年10月以降? journal.mycom.co.jp/news/2006/08/31/340.html
- 903 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 06:18:20 ]
- >>902
ありがとう!
- 904 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 09:52:57 ]
- この秋といってたけど、11月以降が濃厚だな。
- 905 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 11:13:19 ]
- Java6の魅力はGUIまわりの強化くらいかね。
アノテーションが増えたって言うけど、どんなもんが増えた? 新たにGenerics対応したクラスも出る?
- 906 名前:デフォルトの名無しさん [2006/09/01(金) 14:30:24 ]
- > JVMはどうやってガベコレを実装してるの?
JVMにはJava言語用に作られたGCがあるだけで、C言語には使えないよ。
- 907 名前:デフォルトの名無しさん [2006/09/01(金) 14:41:41 ]
- >>906あんまり正確じゃないなその表現は。
- 908 名前:デフォルトの名無しさん [2006/09/01(金) 15:37:41 ]
- いつになったら.NET並の速度になるん?
- 909 名前:デフォルトの名無しさん [2006/09/01(金) 16:00:38 ]
- javaと.netは目指しているものが違うから同じように比べてもねぇ
- 910 名前:デフォルトの名無しさん [2006/09/01(金) 18:50:50 ]
- >>908
CLR の仮想関数呼び出しは遅すぎで使い物にならないわけだが。 Pure Java と Pure C# なライブラリを比較すると 明らかに JVM >>>>>>>>>>>> CLR であることがわかる。
- 911 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 19:32:29 ]
- >>908
ドトネト並みっていってるが、 ドトネトだってJavaより遅いのは遅いぞ。 どっちもVM上で動いているんだから。 どっちも遅いんだし。 比べるならC/C++とのほうが重みがある。 ドトネトだとVMの性質がJavaと異なるし 得意分野、得意分野が微妙にことなる。
- 912 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 19:39:22 ]
- Java6 mustang = null;
Java5 tiger = new Java5(); tiger.swing++; tiger+=derby; tiger+=webServer; Java6 mustang = (Java6) tiger; こんな感じかな?
- 913 名前:912 mailto:sage [2006/09/01(金) 19:40:07 ]
- 最初の一行いらないね。失礼。
- 914 名前:デフォルトの名無しさん mailto:sagw [2006/09/01(金) 20:48:22 ]
- NETが日本で最も普及しているプログラム言語
pc8.2ch.net/test/read.cgi/tech/1156986942/
- 915 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 21:17:57 ]
- >>912
Java5型はオブジェクトの型なのか文字列型なのか数値なのか どっちみちString型の猿まねはできないし++や+=を使えるのは Stringオブジェクトか数値型だけなのでエラーになるわな。
- 916 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 21:18:20 ]
- >>914
つまらんし、根拠がない
- 917 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 21:28:45 ]
- >>915
オペレータオーバロードキタ━━━━━━(゚∀゚)━━━━━━!!!!
- 918 名前:デフォルトの名無しさん [2006/09/01(金) 21:51:25 ]
- >>911
わからないでもないが、同じバーチャル・マシンという環境で比べた方が公平だと思うぞ Cはネイティブ・マシンだろ またガベコレがどうしたこうしたとかなのか?
- 919 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 21:52:39 ]
- ネイティブ・マシン……
- 920 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 22:02:58 ]
- そういや、Stringには++使えないんだった。
つーかJavaに演算子オーバーロードなんて期待すべきでないし 勧めるべきじゃない。 C++の二の舞になったC#と同じ道を歩む。 あれは大失敗だった。
- 921 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 22:05:07 ]
- >>918
同じVMといってもな、VMは各種ベンダによって速度が異なるし。 IBMが作ったのとSunが作ったのとではJVMの速度やライブラリによる速度も変わってくる。 その辺りも厳密に考えないと逝けない。 そう考えると、面倒だし議論するだけ無駄だと思うんだが。 そういう比較は、こだわると、FFとドラクエとを比較するくらい実にくだらない議論になると思うよ。
- 922 名前:デフォルトの名無しさん [2006/09/01(金) 22:20:11 ]
- >>921わかってるじゃん。
- 923 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 00:26:08 ]
- >>905
1.2〜1.4のようにデスクトップアプリが大幅にパワーアップするようなのはあんまりなさそうだ 5.0以降デスクトップに力入れてますといってるけど、小粒なのが多くて むしろ力入れてないのではと思いたくなる
- 924 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 02:48:50 ]
- public class Java6 extends Java5{
Swing swing = getSwing().add(new AntiAlias()); DB db = new Derby(); public Java6() throws NotReleasedException{ try{ openSource(); }catch(Exception e){ log.error("やっぱり無理だった"); } throw new NotReleasedException("もうちょっとまって"); } }
- 925 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 03:40:53 ]
- しかし.NETのCLRが「速い」というのは初めて聞く意見なんだが、
なんか速くなったのか? ずっと「遅い遅い」と言われ続けてたと 思うんだが。
- 926 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 10:27:07 ]
- >>920
演算子のオーバーロードは便利だよ。演算子オーバーロードじゃなくても、 クラスごとに演算子の動作を定義できるのは便利。 C++のはいけてないけど、pythonのように、演算子ごとに対応するメソッドを 用意する方法ならわかりやすいし、実装も簡単(コンパイラに手を入れるだけで済む)。 Javaユーザは、Javaにない機能はすぐに「あんなものイラネ」とかいいだすから嫌い。
- 927 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 10:38:16 ]
- >>926
> Javaユーザは、Javaにない機能はすぐに「あんなものイラネ」とかいいだすから嫌い。 激同 で、いらないっていいながらJavaに実装されるといきなりマンセーし始めるからもっと嫌い。 Javaは好きだがJavaをまともに使えるのはほんの一握り。大抵は基礎の無い阿呆ばっかだ。厨の割合が高過ぎる。
- 928 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 10:40:06 ]
- 少なくともBigなんちゃらや日付時間関係は演算子使いたいよな
文字列だけ砂糖付きはずるいぞ
- 929 名前:デフォルトの名無しさん [2006/09/02(土) 11:06:01 ]
- > 厨の割合が高過ぎる。
そういう業界だろw
- 930 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 11:30:59 ]
- >>928
BigDecimalが対応されたらクライアント用でも業務系での地位は確定するな
- 931 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 12:11:19 ]
- >>926
>>927 そんなもの別にJavaユーザに限った話じゃないでしょ。なんですぐにそういう話になるかなあ C++ユーザだってよく、Javaに対して、GCなんてイラネとか言っているのは耳にする ある程度普及した言語には、厨や信者が一定割合でつくというだけの話だと思う
- 932 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 12:17:23 ]
- >>926
演算子っつーと、[] も演算子だよな。 数値計算しないから + や - のオーバーライドはできなくても個人的には困らんけど MapやListで list.get(0) や map.get("key”) が list[0] や map["key"] と書けるようになるとうれしいなあ。
- 933 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 12:30:06 ]
- listのほうは難しい気がするがmapのほうは現行の構文とかさならないからできそうな気がするんだけどね
とおもったけどキーがIntegerとかでintわたしてオートボクシングとかされると配列とみわけがつかんか
- 934 名前:デフォルトの名無しさん [2006/09/02(土) 13:41:26 ]
- >>926-927
大丈夫か?MSや.Netマンセーなのか? 例えば、そんなのオレは面倒とかを除けば、 やってる事は同じなんだけど、そういうの気がつかないのかな。 プロパティとかインデグザとか。 delegate, eventはいいね。なんともMSらしい。
- 935 名前:デフォルトの名無しさん [2006/09/02(土) 13:45:56 ]
- コンパイラをいじれば、
いつでもできるんじゃないの。 ただ実質同じことだし、 そういう要求をかなえてまで、 面倒くさいぞー系の蛆が溢れると、 Javaの品質が下がるからまだ今もやらないってこと。
- 936 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 17:43:09 ]
- >>926
Genericsは、「あんなものイラネ」と言われたことないよ。
- 937 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 17:46:46 ]
- >>936
Genericsイラネ
- 938 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 17:50:21 ]
- >>937
C厨
- 939 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 17:58:10 ]
- >>933
なんでlistだと難しいのかくわしく。
- 940 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 17:58:15 ]
- JavaもtoStringは演算子オーバーロードできるしな
例えばインタフェースベースの演算子オーバーロードなら interface Calculateableみたいなのを用意して Numberと同じメソッド定義しておけば、目的を見失うことも無いだろう。
- 941 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 18:04:28 ]
- >>939
配列と区別がつかないからだろ
- 942 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 18:33:17 ]
- 個人的には言語仕様の拡張はしなくてもいいから
VMの性能とデスクトップ周りの強化をしてほしいな・・・
- 943 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 18:36:08 ]
- >>942
それは着々と進んでるだろ。
- 944 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 20:03:27 ]
- >>941
区別はつくよ。むしろなんで区別がつかないと思うのか聞きたいところだ
- 945 名前:デフォルトの名無しさん [2006/09/02(土) 20:26:27 ]
- 128bit Java
- 946 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 20:45:46 ]
- >>926
おまえは何も解ってない。 ストラウストラップが警告した事項を
- 947 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 20:45:57 ]
- >>944
もちろんコード全体を見りゃ区別はつくさ objs[i]と書いてあるときにobjsは配列かListか すぐには判断できない場面があるわけだ 両者が共通の性質やAPIを持つなら区別できなくても問題ないけどな 実際には配列は固定長だし、APIもlengthでサイズを知るなど異なるわけ 配列を廃止するならともかく両立させるのは混乱の元
- 948 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 20:47:03 ]
- >>926-927は同一人物による書き込みだよな
- 949 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 20:48:17 ]
- >>932
[]は単項演算子みたいなもんだからいいんだよ +や-となると2項演算子なので 演算子の優先順位を意識するのが大変になるんだよ。 それに他人が作った奴の演算子が混ざったらどうなると 思ってるのか。
- 950 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 20:49:15 ]
- >>932
> MapやListで list.get(0) や map.get("key”) が list[0] や map["key"] と書けるようになるとうれしいなあ。 その程度のことのためだけにそんな演算子を付加するのか。 C#のget/setと変わらないくだらん機能だな
- 951 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 20:52:14 ]
- >>940のやり方なら間違った演算子定義は出来ないからいい。
問題があるとすれば右辺値の一番左の値がプリミティブじゃなかったときくらい。
- 952 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 21:28:30 ]
- >>942
俺的には、Java3Dの強化をなんとかして欲しいな。
- 953 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 21:29:01 ]
- >>947に激しく同意できる。
C++の二の舞になったら終わりだ
- 954 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 21:30:17 ]
- 統合アーカイバプロジェクト並みの圧縮ファイル対応とか
デスクトップ周りでやらなきゃいけないことは、まだまだ沢山あると思う デスクトップ周り専門のApacheみたいなグループが登場しないと無理だが
- 955 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 21:33:18 ]
- BigDecimalで演算子を使えるようにしてくれって要望は、
BigDecimalクラスをラッパークラスとするプリミティブなbigdecimal型を 用意するっていうC#のdecimal型でどうにかするって手もあるが、 あれは、128bits限定だからな。 BigDecimalのコンストラクタにMathContext.DECIMAL128を設定した 精度しか得られないしな。
- 956 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 21:34:11 ]
- >>954
圧縮ファイルで一体何をしたいんだ? つか、Jakarta Commonsにそれっぽいのないか? もしくはSourceForgeにありそうだが
- 957 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 21:39:17 ]
- 何がしたいって聞くようなことか?
- 958 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 21:41:01 ]
- Commons Compressだったかがβすら出ずに存在したような気がする
- 959 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 22:24:20 ]
- >C#のget/setと変わらないくだらん機能だな
Java7の拡張の候補にプロパティが入っているのだけどな。
- 960 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 00:04:24 ]
- 入ってたとしても、C#と全く同じってことはなかろうと予測
- 961 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 00:27:08 ]
- >>959それどこの記事でわかるの?
- 962 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 00:32:42 ]
- >>959がデマだったりすることはよくある。
あの文体は、いつものJavaスレを荒らしてるドトネト厨だから。 3年も4年も前からJavaスレや死滅スレで大暴れしてる変態。
- 963 名前:デフォルトの名無しさん [2006/09/03(日) 00:35:56 ]
- やっぱりドトネト棒ってハズレだったんだね。
コーヒーの方が大人だね。
- 964 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 00:42:45 ]
- >>961-963
まずこのスレを「プロパティ」で検索してみたらどうなんだ?
- 965 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 00:45:38 ]
- ttp://journal.mycom.co.jp/articles/2006/05/18/javaone3/
にしっかりと「プロパティのサポート」が発表されたと書いてあるんだが。。。 プロパティサポートといっても、それがget/set生成みたいなもの なのか、式言語みたいに「obj.property」というようにアクセスできる ようにする、という意味なのか、groovyの「@Property」みたいに @Property size とか宣言できるようにするのか、といった具体的な話はまったくない わけだけど。
- 966 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 00:48:13 ]
- >>962
>>963 こういうやつらっていつになったらJavaの世界から消えてくれるんだろ
- 967 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 01:05:16 ]
- >>963
ドトネト棒って語呂と名前がウケルw
- 968 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 01:08:17 ]
- >>965
その、アノテーションっぽい気がした。 @Propertyならいいねえ。 get/setはねえちょっと。 getter.setterに相当するメソッドに @Propertyアノテーションをつけるのが妥当って感じだね。
- 969 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 03:11:05 ]
- >>967それも棒の先には「おまえらは、ハズレ」って書いてあるんだろうだしwww
- 970 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 10:27:31 ]
- >>946
「ストラウストラップが警告した事項」って具体的に何? >>947 おいおい、Javaは静的な型があるんだから、別にコード全体を見るまでもなく、変数の宣言部分をみれば配列かListかはすぐに判断できるし、別に混乱なんかしないだろ。 この程度で混乱なんかしないでくれよ。 >>949 []は単項演算子じゃなくて、+や-と同じ2項演算子だよ。 それに演算子の動作を自分で定義できることと、演算子の優先順位は関係ないよ。 PythonもRubyも演算子の動作を自分で変えられるけど、優先順位は変えられない。だから別に混乱しない。 >>950 でもELでは[]でアクセスできるようになってるよね。「その程度」のことであれば、 ELでも[]でなくてgetter/setter使えばいいはずだし、もっといえばEL自体必要ない。 Javaユーザは「[]なんてイラネ」といっておきながら、ELの[]は便利とかぬかすから嫌い。
- 971 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 10:39:13 ]
- >>970
言っている事自体はだいたいまともだが > Javaユーザは「[]なんてイラネ」といっておきながら、ELの[]は便利とかぬかすから嫌い。 とJavaユーザを一緒くたにして煽るのはやめてくれ。ELの[]が便利と言っている層とJavaには[]は イラネと言っている層がどれくらい重なっているのか調べたわけでもないだろう?
- 972 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 10:43:14 ]
- そもそもJSP上でaddなんてしないんだから[]で何の問題も無いだろ
粘着にレスすんなよ
- 973 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 11:30:35 ]
- >>970
いっとくが、JavaとELとは全く別の言語だ。 Javaユーザが[]はイラネといってるのはJavaの文法にいらねといってるだけで ELの文法に[]がいらねといっとるわけではなかろう。 そんなこともわからないでJavaエンタープライズアーキテクトを侮辱するとは 身の程知らずもいいところだ。
- 974 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 11:50:25 ]
- JavaとELとが別言語なんてのはだれだってわかってる。
だからなんでわざわざELなんて用意されたかを考えろや。 Javaそのままだと書きにくいからELが用意されたんじゃないの。 Javaの書きにくさのひとつとして list.get(1) や map.get("key") があり、 これが list[1] や map["key"] とかけたらいいなといってるだけ。 ほんとうにlist.get(1)やmap.get("key")が書きやすい/読みやすいなら ELでもそれをつかえばいいだけ(ELにはメソッド呼び出しないけど)。 「JavaとELとが別言語」なんて話がずれるだけじゃん。
- 975 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 12:13:34 ]
- >>971
> とJavaユーザを一緒くたにして煽るのはやめてくれ。 一緒くたにしている馬鹿には馬の耳に念仏では?
- 976 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 13:45:49 ]
- pc8.2ch.net/test/read.cgi/tech/1157227790/
次スレ
- 977 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 14:06:08 ]
- >>970
ストラウとラップは演算子のオーバーロードを 誤った使い方をするとろくなことがないぞってことを言ってるんだよ。 誤った使い方をしなければいいといっても 誤った使い方をする奴は腐るほどいるし。 それで複数の会社組織が独自に演算子を定義して デスマって酷いことになるわけだ。
- 978 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 14:07:23 ]
- >>974
じゃあさ、お前にはなんでJakarta Velocityみたいなのが 用意されたのかわかるの? プリプロセッサではなくVelocityが用意された理由を。
- 979 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 15:24:48 ]
- []のオーバーロードは欲しいな。
- 980 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 15:35:42 ]
- ListだったらどうせIterator経由でアクセスしない?
List.getなんて滅多に使わなくないか?
- 981 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 17:07:07 ]
- んだな
- 982 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 17:47:33 ]
- しかもIteratorにはfor(:)の砂糖が既に入ってるしな
- 983 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 19:27:06 ]
- うむ、そうだ
- 984 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 20:02:49 ]
- 次世代は無糖でw
- 985 名前:デフォルトの名無しさん [2006/09/03(日) 20:23:27 ]
- new ArrayList=("あああ","いいい","ううう");
みたいに出来んかな。 public ArrayList(String... varArgs); こんな感じのコンストラクタで。
- 986 名前:デフォルトの名無しさん [2006/09/03(日) 21:05:54 ]
- >>985
それもだけど、 ArrayList#addAll(Collection<? extends E> c);も、 c.toArray();で配列に直してから使ってる。 ArrayList#addAll(E[] c);がないのはもったいない。
- 987 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 21:46:14 ]
- >985
Arrays.asListでいいんでないの?
- 988 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 21:55:40 ]
- あーたしかにコレクションをパっとつくりたいと思ったことはあるな。
とくにテストコードで。 今だと List strList = Arrays.asList( new String[]{"test1", "test2"}); とかやっててくどいとは思う。 一方で、Javaの、文法はシンプルに、機能はクラスライブラリで、という スタンスは嫌いじゃない。文法拡張するときは「そんな砂糖いらね」という 抵抗があったほうがちょうどいいと思うぞ。やたら拡張するよりはね。
- 989 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 23:11:48 ]
- >>987
確かに5.0のArrays.asListは public static <T> List<T> asList(T... a) だからまあ悪くないんだが、返ってくるのが変更不能リストなのがイマイチ 変更可能リストを返すメソッドが欲しいな。コードはこんな感じで public class ListUtil { public static <T> List<T> list(T... a){ List<T> newList = new ArrayList<T>(); for(T t : a) newList.add(t); return newList; } } 使うときはstatic import使えば、 list("A", "B", "C", "D") のようにするだけで変更可能なリストが作れるので便利
- 990 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 23:21:03 ]
- >>985
まるでPerlやPHPまんまだな
- 991 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 23:24:05 ]
- >>989
それもPHPまんまやないか
- 992 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 23:32:02 ]
- >>991
意味不明。PHPで、array(...)などとして配列が作れることを言っているつもり? そんなもん別にPHP(やPerl)独特のものでもなんでも無い。 なんで厨はすぐに自分の知っている(好きな)言語の機能のパクリかのように言いたがるかなあ
- 993 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 00:30:14 ]
- なになに、どっちにしろ型の概念が曖昧な
スクリプト言語に共通する書き方だよな
- 994 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 00:52:40 ]
- >>980
for( : )使うことが多いけど速度の差も結構あるし 何番目かを意識したりループの中で挿入とか削除とかもある for( : ) 使うのが80%くらいかな
- 995 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 01:05:58 ]
- O'Camlなみに型推論しる!
- 996 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 03:09:08 ]
- あのー・・・
- 997 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 07:23:57 ]
- >>989
Arrays.asListってlistの様に振る舞うけど、 結局は配列のままのwrapper返すんじゃないの?
- 998 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 07:32:05 ]
- >>997
確かそう。 これをArrayListに追加するときは、>>986のようにまた配列にもどして使うのでもったいない。
- 999 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 08:09:13 ]
- >>989
new LinkedList(asList(a, b, c, d)) でいいやん。
- 1000 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 08:17:59 ]
- asXxxはビュー(実態は変わらず見方を変えたもの)を返す、ってことだな。
- 1001 名前:1001 [Over 1000 Thread]
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
|

|