昨日開催されたJJUG CCC 2015 Fallですが、makingさん、ソラコムさん、不満買取センターさんのセッションを聴講させていただきましたので、それぞれ簡単に感想を書いておきます。
Reactive Webアプリケーション – そしてSpring 5へ
www.slideshare.net
makingさんによるReactive Streamsの基本からSpring5のReactive Streams対応まで。
このへんはScalaのほうがかなり進んでいるのは事実なのですが、Reactive以前にScalaでFutureやSlickを使ったコードを書いていて、以下のようなことを感じています。
- 非同期処理前提のプログラミングは関数型スタイルのほうが適していると思うのでJavaはあまり向いていないのでは?
- 非同期処理は本質的に複雑さが増すのであらゆるアプリケーションを非同期処理にする必要はないのでは?
後者に関してはプログラミングの難易度だけでなく、スレッドプールの制御など運用面の難しさもあります。
とはいえJDK9にReactive StreamsのAPIが入るということは意味のあることだとは思いますので、今後世の中的にどういう流れになっていくのか注目したいところです。
ソラコムでのJava/AWS活用 – SIM管理やAWS Lambda Javaなど –
www.slideshare.net
ソラコムさんの狙いどころやサービスの内容がわかりやすく説明されていました。途中少しだけナチュラルにAWSのセールスみたいなトークになっていましたねw
提供しているAPIはSpring Bootで開発されているそうです。Swagger(JSONでAPIのインターフェースを定義するとAPIの実行機能付きドキュメントを自動生成してくれるツール)も導入しており、Swagger用のJSON定義の生成にはSpringFoxを使っているそうです。
また、SIM管理のアプリケーションはJavaFXで開発し、AWSのマネージドサービスに直接続するという漢らしいアーキテクチャを採用しているとのこと。JavaSEにはICカードを読み書きするためのAPI(javax.smartcardioパッケージ)があるというのが驚きでした。でもあまりに人気のないAPIだからかEclipseではデフォルトでは認識されないそうですw
クロスプラットフォームなGUIアプリだと今ならElectronかなという気はしますが、こういった業務アプリケーションでは既存のJava資産が使えるというのもJavaを使うメリットですね。
Real World Machine Learning in Java 8 at Fumankaitori.com
www.slideshare.net
不満買取センターのサービスでユーザの投稿内容の優劣を判定してポイントを付与するために機械学習を使っているそうです。
印象に残っているのは、機械学習はアプリケーションを複雑にするので必要ないなら使うべきではない、と仰られていたことです。講演後のQ&Aでディープラーニングは使っていないのか?という質問に対しても同じような趣旨の回答をされていました。
最近はAWSなどでも機械学習用のサービスが提供されておりデータサイエンティストがいないのであればアウトソースしてもよいということも仰られており、研究者というよりも、機械学習はあくまで目的を達成するための手段と捉えて使われている様子でした。
全体的に機械学習が身近に感じられるセッションでしたが、機械学習も適切な用途に適切なアプローチで使うことが大切なのだなということを再認識しました。