1 名前:デフォルトの名無しさん [2007/05/12(土) 08:25:15 ] 前スレ [mustang/Java SE 6] 次世代Javaの動向 4 [dolphin] pc11.2ch.net/test/read.cgi/tech/1163986696/ [mustang] 次世代Javaの動向 3 [dolphin] pc8.2ch.net/test/read.cgi/tech/1157227790/ 次世代Javaの動向 2 pc8.2ch.net/test/read.cgi/tech/1147881822/ 【Java】次世代Java・J2SE1.6の動向【Mustang】 pc8.2ch.net/test/read.cgi/tech/1081698555/
696 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 13:56:40 ] クロージャが、多重継承のようにうまく使えば有用だが弊害もある機能だったらどうするんだ? Javaはハッカー向け言語ではなく一般向け言語なんだし、彼らが誤用しにくい機能であるか検証しなければならない。
697 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 14:24:52 ] どのように有用? 別に一般向けでないが? 自分で使いこなせればよいだけだし? おまえ、キモイ顔しているんだろうな。
698 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 14:27:52 ] >>692 既にあるにはあるだろう。
699 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 14:50:31 ] 根本的には関数型言語のパラダイムを中途半端に取り入れるのが不味いんだろうな。 だれか、両方を統合するようなアイデアを発明してくれればいいんだが。
700 名前:デフォルトの名無しさん [2007/10/14(日) 15:46:57 ] ところで、>>696 は一体全体何を主張したかったのだろうか…謎は深まるばかりだ…
701 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 16:55:18 ] >>699 命令型と関数型で、破壊的代入の在る/無しという根本的な前提が異なっているからなぁ。 この大きく異なる前提を乗り越えて上手く使える機構が欲しいね。
702 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 17:07:59 ] 不変なオブジェクトを渡すか防衛的コピーして渡すか変更不可能なビューを渡すかすればいい話なんじゃないのか Immutableオブジェクトを作るときと同じじゃん
703 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 17:09:24 ] その違いがなくなると、命令型と関数型の垣根がなくなってしまうし、いくら欲しくても乗り越える事はできなだろう。
704 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 18:53:24 ] >>688 int な変数を final int[] みたいに似非参照化して 内部クラスや匿名クラスで使えば結局同じ事になるけど、 記述が容易になると初心者が躓く可能性が高いとかそーゆー話? docs.google.com/View?docid=k73_1ggr36h CICE とかの public int みたいな構文糖の方が良いって話か?
705 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 18:54:47 ] こんなん考えてみた。 public static <R, T, throws E> R log(T t, Class<T> clazz, { T => R throws E } block) throws E { T proxy = Proxy.newProxyInstance(t.getClass().getClassLoader(), new Class[]{ clazz }, new InvocationHandler(Object obj, Method method, Object args)){ StringBuilder sb = new StringBuilder(obj + " : " +method + " : "); for(Object o : args){ sb.append(o).append(" , "); } System.out.println(sb); return method.invoke( obj, args ); } System.out.println("Logging Start : " + t ); R r = block.invoke(proxy); System.out.println("Logging End : " + t ); return r; } で、使い方 log(List logList : list, List.class){ //処理 } これでこのブロックの中でだけ特定の変数のメソッド呼び出しのログが取れるはず ちょっといじれば特定のアノテーションのついているメソッドの呼び出しだけに反応するようにもできると思う
706 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 19:27:18 ] そんなに難しく考えなくともecma-262とかScalaがあるじゃないか。 両立は可能だ。
707 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 19:48:05 ] >>705 return method.invoke( obj, args );じゃなくて return method.invoke( t, args );だわ そういやobjはプロキシインスタンスだった
708 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 19:49:58 ] >>704 void hoge(){ public int total; array.each{int item => total += item;} System.out.println("合計は" + total); } とすると void hoge(){ final int total[] = new int[1]; array.each(new EachRunner(){ public void run(int item){ total[0] += item; } } System.out.println(合計は" + total[0]); } と変換されるという案が出てたはず。
709 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 19:53:00 ] >>708 CICEとBGGAごっちゃになってねーか?
710 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 20:54:04 ] >array.each{int item => total += item;} こういう文は見慣れない奴はインデントに困るだろうな。 array.each{ int item => total += item; }
711 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 21:15:14 ] array.each( {int item => total += item;} ); こういうインデントは?
712 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 21:35:40 ] >>711 みたいに>>710 のインデントを知らん奴がいるから混乱するんだ。
713 名前:デフォルトの名無しさん [2007/10/14(日) 21:50:42 ] >>712 インデントにうるさいおまえと一緒だと疲れる
714 名前:デフォルトの名無しさん [2007/10/14(日) 22:33:45 ] インデントにうるさい言語があったよな。おまえはそれを使ってればいい
715 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 22:53:03 ] ぱいそん
716 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 01:28:48 ] 複人数開発でインデントにうるさいのは当たり前だろ。 コーディング規約なんだから。
717 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 01:54:18 ] インデントなんか IDE が勝手にするだろ。 保存時に規約に沿うように自動フォーマット。 気にすんのはエディタ使ってるおっさんだけだ。
718 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 11:38:51 ] 改行位置は勝手にやってくれなくないか?
719 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 11:50:20 ] 今時のIDEならやってくれなくなくない?
720 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 12:53:26 ] Eclipse使えば自動フォーマットもすごいカスタマイズできるよ。 改行の位置も、(俺はコードの単位を明示的に分けたいから有効にはしないけど) 設定すればできる、と思う。
721 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 16:43:38 ] 既にインデントは「する」ものじゃなくて「される」ものだろ。 人間がやるのは、内容の記述だけで、その整形は完全にIDEまかせ。 でも、eclipseできれいにインデントできないって理由で、仮引数へのアノテーションをためらう本末転倒な俺ガイル
722 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 17:03:49 ] 細かい事気にしすぎ。
723 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 17:35:52 ] >>721 見やすさのためのインデントはそれでいいんだけど、 Pythonのようなインデント自体が括弧の役割をする言語ではまた別の話だよね。
724 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 17:38:12 ] 人の書いたプログラムなど見ないで済むように偉くなれ。
725 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 17:39:06 ] >>723 とは言っても、Pythonでも見やすいインデント、というのはあるわけで。
726 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 18:05:18 ] ト・コ・ロ・デ JDK7 build22 ttp://download.java.net/jdk7/changes/jdk7-b22.html ttp://download.java.net/jdk7/binaries/ SwingWorkerのスレッドプールを使う処理が書き直されたらしい。 シャットダウンフックを使うようになったとかなんとか。
727 名前:デフォルトの名無しさん [2007/10/15(月) 18:40:16 ] Javaは原則フリースタイル系統の言語だし、インデントはどうでもいいと思うが? コーディング規約が別にあるとかいうならそれに従うまでだし。
728 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 20:45:32 ] Cとかに比べれば相当コーディング規約はしっかりしてると思うが
729 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 21:48:21 ] しっかりしているのは認めるが、しかしそれは言語仕様ではない。 インデントも含めて、コーディング規約も次世代に入れて欲しいと願っているのだろうか。
730 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 01:17:12 ] >シャットダウンフックを使うようになったとかなんとか。 使い方によってはwinでコケまくりだな。 昔よくフォーラムで流れたjavawからシャットダウンフックが起動しないってのが復活するんじゃない?
731 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 03:00:16 ] >>729 そこまですると、やり過ぎではなかろうかと思う。 俺はとりあえず括弧とif, for, whileの書式さえ統一されてればいいと考えてる。
732 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 03:16:45 ] まあもういいんじゃないか。そのコーディングとらやの話は。
733 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 10:56:12 ] 20年以上前、ACM SIGPLAN Noticeでも、 インデントの話は禁止になったことがある。
734 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 14:07:05 ] ↓↓↓次世代Javaの動向↓↓↓
735 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 14:11:07 ] 命名規則とインデントはどうやっても宗教戦争になっちゃうからね。
736 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 17:12:35 ] まあもういいんじゃないか。そのコーディング虎屋の話は。
737 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 21:26:53 ] コーディングとらやの羊羹
738 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 21:53:01 ] とらやの話か。
739 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 01:35:40 ] 虎屋の話と聞いて飛んできますた。
740 名前:デフォルトの名無しさん [2007/10/17(水) 01:51:43 ] どうしてこうも人は争いの種を作ってしまうんだろうか
741 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 01:56:03 ] Javaの世界なのにJava以外の前提(CやC++)を持ち出したのが原因。
742 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 01:58:35 ] 人は人、自分は自分。偉い人には分からないのです。
743 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 02:23:48 ] 誰もC/C++の話はしてないが
744 名前:デフォルトの名無しさん [2007/10/17(水) 02:37:55 ] で、次世代はどーくるわけよ?
745 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 05:04:25 ] >>742 偉い人には分かるんじゃないか?ん?
746 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 07:58:18 ] 俺はJavaの標準コーディング規約には満足してるけどな。 C#の、先頭を大文字にする記法や、プライベートフィールドの先頭にアンダーバーを付ける記法に比べれば、 よっぽどスマートだよ。
747 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 08:49:20 ] Rubyを侮辱するのは止めてください。
748 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 11:36:31 ] ワロタ、Rubyのコーディング規約はそうなってるのかw
749 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 12:23:57 ] 規約でなく、言語仕様だね。@で始まるとメンバフィールドになる。
750 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 13:07:54 ] 大文字で始まるとimmutable。> Ruby
751 名前:デフォルトの名無しさん [2007/10/17(水) 15:10:32 ] C#はVCと同じくMSのキモサモサが良く出ている言語だと思う
752 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 16:05:50 ] C#で画面を作るとコントロールを描画している過程が見えるからなぁ
753 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 16:13:23 ] C#出たころからゴテゴテとJavaにいろんな機能がつき始めたよな
754 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 16:16:12 ] 最近のJavaは美しくないというか崩れてきてる感があるな
755 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 16:21:23 ] genericsとannotation(とprintf)くらいで十分だったのにな 静的型言語でgenericsなしとかバカじゃないかと思ってたが今はいらんのつけすぎ
756 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 16:38:36 ] まぁでも早くC#に追いついて欲しいとは思うし難しいところだ
757 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 16:38:40 ] >>754 具体的にどこ? >>755 といっても数年後にはクロージャとかenumとか使うようになるよ。
758 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 17:27:17 ] 今だに使われるFORTRAN77は不滅だよ
759 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 17:32:40 ] >>754 なんとなくだがいいたいことはわかる。初期の頃の簡潔さは失われつつあるからな。 それでも、頻繁にクロージャ用無名クラスを作ってるようなら、クロージャを導入する意味はあると思う。
760 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 19:16:44 ] クロージャは必須だろ。 プロパティは辞めて欲しいが。
761 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 20:38:25 ] プロパティを作ってほしいとも思うが、セッターゲッターと互換性のないプロパティ作られるのも困る
762 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 22:15:11 ] セッターゲッターと互換性あるプロパティって何???
763 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 22:20:36 ] obj.property = value; が obj.setProperty(value); に、 value = obj.property; が value = obj.getProperty(); に、 展開されるような構文糖プロパティの事じゃね?
764 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 22:31:18 ] バージョンアップする限りJavaは肥大し続ける。 Java自体が陳腐化するか、 言語として互換性を捨て新たな言語に生まれかわらないとな。
765 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 22:39:36 ] どれだけ互換性捨てるかにもよるけど、新たな言語に生まれ変わらせるぐらいなら Javaを捨てて、JVM用の新言語を立ち上げた方が既存のプログラムに影響少ないし 過去のしがらみ捨ててドラスティックに変えられるしで、良いと思うがね。
766 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 22:47:09 ] それはまだとっておこう。
767 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 22:49:25 ] 新たな言語になったって、 バージョンアップのたびに肥大化し続けるのは変わらんだろうし、 時間が経つにつれ陳腐化するのは止められないだろうし。
768 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:10:19 ] Javaのクロージャで拘束変数の扱いはどうするつもりだろ? 楽なのは匿名クラスと同じでstatic finalな定数だけにするか、 拘束変数は必ずコピーにする方法なのだけど。
769 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:37:14 ] 草案によって違う。 本命っぽい BGGA だと、 www.javac.info/closures-v05.html の Closure Literals にある > All free lexical bindings (中略) are bound at the time of evaluation of the closure literal > to their meaning in the lexical context in which the closure literal appears. CICEだと、docs.google.com/View?docid=k73_1ggr36h の III. Local Variables From the Enclosing Scope あたり、 FCM だと、docs.google.com/View?docid=ddhp95vd_6hg3qhc B. Common rules and mechanisms にある > Local variables from the enclosing scope may be accessed, both read and write
770 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:51:32 ] BGGA だと、受け取り側が java.lang.RestrictedFunction しかうけとらねーよと明示しておけば、 final がついてない局所変数使ってるクロージャリテラルは変換できなくてコンパイルエラーになる とか、そーゆー制限も考えられてるみたいだけど。
771 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 02:47:35 ] レキシカルクロージャがいいな。 javaはVMも言語もクラスファイル仕様も互換性確保は相当なものだが、ライブラリ詰め込みすぎが悪い。 #rubyは言語界のモルモン教
772 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 03:08:54 ] どの辺りがモルモンしてる?
773 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 11:08:02 ] 製作者がモルモン教徒
774 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 18:24:15 ] というかruby信者がモルモン信者と同じ臭いがする。
775 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 20:37:37 ] Macユーザーで、はてなユーザーで、rubyユーザーでケータイがMEDIA SKINあたりだったら、 もう半径5mには入りたくない感じ。 聞きたくもない長所の押し売りをえんえんと聞かされそう。
776 名前:デフォルトの名無しさん [2007/10/18(木) 20:49:07 ] それ、なんて宗教?
777 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 21:13:55 ] >>775 プログラマーはあんましMAC使わないとおもうんだが。
778 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 21:16:36 ] MacもWindowsも使う。 どれかしか使わないというのが、言語論争と同じく不毛な流れかな? javaもrubyもperlもpythonも適材適所に使えばいいじゃない
779 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 21:45:47 ] >>778 たしかに其れが一番かっこいい。
780 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 21:59:27 ] rubyはperlとpythonのパラダイムに影響受けてるからそっちの分野に食い込んでくるんだよ無理やり。 rubyの影響を受けたGroovyは言語が止まってるから問題ないが。 結局、JRubyとGroovyとJythonはScripting APIに組み込まれるのかね? 要らん気がする・・・。
781 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 23:46:52 ] JavaFXは偉大
782 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 23:47:28 ] なにが?
783 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 00:04:32 ] 手元にあればmac使いたけどな。 だけどwinの方が安いからmac使う機会がないだけ。
784 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 00:13:40 ] 普通にlinux使えよ
785 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 00:16:36 ] linuxは普通なのか?
786 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 00:58:05 ] MacメインでWindowsも使うJava好きのモルモン信者ですが、何か?
787 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 01:23:42 ] >>777 おいおい、Macはちょっとバージョンアップが遅いとは言え、 JREがプレインストールだし、JDKもインストールCDに付いているぞ。 Javaアプリを配布する環境としては優秀なのだ。 まだ、↓だけどな。 $ java -version java version "1.5.0_07" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-164) Java HotSpot(TM) Client VM (build 1.5.0_07-87, mixed mode, sharing)
788 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 01:46:49 ] アホ。釣られんな。
789 名前:デフォルトの名無しさん [2007/10/19(金) 02:05:16 ] >>777 君、アタマ悪イッショ。 オンモ二デテミ。 君ノ馬鹿サガ…
790 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 02:54:19 ] アホ。釣られんな。
791 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 09:53:36 ] モルモンっていうと家畜の内臓がどうしても思い浮かぶ
792 名前:デフォルトの名無しさん [2007/10/19(金) 23:47:33 ] 未だに1.6が出てなかったのか…>Mac
793 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 00:26:03 ] 酷い話でしょ?コミュニティに任せた方がいいような気がするよ。
794 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 00:34:37 ] MacでJavaってそんなに使われてる?
795 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 00:46:49 ] V2Cを動かすのに必須。 これが無くなるとMacを捨てなくては・・・とまでいう重要ソフト。
796 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 01:00:03 ] fx+bbs2chreaderでいいじゃない