Java♡HTML5 Night で話してきた

JavaHTML5 Nigtht で「JavaHTML5のこれまで」と「WebSocket概要」について話してきた。

Java & HTML5 History

HTMLのスライドはこちら。

1993年からの20年を振り返ってみた。資料作りながら、感慨深い思いだった。JavaHTML5を合わせてみてみると、なかなか楽しかった。
Javaの歴史については、こんなサイトがあった。英語だけど。HTML5でパララックスなサイト。ソースを覗くとbodyにはdivとimgしかなかったw

Java 5 が2004年で、ジェネリクスや拡張forループが入ったのはもう9年前かと。同年WHATWGが発足している。
2011年には、Java SE7がリリースされ、HTML5がLast Working Draftになった。いろいろ動いた年だった。
Java も HTML も停滞していた時期があったけど、いまはどんどん変わっていくので、これからが楽しみ。

WebSocket on Glassfish

HTMLのスライドはこちら。

Glassfishを使ったWebSocketのサンプルをライブコーディングしてきた。あとはnode.jsでのWebSocketのサンプルも紹介した。

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package websocket.sample;

import javax.websocket.Session;
import javax.websocket.WebSocketEndpoint;
import javax.websocket.WebSocketMessage;

/**
 *
 * @author sada
 */
@WebSocketEndpoint("/echo")
public class NewClass {
    @WebSocketMessage
    public String echo(String message, Session session){
        return session + " "  + message;
    }
}

これはほぼ最小限のサンプルだと思う。受け取った文字列を返すだけのechoサーバ。
Javaでこれだけ短いコードでWebSocketが使えるって、なかなかすごい。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
        <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script>
            $(function(){
                var host = "ws://localhost:8080/WebApplication3/echo";
                var socket = new WebSocket(host);
            
                socket.onmessage = function(message){
                    console.log(message.data);
                }
                $("#sendBtn").on("click",function(){
                    message = $("#message").val()
                    socket.send(message);
                });
            });
        </script> 
    </head>
    <body>
        <h1>Hello World!</h1>
        <input type="text" id="message" />
        <button id="sendBtn">send</button>
    </body>
</html>


細かいことはこっちに書いた。

これまでもTomcatやJettyでWebSocketを仕えたけど、こうやってアノテーションベースで書けるとすごく便利。そもそもこのコードはServletでさえないし。
JavaでWebSocketのクライアントも書けるから、いろいろ活用できるところは多いと思う。なかなか楽しい。

いろいろ

Node.jsの環境構築とサンプルを動かすまで。(Macのみ)


資料は reveal.js を使って作った。PDF出力もできるので、PDFにしたものをSlideShareに上げている。HTMLの資料もあげたいけど、バギー過ぎるのでとりあえず、PDFで。

まとめ

僕が初めてプログラムを書いたのはJavaだった。大学に入ってから、授業で書いた。それから10年以上ずっとJavaを使っていた。仕事だけじゃなく、趣味としてもJavaを書いていた。
Java Hot Topicには何回も参加したし、ここでもJavaのことをいろいろ書いていた。

いまはJavaを書いてないけど、今回の勉強会のために書いてみて、Javaも変わっていってるんだ、ということを感じた。

Javaを使わなくなってから、まさかこんなふうに話をする機会があるとは思わなかった。嬉しかったし、とても光栄なことだった。エンジニアをやっていると、いろいろなところで繋がるな、と。


自分より詳しい人がたくさんいて緊張した。でも懇親会で楽しそうに話してましたねって言われて、それが嬉しかった。話している技術の楽しさが伝わるといいなと思ってやっていたので。