【java】jdk8も出るし、何か作ってみるか【lambda】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
リリース目前!
2デフォルトの名無しさん:2014/03/17(月) 04:37:09.29 ID:JMxqWrlx
建ったか。
3デフォルトの名無しさん:2014/03/17(月) 08:43:08.80 ID:qMMcKosj
robocodeはどうなるんだろう…。
4デフォルトの名無しさん:2014/03/17(月) 14:24:10.58 ID:YHJqMXtq
Javaの書き方が気にくわないから
俺はJavaそんなに好きになれない
5デフォルトの名無しさん:2014/03/17(月) 16:38:34.63 ID:ywio8KhI
いよいよ明日か
6デフォルトの名無しさん:2014/03/17(月) 16:53:42.16 ID:JMxqWrlx
JDK8 RC版でラムダ書くの面白かったよ。
少し前にリフレクションでnew()するオーバーヘッドを消すために
javassistで書き換えてるフレームワークがよくあったけど、
これからはファクトリーメソッドをラムダで書かせるだろうね。
7デフォルトの名無しさん:2014/03/17(月) 17:02:03.36 ID:mUTbUFyO
とりあえず初めの方はバグが多いんだろうな
しかし新機能や改良点には期待してる
8デフォルトの名無しさん:2014/03/17(月) 17:24:38.63 ID:JMxqWrlx
DBUtilっぽいものをちょいと作ってみた(実用性は無理があるけど
http://hoeppe.the-ninja.jp/java_entity_ruler/index.html

// サンプルコード
http://gmdev.xrea.jp/st/up/1018.txt
http://gmdev.xrea.jp/st/up/1017.txt
9デフォルトの名無しさん:2014/03/17(月) 17:44:12.40 ID:JMxqWrlx
JPA, Hibernate, その他もろもろにおいて、Entity Bean class は
トップレベルであることが必須だった。

これはリフレクション.newInstance()における制約があったからで、
これからは1ファイル内に何個も定義できるようになる方向に変化していくはず。
10デフォルトの名無しさん:2014/03/17(月) 19:29:28.32 ID:ciRVQ9zl
日本だとJBoss EAP8が出てから1年後くらいじゃないと業務で使えないな
11デフォルトの名無しさん:2014/03/17(月) 20:35:18.59 ID:JMxqWrlx
>>9についてだが、MVCフレームワークとかも同じだな
Controller(Action)はpublic classである必要があったが〜(以下略
12デフォルトの名無しさん:2014/03/17(月) 20:39:06.74 ID:xMKm5zL3
職場では、つい先月、やっとJDK7を使えるようになったんだが。
13デフォルトの名無しさん:2014/03/17(月) 23:34:38.94 ID:JMxqWrlx
たぶん一番恩恵を受けるのはAndroidのイベントリスナーだと思う
googleのAPI対応も早いだろうし
14デフォルトの名無しさん:2014/03/18(火) 09:16:23.90 ID:cNXBm7Ks
嵐の前の静けさ ←イマココ
嵐の中の静けさ
嵐の後の静けさ
15デフォルトの名無しさん:2014/03/18(火) 18:32:14.29 ID:s3PeK3NF
何時に出るの?
16デフォルトの名無しさん:2014/03/18(火) 19:45:34.17 ID:8JATeyAW
PermGenは名前が変わっただけで直ってないんだろ。java9に期待。
17デフォルトの名無しさん:2014/03/18(火) 20:06:42.89 ID:tRXj2H8I
今でしょ・・・アレ?
18デフォルトの名無しさん:2014/03/18(火) 20:59:24.26 ID:SyPosiOD
wktk
19デフォルトの名無しさん:2014/03/18(火) 21:49:21.41 ID:m0FYIubb
ラムダつくのかー
20デフォルトの名無しさん:2014/03/18(火) 21:52:07.08 ID:khf9ZUrC
ちょうど日付操作したいからJava8を試すかと思ったらまだ来てないとは
Joda-Timeでも試すか
21デフォルトの名無しさん:2014/03/18(火) 22:41:55.89 ID:maR4oJ9k
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
22デフォルトの名無しさん:2014/03/18(火) 23:56:41.57 ID:tRXj2H8I
アイちゃん遅刻だよ
23デフォルトの名無しさん:2014/03/19(水) 05:51:44.36 ID:m51+QobB
>>20
Joda-Timeでなく、敢えてJDK8の日時クラスを使う理由が見いだせない。
設計者の変なこだわりで使いにくくなってると思うんだが。
24デフォルトの名無しさん:2014/03/19(水) 10:20:24.37 ID:Zr8WYTiP
早朝に来てたか…!

[速報]Java 8が正式公開。ラムダ式、新しい日時API、JavaFX8など。NetBeans 8.0も登場
http://www.publickey1.jp/blog/14/java_8apijavafx8netbeans_80.html

Java SE 8、JDK 8が正式リリース
http://www.atmarkit.co.jp/ait/articles/1403/17/news105.html
25デフォルトの名無しさん:2014/03/19(水) 23:18:01.57 ID:TKTiQtiy
気のせいか起動が早くなってない?
電源入れた後の初回起動のイライラ感があんまりない
26デフォルトの名無しさん:2014/03/19(水) 23:22:11.96 ID:pgTJKr0l
ちょぱーり
27デフォルトの名無しさん:2014/03/21(金) 02:44:04.79 ID:RgzJi1bk
JDT/Eclipseの正式対応が5月くらいになるのか
28デフォルトの名無しさん:2014/03/21(金) 03:05:50.90 ID:J9XPjdPv
WinとLinuxは入れ替えても良いけどMacだとめんどくさいお
全部のプラットフォームつかってるからなおさらめんどくさいお
29デフォルトの名無しさん:2014/03/21(金) 09:40:23.55 ID:wYRkXsLz
>>27
4.3.2 JDTのJava8対応は、すでに正式版(GA)。
30デフォルトの名無しさん:2014/03/21(金) 23:33:45.67 ID:pR5rAGyq
>>25
Linux版だけど起動は確かに速くなってるな
31デフォルトの名無しさん:2014/03/22(土) 04:06:59.14 ID:RKvZhqtL
どっかからJava8にしないでくださいってメールがきたぞw
32デフォルトの名無しさん:2014/03/22(土) 07:10:58.70 ID:5gx6vbDt
嬉しくてチンチンたちまくりレイプ事件が多くなるのを心配してるんだよ
33デフォルトの名無しさん:2014/03/22(土) 11:46:18.19 ID:bsv8fewG
すべってますよー
34デフォルトの名無しさん:2014/03/22(土) 12:06:48.36 ID:pO1WrkSi
>>31
例えばこれだね www.gaitame.com/info.html
> 現在、「Java8」では『外貨ネクストネオ』のリッチアプリ版が起動しないこと、Webブラウザ版のチャートが表示されないことを確認しておりますので、アップデートをしないようお願いいたします。
35デフォルトの名無しさん:2014/03/22(土) 12:09:24.76 ID:oreZJNMZ
>>34
今回そんな互換性なくなるような変更点あったっけ?
セキュリティ関連でデフォルトが変わった奴とかのせいか?
36デフォルトの名無しさん:2014/03/30(日) 17:15:39.34 ID:jhRCncdW
JDTがしょっちゅう固まるのだが
37デフォルトの名無しさん:2014/03/30(日) 22:53:50.31 ID:pBWL0FS5
lambda?
オッサンにはぜんぜん理解できん(T_T)
あんなんで書かれた日にゃメンテナンス性が著しく低下しそう
38デフォルトの名無しさん:2014/03/31(月) 21:14:42.92 ID:YRh/37pv
それはさすがに理解してくれよ。
最初は匿名クラスのシンタックスシュガーぐらいのもんだと思ってりゃいいんだよ。

匿名クラス禁止とか言い出すようなら、転職するしかない…
39デフォルトの名無しさん:2014/03/31(月) 21:47:34.56 ID:QzEXOdpw
http://news.mynavi.jp/special/2014/java8/
この辺の例にある、

list.sort(new Comparator<String>(){
@Override
public int compare(String s1, String s2){
return s1.length() - s2.length();
}
});

が、

list.sort((s1, s2) -> s1.length() - s2.length());

こう書けるのはすごく便利そう。というか下の見た後だと上は冗長過ぎ。
複雑なラムダ式はよう判らんが、こういうレベルのはどんどん普及してほしい。
むしろこれすら理解できない老害は氏ね。
40デフォルトの名無しさん:2014/04/01(火) 00:56:28.29 ID:NI6qZZms
Androidとかの対応はどうなるんだろうねぇ
41デフォルトの名無しさん:2014/04/01(火) 18:06:01.00 ID:DnaG0wEC
何か作ってみるかと思ったらインストールできない
調べたらXPはサポート外かよゴミ言語だな
42デフォルトの名無しさん:2014/04/01(火) 18:29:50.90 ID:bN6Ka3eO
逆!
XPがゴミ
43デフォルトの名無しさん:2014/04/01(火) 19:39:57.65 ID:PR3x9no5
XPがゴミだとふざくんなよ


いまだにXPでネットやってる >>41 がゴミ
44デフォルトの名無しさん:2014/04/03(木) 11:22:03.46 ID:ZxAxSvKk
み・・みんな・・ひどい・・・・・
45デフォルトの名無しさん:2014/04/03(木) 12:03:37.80 ID:KbAl46jm
>>44
酷いつーか、来週からどうすんだ?
割とマジで迷惑だろ>>XP残留組
46デフォルトの名無しさん:2014/04/03(木) 20:45:39.26 ID:ISM3Ag2e
えっ・・・Java8はWindows XP で動かんの?
プラットフォームに依存しない、ってのがJavaの最大の"ウリ"ではなかったのか
47デフォルトの名無しさん:2014/04/03(木) 21:02:33.65 ID:KbAl46jm
>>46
終わったプラットフォームとか生まれる前から死んでるプラットフォームでは動かないよ
48デフォルトの名無しさん:2014/04/04(金) 23:30:21.48 ID:6t2n97/t
Write once, run anywhere
49デフォルトの名無しさん:2014/04/05(土) 00:21:43.57 ID:3yuavrKE
データベース関連は難しいな
50デフォルトの名無しさん:2014/04/06(日) 00:57:50.68 ID:IBDsli1X
もう少し違うものを作ってみよう(汗
51デフォルトの名無しさん:2014/04/07(月) 00:26:40.02 ID:5yVEedO3
EclipseはLuna4.4待ちなのかと思ったら
JDT自体はGA来てたのな
52デフォルトの名無しさん:2014/04/09(水) 00:59:51.31 ID:jKnccCoL
使った感じeclipseのjdtアドオンはまだ不安定だよ
53デフォルトの名無しさん:2014/04/09(水) 18:18:00.80 ID:jKnccCoL
サーブレットのライブラリを作ってみる
http://hoeppe.the-ninja.jp/java_markup_ruler/html/tutorial/tutorial1.html
54デフォルトの名無しさん:2014/04/11(金) 14:07:16.84 ID:6rfX8xtJ
55デフォルトの名無しさん:2014/04/11(金) 20:36:22.79 ID:0xnK6ibc
Once write, debug everywhener
56デフォルトの名無しさん:2014/04/12(土) 14:03:01.71 ID:KEuyoGFu
>>37
どこが難しいのかさっぱり。。。
むしろ7より前でコーディングする気が失せた
今の職場は当然のように7だけどね

あとAndroidとかGAE対応はどうなんだろうね
ここあたりすっげー遅いイメージしかないんだが、Google先生
57デフォルトの名無しさん:2014/04/12(土) 23:58:58.17 ID:oJ1LFVkB
Month while, the dog everyone.
58>>53:2014/04/13(日) 01:52:36.69 ID:cpdOQcgc
59>>53:2014/04/14(月) 03:48:52.30 ID:3UflCQPn
60デフォルトの名無しさん:2014/04/14(月) 03:51:49.14 ID:3UflCQPn
HTML idだとまずいことに気づいた
独自属性java:keyにして、出力時には消えるようにしよう
61デフォルトの名無しさん:2014/04/15(火) 01:17:54.07 ID:QjDXpoj9
感想0とはつらいものだ
62デフォルトの名無しさん:2014/04/15(火) 13:56:25.77 ID:3Sv4k8i4
>>61
なんか読めなかった
後でPCで見ておくよ
63デフォルトの名無しさん:2014/04/15(火) 14:20:27.79 ID:QGh49XkA
>>61
感想なんて書かれないのが普通なんだからアクセスログでほくそ笑んでれば良いじゃんよ。
64>>53:2014/04/16(水) 00:28:38.94 ID:F5idbQac
一部修正した。html idで全部やってたことを独自属性java:xxxに変更。
これによってhtmlからjavaのスケルトンソースを生成するツールも作れる
65>>53:2014/04/16(水) 01:08:38.67 ID:F5idbQac
Qiitaで書き散らそうかと覗いてみたけどそういう雰囲気じゃなかった
66デフォルトの名無しさん:2014/04/16(水) 15:47:25.91 ID:ZPDSwdSk
感想:

ラムダ使う必要なくね?
67デフォルトの名無しさん:2014/04/16(水) 18:35:30.68 ID:F5idbQac
サーブレットのdoGET, doPost... に値するところは
メソッドのオーバーライドでも大して変わらんね

少し前のフレームワークではアノテーションでやっていた
httpパラメータからのコンバータやバリデータをラムダでやると効果的かもしれん
wicketのそれが近いと思う
68デフォルトの名無しさん:2014/04/16(水) 18:48:21.55 ID:EhohGL0g
Lambdaでやらせるなら表示の絞り込みとかの方がよくね?(SQLで得た一覧をmemcachedに蓄えたりした奴のフィルターとかソートね)
69デフォルトの名無しさん:2014/04/16(水) 19:58:23.28 ID:F5idbQac
Model側で別の層になるなそれ。

少し前にEntity Rulerという名前で
RDBライブラリ(O/Rマッパー)作ろうとしていたのだが
アイデアがフラフラしたあげくに頓挫しちゃったんだよね
70デフォルトの名無しさん:2014/04/16(水) 20:12:03.87 ID:F5idbQac
>>68
で言われているようなことをする場合、普通はSQL内でやるもんだよね。
whereとかjoin書かないで全部拾ってきて、java側でフィルターすると
ネットワークIOがボトルネックになるからさ。

HSQLかH2に限定すれば、ストアド(具体的にはユーザー定義関数)を
javaで書けるから何でもストアド化するって手もあるんだけど、
(そうするとネットワークIOの問題は解決する)
RDBに関する全般的な知識がないから、おれにはちょっと荷が重い
71デフォルトの名無しさん:2014/04/18(金) 00:52:11.94 ID:qfiz40wI
さて、Webライブラリの話に戻るんだけど、
cakePHPとかだとバリデータがModelの処理とされているように、
web(http/html)と直接関係ないものは全てModelとして扱う。
(コンバータ、バリデータ etc...)

そして本ライブラリはMVCのVとCのみを扱うため、
HTTPクエリ/パラメータからのコンバータなどは作らない。
従ってあとはクッキーとセッションあたりをどうするべきか考えれば
とりあえず完成、version1.0をリリースできるな。
72 忍法帖【Lv=10,xxxPT】(1+0:5) :2014/04/22(火) 00:31:42.80 ID:+hEYAfLs
おいJava8めっちゃ高速になってないか
GCの性能もめっちゃ良くなってるようなきがするんだが
みんなどう?
73デフォルトの名無しさん:2014/04/22(火) 20:25:51.82 ID:LK8qL++Z
みんなまだ様子見くらいしかしてないんじゃないの?
JRE7とJRE8でパフォーマンス計測したなら教えてよ
74デフォルトの名無しさん:2014/04/23(水) 10:28:23.85 ID:IIePiM6b
ベンチの結果が20%向上した
うちの場合
75デフォルトの名無しさん:2014/04/23(水) 10:30:45.74 ID:IIePiM6b
あと、Nashornクソ遅い
巷ではRhinoより速いと言われてるらしいが
76デフォルトの名無しさん:2014/04/23(水) 13:35:11.28 ID:kB34xYG+
>>75
何と比べて遅いん?
77デフォルトの名無しさん:2014/04/23(水) 13:53:28.44 ID:qlKuU/ND
>>76
Rhino-1.7R5

Node.jsのサブセットみたいなものを自作して使用中なんだが
使い方が悪いのかしらんがNashornは超遅い
78デフォルトの名無しさん:2014/04/24(木) 01:25:00.86 ID:uw+Asd59
おとなしくnode.js使えよ
V8パワーを実感できるぞ
79デフォルトの名無しさん:2014/04/24(木) 03:52:08.38 ID:ic8Kyj+r
自作言語をjavascriptに変換して実行とか面白いかもな
javassist使ったほうがいいかもしれんが
80デフォルトの名無しさん:2014/04/25(金) 16:51:13.24 ID:tzejnHu3
>>78
JSだけで完結するならそうなんだけど、
Java資産を流用せにゃあかんという要求がありまして
81デフォルトの名無しさん:2014/04/28(月) 03:07:46.77 ID:4J9xjlOi
ランバダ?
82デフォルトの名無しさん:2014/04/29(火) 00:15:08.02 ID:9kKuqxmA
UncheckedIOException 見て
Javaはそろそろ限界だと感じた
83>>53:2014/05/09(金) 11:50:47.96 ID:SYgUl/A2
ソースのプロトタイプ生成ツールの試作品ができた
具体的には.htmlから.javaを生成するツール

入力(html)

<?xml version="1.0" encoding="UTF-8"?>

<html xmlns:java="http://hoeppe.the-ninja.jp/" java:page="Tutorial4">
<body>
<div>Item List</div>
<div java:canvas="list">

<div java:group="fragment">
<div>Item</div>
<div java:key="index"></div>
<div java:key="name"></div>
</div>
</div>
</body>
</html>
84>>53:2014/05/09(金) 11:51:44.16 ID:SYgUl/A2
出力(java)

package org.ruler.markup.tool.export;

import org.ruler.markup.api.Page;
import org.ruler.markup.api.Canvas;
import org.ruler.markup.api.Group;

@Mount(path="/default.html")
@Source(file="tutorial4.java")
public class tutorial4 extends Page {

@Source
Group fragment = new Group();

@Source
Canvas list = (node) -> {

};

@Override
public void action(Http http) {
http.GET = (event) -> {

event.setCode(Code.OK_200);
event.setType(Type.html);
event.draw(this);
};
};

}
85デフォルトの名無しさん:2014/05/09(金) 13:20:04.59 ID:uFy0rdVu
ラムダ??

BGM聴きたい
86>>53:2014/05/11(日) 17:47:09.64 ID:4QdDd3nu
とりあえずjavadocとjar本体をアップしたぜ
チュートリアルだけ試せます
87>>53:2014/05/11(日) 19:56:13.04 ID:4QdDd3nu
tomcatプラグイン紛らわしいね。使わないほうが良さそう
88デフォルトの名無しさん:2014/05/13(火) 20:45:35.20 ID:0208S0UM
javaさようなら。

見捨てられたXPユーザより。
89デフォルトの名無しさん:2014/05/13(火) 22:05:00.93 ID:M8thHBuI
XPはjava以前だろうにwww
90デフォルトの名無しさん:2014/05/13(火) 23:10:44.12 ID:yjKm7ka1
>>88

はいさようなら シッシッ
91デフォルトの名無しさん:2014/05/14(水) 09:43:53.65 ID:Yp3DnhFD
>>88
頼むからネットに繋ぐのはやめてもらえないか?
92 ◆JuV6RhVrAM3h :2014/05/14(水) 20:38:43.95 ID:9YZWsYJ2
おちんこぴゅっぴゅぴゅ
93>>53:2014/05/16(金) 15:09:03.38 ID:t+BktqNJ
協力者募集中〜
94>>53:2014/05/17(土) 01:56:05.90 ID:C6+8ucAK
わびしい。キータに投稿してみっか
95デフォルトの名無しさん:2014/05/17(土) 01:59:54.60 ID:cEn7MAy/
UIラップだけに切り出した方がいいんじゃないかねぇ
96>>53:2014/05/17(土) 02:59:52.74 ID:C6+8ucAK
それは可能だし、Viewのみにすると規模が縮小して俺も楽なんだけど、
どちらにせよSpringMVCとかJersey、JSF2といった
今主流のControllerと連携はできないんだよね
97デフォルトの名無しさん:2014/05/17(土) 03:51:13.79 ID:cEn7MAy/
Controller周辺は拡張ライブラリで自由に選べるようにして置けば汎用性高いのが出来ると思う
コンテナまで実装は無駄が多すぎる
IDや特殊IDでマッピング出来てピュアなhtmlで作れるのはそれなりに需要高いと思う
98>>53:2014/05/17(土) 13:17:10.19 ID:C6+8ucAK
参照実装つくるならstruts1だろうね
単なるライブラリとして完全に分離された状態で連携できる
(サーブレットAPIのRequestとResponseを直接使えるから)

SpringMVC、Jersey、Playだとフレームワーク毎に対応したもの作るの大変
99>>53:2014/05/17(土) 21:23:21.32 ID:C6+8ucAK
前言撤回w よく調査したら、独自Viewを持つJSF2以外は簡単に連携できそう

とりあえず自作コンテナ or Jersey(EE標準)で利用可能な方向に修正しようと思う
SpringMVCやPlayでもそのまま動かせると思うが、触れないで置く

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.ruler.markup.api.Page;
import org.ruler.markup.api.Source;
import org.ruler.markup.api.Canvas;

@Source(file="/xml/template.xml")
@Path("/hello")
public class HelloWorld extends Page {

@GET
@Produces(MediaType.TEXT_HTML)
public String sayHello(){
String html = super.draw();
return html;
}

@Source
Canvas canvas = (node) -> {
node.setAttr("style", "color:FFFFFF;");
node.addText("Hello World");
};
}
100>>53:2014/05/18(日) 00:29:13.30 ID:LWas9+0T
そのさい、多少APIを変更するのは避けられない

Responseを乗っ取れないようなので
いったん丸ごと一つの文字列にしなければならなくなる
無駄に大きい文字列結合は結構コストになる

それでもDI、コンバータ、バリデータが全部流用できるのが大きいが
101>>53:2014/05/18(日) 17:37:20.86 ID:LWas9+0T
JAX-RS v2.0 を試そうとApache CXFを試したが、hello worldも実行できず断念
Glassfish(Jersey)やJBoss(JBoss Rest Easy)はtomcatで使いたいので断念

JAX-RS v1.1 しか使えないが、jarも少なくてコンパクトなApache Winkで調査中〜
102デフォルトの名無しさん:2014/05/18(日) 19:26:31.34 ID:TTQj//9Y
>>53
よくわかんねーや、仕様を日本語で書いてくれ。
103>>53:2014/05/18(日) 21:25:44.60 ID:LWas9+0T
javadocとかhtml書くのも大変なのよ
javadocは日本語と英語を併記しようとして失敗した
チュートリアルも日本語がおかしいかもしれない

もしくは、もっと全体的な概要のことだろうか?
104デフォルトの名無しさん:2014/05/18(日) 21:29:41.51 ID:N+11ThYv
>>103
そうだよ、ぱっとみてなにやってんの?てなかんじ
105デフォルトの名無しさん:2014/05/18(日) 21:30:57.47 ID:N+11ThYv
それとDOMが遅いのは知ってるよね?
106>>53:2014/05/18(日) 22:53:36.54 ID:LWas9+0T
どれを指していってる?
107>>53:2014/05/18(日) 23:02:35.40 ID:LWas9+0T
その指摘はたぶん半分正しい。

XML(REST, AJAX)だとDOMは遅くない
HTMLだとDOMは遅い。

なぜならHTMLはほとんどが静的なデータの塊であって、
動的でない部分をDOMで保有していると、直列な文字列へと変換する無駄が生じる。

チュートリアル1では、全てをDOMで操作しているので、たしかに処理に無駄がある。
従ってチュートリアル1は最も自由度の高いAPIであるが、HTMLではなくXML(REST, AJAX)向きだ。
108>>53:2014/05/18(日) 23:08:29.27 ID:LWas9+0T
これを踏まえたうえで、チュートリアル02, 03を見てほしい。
Canvasというクラスがでてくる。Canvasに指定されたノードは、動的な領域である。

逆説的に言えば、それ以外の領域は静的であるということ。
実は、内部で静的な領域を最適化している。

Node.classにはjavadocに載っていないが、onReady()というメソッドがあって、
あらかじめ直列化された(変わりに変更不能になった)文字列へと最適化している
109>>53:2014/05/18(日) 23:18:39.38 ID:LWas9+0T
具体的に書くと、Nodeは通常以下のデータを持っている

String タグ
HashMap<String, String> 属性
List<Node> 子ノード

コレを連結して < + タグ + 属性="属性値" + > </ + タグ + >を生成する。
静的な領域として登録されたNodeは、次のように固定される

String 開始タグ <div class="xxx" onclick="xxx">
String 終了タグ </div>
List<Node> 子ノード

従ってDOMは自動的に、最適な形式で最適化されるのだ
110>>53:2014/05/18(日) 23:21:28.16 ID:LWas9+0T
ちなみに、このonReady()というメソッドはサーバー起動時に行われる
初期化の中で実行され、アプリ開発者には触れないようにパッケージアクセスになっている
111>>53:2014/05/18(日) 23:29:41.69 ID:LWas9+0T
そんなわけで、計測していないが、JSPでタグライブラリ使うよりは
むしろ早いんじゃないかと思う。

JSPだとBeanUtilsとかでリフレクション使うが、
こちらはまったくリフレクションと無縁だし。
112>>53:2014/05/19(月) 01:30:36.99 ID:sKL+/ft2
そーいえば、バグを修正してからソースアップしてなかったや
113>>53:2014/05/19(月) 23:11:24.30 ID:sKL+/ft2
質問してた人は分かってくれたのだろーか?
ま、いっかー♪
114デフォルトの名無しさん:2014/05/19(月) 23:14:52.36 ID:tS67yV1L
わかんねーよ、まあいいよ
115>>53:2014/05/20(火) 12:43:37.30 ID:6S2+5F+I
このフレームワークは、JSPを代替するものである。他はあってもオマケなのさ
SpringMVCといったモダンなフレームワークやJSP/Servletをそもそもほとんど知らないと
さすがに厳しいだろうね
116デフォルトの名無しさん:2014/05/20(火) 13:29:36.59 ID:01pyNPJw
.どうでもいいけど^2、大きくでたね、恥ずかしい。
117>>53:2014/05/20(火) 20:12:46.72 ID:6S2+5F+I
どうでもいいなら最初から質問しないこと
そして>>105のような知ったかをかまさないことだな
118デフォルトの名無しさん:2014/05/20(火) 20:41:00.48 ID:PNoH4CCh
119デフォルトの名無しさん:2014/05/21(水) 08:29:43.45 ID:5ztNVRYW
スルースキルなさすぎ
120>>53:2014/05/23(金) 18:50:26.17 ID:a5qO5SrY
2chの調子がおかしい。またscの件だろうか
121デフォルトの名無しさん:2014/05/28(水) 00:33:35.50 ID:9OS265q7
JAX-RS(Jerseyとか)に対応したかったが、
あれJAXB専用だという結論に達した

EE標準で他になんか無かったっけ
122デフォルトの名無しさん:2014/05/30(金) 02:26:09.40 ID:tZAWFEUT
テンプレート指定でpojoぶち込んで変換する程度なのになぜそんな難しい事だと思うんだろう・・・
ちゃんと考えたらオプショナルなライブラリとして切り出せるよ
123デフォルトの名無しさん:2014/05/30(金) 06:22:55.92 ID:6rGA/Qk9
JAX-RSはInputStreamでリクエストを処理できるから何使ったっていいやろ
124デフォルトの名無しさん:2014/05/30(金) 16:50:49.26 ID:qoYBEuMa
いたいんだろう
125>>53:2014/05/31(土) 22:40:21.59 ID:5baBS0eH
@Templateはglassfish独自だったような。
もう一度JAX-RSの勉強してみる。
126>>53:2014/05/31(土) 23:19:28.12 ID:5baBS0eH
できれば、glassfishに依存しない、jbossでも可能な純粋なJAX-RSが望ましい

それでプレーンテキストではなく、xml/htmlやjsonを
次のような形式で返すのはダメだった気がするけど、俺の気のせいか?
まあ試してみるか!

public class POJO {
@GET
@Path("/aaa")
@Produces("text/html") // @Produces("text/plain")
public String hello(){
return "<? XML宣言 ?><html><body>fuck you</body></html>";
}
}
127>>53:2014/05/31(土) 23:24:09.73 ID:5baBS0eH
あと良く見たら、HttpServletResponseのOutputStreamで出力みたいな方法があるね
どうやって使うのか分からないけど、上記の方法(>>126)がダメだったらこっちを調べる
128>>53:2014/05/31(土) 23:55:24.75 ID:5baBS0eH
今やってみたら普通にできた。俺は一体なにを勘違いしてたのだろう・・・。

今後の方針。
>>99の形式のAPIで作りなおす。
Apache Winkライブラリ実装によるJAX-RX1.1環境でテスト。
JBoss(JBoss Rest Easy)・GlassFish(Jersy)・Apache CXFでそのまま動くと思う。
129デフォルトの名無しさん:2014/06/01(日) 20:41:47.80 ID:NBeHYS0k
アホは見得をはるな
130>>53:2014/06/01(日) 23:39:25.02 ID:wxYsWL3a
まあそういうなって。とりあえず動く段階までできたよ

最適化の余地があるのと、ファイルパスのミスなどに対して
親切にエラーメッセージを吐かなかったり、内部実装は雑だが、
とりあえず前回のチュートリアル4(繰り返し出力)までできるようになった
http://hoeppe.the-ninja.jp/java_markup_ruler/html/tutorial/tutorial4.html
131>>53:2014/06/01(日) 23:42:32.85 ID:wxYsWL3a
出力結果とリソースとなるhtmlは>>130のチュートリアルと同一のもので、
今回のバージョンでは次のようなコードになる

package test;

import java.util.HashSet;
import java.util.Set;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/rest")
public class HelloApplication extends Application {


public HelloApplication(){
}

@Override
public Set<Class<?>> getClasses() {

Set<Class<?>> set = new HashSet<Class<?>>();
set.add(HelloWorld.class);
return set;
}

}
132>>53:2014/06/01(日) 23:45:36.71 ID:wxYsWL3a
package test;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.ruler.markup.api.*;

@Source(file="/WEB-INF/html/tutorial4.html")
@Path("/hello")
public class HelloWorld extends Page {
@GET @Produces(MediaType.TEXT_HTML)
public String hello(){
String markup = super.draw();
return markup;
}
@Source
Group fragment = new Group();
@Source
Canvas list = (node) -> {
String[] names = {"A", "B", "C", "D", "E"};
for(int i=0; i<5; i++){
Node copy = new Node(fragment);
copy.in(node);
Node name = copy.key("name");
name.text(names[i]);
Node index = copy.key("index");
index.text("index("+i+")");
}
};
}
133>>53:2014/06/02(月) 00:28:07.03 ID:avVQoG9D
HTMLでドキュメント書くのめんどくさい
今月末にEclipse4.4がリリースされる前には、こっちも仕上げたい
134>>53:2014/06/02(月) 15:17:04.58 ID:avVQoG9D
ホームページに2.0のjar, javadoc、環境設定をアップしたぞ
135デフォルトの名無しさん:2014/06/02(月) 22:31:14.92 ID:oBwkaK0R
何するフレームワークなの?
サイト見てみたけど、そもそもプロジェクトの大目的も書いて無ければ
設計思想も不明。誰に対して何を発信してるのかさっぱりわからん。

伝えるべき思想を失ったプロダクトは、やがて自身が失われていくだけ。
136>>53:2014/06/03(火) 00:41:34.09 ID:W3xt/cSk
だからそういうのをhtmlで用意するのも手間がかかるんだって
見て分かる人は分かるし、分からない人は待つか、何か考えてちょうだい
137デフォルトの名無しさん:2014/06/03(火) 01:14:51.76 ID:M8ABeZfO
>待つか、何か考えて

いや、もうすでにメジャーな解決手段が山ほどあるわけで。
先入観も予備知識もなく、いちJava開発者としてあなたのプロジェクトの
サイトを見た時に、なにがしたいのか、なんのために情報発信しているのかが
さっぱり理解できなかっただけ。
このスレ見たって、だれもダウンロードもしてなけりゃ使ってもいなさそうだし。

個人的な趣味や研究としてやるぶんには全然いいと思うけど、だったら
2chじゃなくてそれこそQiitaなりForkwellなりGitHubあたりで発信したほうがいいと思う。
138>>53:2014/06/03(火) 01:35:20.27 ID:W3xt/cSk
>個人的な趣味や研究としてやるぶんには全然いいと思うけど、
>QiitaなりForkwellなりGitHubあたりで発信したほうがいいと思う。

その辺くわしくないの。ツールの使い方覚えるのも面倒くさいしさ
スレ違いという話だったら、ここ俺が建てたところだし、他に話題もないようだからいいでしょ
139>>53:2014/06/03(火) 01:37:36.98 ID:W3xt/cSk
マ板が、2ch自体もすごく過疎ってるのは分かっている
それでも有用な案を出してくれる人が全くいないわけでもないんだよね
140>>53:2014/06/03(火) 19:48:44.30 ID:W3xt/cSk
>なにがしたいのか?
考えてみたら特にないんだよね。なんとなく作ってきたものを改めて自己定義してみる

自分はもともとwicketの信者で、プレーンなHTMLでデザインするというのが構想の根幹にあったのだけど、
新バージョン(2.0)では、方向性を変えてテンプレートエンジンに収まった感じかな

velocityとかsmartyと競合するわけなんだけど、違いは.vmファイルとか、独自スクリプトがないところ

2.0シリーズはテンプレートエンジンのみで他のフレームワークと組み合わせて使い、
1.0シリーズはオレオレコンテナー付きでたぶんパフォーマンスも少し良い
141>>53:2014/06/04(水) 14:47:53.40 ID:Q5ELIKYC
チュートリアルを足した
あと2つ足したら、ショッピングカートとか
解説本によくあるサンプルアプリを作りたいところだ

他のtodoリストとしては、ver2.1において
wicket:removeやjsp:includeにあたるものがほしいかな
それと、htmlに埋め込む属性がjava:canvas="xxx"のように、
属性の名前空間が"java:"なんだけど、なんとなく"view:"に変えようと思う
142デフォルトの名無しさん:2014/06/07(土) 13:43:51.09 ID:A9n/DlGy
どうせ誰もダウンロードしてないしな
こっそり互換性のない変更しとくか
143デフォルトの名無しさん:2014/06/08(日) 02:34:45.24 ID:XG86MQWF
プレーンなHTMLで書けるテンプレートエンジンは、Thymeleafってのが既にアルヨ
http://www.thymeleaf.org/
144>>53:2014/06/08(日) 08:48:30.26 ID:muM/tUAt
それは全く参考にならない
ホームページのデザインがカッコイイのは認めよう
145デフォルトの名無しさん:2014/06/10(火) 07:59:12.82 ID:ktfRooiL
チュートリアル追加
「02.動的なページ」
146デフォルトの名無しさん:2014/06/10(火) 22:46:27.33 ID:JLLjF1QC
変なのが居着いちゃったな
147>>53:2014/06/12(木) 11:36:50.08 ID:Ti9BpqIm
OGNL系のテンプレートエンジン、テンプレートにスクリプト埋め込むエンジンは根本的に失敗してるんだな
148>>53:2014/06/20(金) 13:51:47.16 ID:jx2J3NNK
最近進める暇が無い。PHPはもう嫌だー
149デフォルトの名無しさん:2014/07/03(木) 22:45:18.73 ID:yCk6IM6o
Javaもc#のマネしてlinq機能採用すればいいのに
λも中途半端で使いづらい
150デフォルトの名無しさん:2014/07/04(金) 15:51:21.82 ID:G5qrkZAQ
xml,json,csvあたりは必要としていないし、RDBには力不足、
KVSではよく分からんけどlinqは汎用ではなく何か専用にならないと使えない
151デフォルトの名無しさん:2014/07/04(金) 16:24:59.01 ID:Qs7fnNPT
>>149
λとかQuery関係はjvmで動くLispのClojureとか使うと楽なんだけどそういうのは無しな方向なんだろうなぁと思うとちょっとかなしい
152デフォルトの名無しさん:2014/07/05(土) 14:24:57.02 ID:+lHURxz4
俺が一番ほしいのは右辺型推論の進化かな

jdk7で次のように書けるようになったけど

ArrayList<String> array = new ArrayList<>();

左辺と同一の型の場合、このくらい略せてもいいよね。

ArrayList<String> array = new();

ラムダができても以前のイベントリスナーみたいなのは今後もあるわけだし、
無名クラスが楽になるんだわ。

Listener listener = new(){
@Override void onA(Event e){}
@Override void onB(Event e){}
};
153デフォルトの名無しさん:2014/07/05(土) 22:56:30.92 ID:CDO6L6dP
符号なしバイト変数さえあれば他はどうでもいい
154デフォルトの名無しさん:2014/07/06(日) 02:46:09.09 ID:dYSoFRpx
とりあえずJigsawの実用化に全力を出せばそれでいい
155デフォルトの名無しさん:2014/07/10(木) 14:30:00.56 ID:GIbup2ZZ
忘れてたけど先月にEclipseの新しいやつでてたね
156デフォルトの名無しさん:2014/07/16(水) 13:40:07.49 ID:espMUnFN
>>155
LunaからJDK8に対応したね
Streamはstream()オブジェクトを作ってからフィルタを通す感じで、最初に
オブジェクトを作る必要がある以外は正直LINQと同じだと思った
ただクエリ形式がなくメソッド形式のみという違いはあるが
ラムダ式で使う事を前提にしてるんだからそれでいいと思うけど

ジェネリック型(総称型)もC#が入れてからJDK5で入れたもんな
157デフォルトの名無しさん:2014/07/16(水) 21:20:06.52 ID:CuJEK7rH
JAVAでオンラインゲーム作れる?ブラウザゲームの
158デフォルトの名無しさん:2014/07/18(金) 07:00:39.21 ID:ebrrZgfr
作れるよ。しかも方法はひとつじゃない〜
159デフォルトの名無しさん:2014/07/18(金) 07:07:01.90 ID:ebrrZgfr
>>155
前のやつでもJDK8プラグインあったけど
何かインテリセンスがちょこちょこバグって初期化させられたり酷かった

コレで安心
160デフォルトの名無しさん:2014/07/19(土) 17:36:20.89 ID:l+e584H0
インテリセンスはMS用語だボケ
161デフォルトの名無しさん:2014/07/19(土) 17:38:57.19 ID:EB3tijtC
>>160
汎用的にはなんて呼ぶの?
Abbrebiation?
162デフォルトの名無しさん:2014/07/19(土) 17:58:29.28 ID:1hzYIwWV
>>161
自動補完でいいんじゃね?
Eclipse的にはコンテンツアシストだけど
163デフォルトの名無しさん:2014/07/19(土) 19:02:08.22 ID:EB3tijtC
>>162
おお、日本語で考えること放棄してた、ありがと
164デフォルトの名無しさん:2014/07/22(火) 02:25:39.78 ID:WNvZZG9N
λ式勉強するのに良い本ある?
検索したらこんなのみつかったけど、どうかな?

Java8ではじめる「ラムダ式」
清水 美樹
http://www.amazon.co.jp/dp/4777518418/

Java 8 Lambdas: Pragmatic Functional Programming
http://www.amazon.co.jp/dp/B00J3B3J3C/
165デフォルトの名無しさん:2014/07/22(火) 04:42:35.99 ID:oJhyWV2m
>>164
プログラムの根本からやるなら「計算論 計算可能性とラムダ計算 」とか「プログラム意味論」とかの方が良いよ。
jdk8のラムダ式を理解したいってだけだと後で困ると思う(jdkが消える未来とか嫌だけど)
166デフォルトの名無しさん:2014/07/22(火) 07:12:52.02 ID:uw3Yx8Ji
C++とかC#にもラムダ式あるけど言語毎に覚えれば済む話じゃん
学者になって言語そのものを開発したいわけでなければね
167デフォルトの名無しさん:2014/07/22(火) 11:45:21.95 ID:iu3Ufd63
構文やらをおぼえるんじゃなくて
機能的な限界と回避方法・設計アプローチを把握することが重要なのは理解出来てるよな
168デフォルトの名無しさん:2014/07/22(火) 21:25:25.74 ID:uw3Yx8Ji
内容のない掛け声だな。アーキテクト様()ですか?
標準APIや大手OSS、GoogleのAndroidフレームワークとかが示す設計に従うだけだろ

アプリケーション層なんて別に昔のやり方でも十分なのよ
169デフォルトの名無しさん:2014/07/23(水) 20:13:35.66 ID:QSNktYB/
その「設計に従う」ってことができない奴が多くてな…
170>>53:2014/08/02(土) 16:18:37.55 ID:jWpcYE6C
結局、ラムダを連発するようなものは何も思いつかなかったぜ
171デフォルトの名無しさん:2014/08/02(土) 19:28:08.08 ID:B8TVS7ae
ラムダ無駄
ラムダ無駄
ラムダ無駄
172デフォルトの名無しさん:2014/08/03(日) 07:42:15.61 ID:VwgAezGJ
λ:波長
ε:エネルギー、微少量
δ:変分
173デフォルトの名無しさん:2014/08/03(日) 08:40:48.79 ID:yEk1GdIN
θ:角度
ω:猫っぱな
174デフォルトの名無しさん:2014/08/07(木) 13:49:26.82 ID:6rKKJZ7q
散々いわれてるかもしれないけど
ラムダ式、マルチスレッドの勉強するときに凄い便利だね
本文にスレッドの内容直接書いてる感じで
うさんくさいprivate class...{public void run()...って長ったらしく書く必要もないし
175デフォルトの名無しさん:2014/08/07(木) 20:00:29.48 ID:AO7k9w1g
(;´Д`)ノθヴイィィィン
176デフォルトの名無しさん:2014/08/16(土) 00:33:31.18 ID:RxOZrK77
この本買ってみた。分かりやすくてなかなかいい。

Java8ではじめる「ラムダ式」
http://www.amazon.co.jp/dp/4777518418/

O'Reillyにもこういう本あるけど翻訳でるのかなあ?
http://shop.oreilly.com/product/0636920030713.do
177デフォルトの名無しさん:2014/08/16(土) 10:41:32.32 ID:uEJao/p1
ラムだって本一冊書くほど難しいことあるか?
178デフォルトの名無しさん:2014/08/16(土) 19:51:46.69 ID:pdj/Wpw5
ない
C#のLINQと大して変わらない
179デフォルトの名無しさん:2014/08/23(土) 02:24:00.98 ID:giz2gH8K
(;´Д`)ノθヴイィィィン
javaもいいけどさ、Groovyどうよ。
ラムダ風も昔からサポートしてるし、
並列処理GParsも備える。

javaコードからの動的スクリプト対応強化されてるし、もっとgroovyユーザー増えてほしいわ。
なんか日本は食いつき悪いよねこの言語。
180デフォルトの名無しさん:2014/08/23(土) 02:41:54.74 ID:3qxK8v5g
厳密さがJavaのいいとこなのに
それ取ったらただの使いにくい言語やん
181デフォルトの名無しさん:2014/08/23(土) 16:42:17.69 ID:67RgqQJA
そうだな
Scalaも完全にオワコン化しているしな
182デフォルトの名無しさん:2014/08/23(土) 19:31:51.75 ID:ypGwZfbR
だってJavaで同じもの書けるんだもん。

「Javaのライブラリを呼び出せます!」っていかにも利点のように言うけど、
Javaを常に意識しながら、GroovyなりScalaの文法で書け、ってことじゃん。

すでにPythonやRubyの文法を知ってる人がJythonやJRuby使うのはわかるけど…。
183デフォルトの名無しさん:2014/08/23(土) 19:56:44.05 ID:NjTFO7Nu
そこに颯爽とclojureが
184デフォルトの名無しさん:2014/09/11(木) 23:02:07.22 ID:3OFSQCDc
つまりJavaにGenericsは不要である

http://pc5.2ch.net/tech/kako/1055/10555/1055519583.html
185デフォルトの名無しさん:2014/11/01(土) 12:47:48.17 ID:xWhOrI96
floatの二次元配列を作ったけど、1次元目は行の管理用で、floatである必要ないんですが、
これってムダですかね?
でもArrayListだと値の再設定とか面倒だし・・・・
186デフォルトの名無しさん:2014/11/02(日) 02:58:33.29 ID:Rnn+BjWS
ここって53のためのスレじゃないの?
187デフォルトの名無しさん:2014/11/10(月) 21:14:43.63 ID:WFh7SgJF
>>185
昔みたいに1バイト減らすのにあれこれする必要もなかろう
どーんといっとけ
188デフォルトの名無しさん:2014/11/16(日) 09:30:37.74 ID:CWn0dPnD
ムダというか作り方が悪い
189デフォルトの名無しさん
mapじゃダメなんだろ