たのしく生きたい

読んだ本のこととか、考えたこととか。

JJUG CCC 2017 Fall に参加した #jjug_ccc

はじめに

日本Javaユーザーグループ(JJUG)のイベントJJUG CCC 2017 Fallに参加してきた。

こういった技術系のイベントに参加するのは初めてだったので、勝手がわからないところもありましたが、勉強になることも多くとても楽しかったです。

せっかくなので学んだことなどをメモしておきます。

参加したセッション

Backlog: JavaからScalaへの移行の歩み

Backlogは仕事で使ったことのあるサービスなので身近であるということと、JavaからScalaへの移行というテーマが気になり参加しました。

Scalaは触ったことはありませんが少し気になっていて、Javaと比べてどうなのかということが聞きたかったですが、あまりそういう話はありませんでした。

最終的に生成されるDOMをJava版とScala版とで同じにするという基本方針で移行を進めており、レンダリングされる結果を同じにすることでJavaScriptのコードを変更しなくて良いようにしているという話があり、大変興味深かったです。

また、あくまでメンテナンス性の向上を目的とした移行であり性能面には重きを置いていないと発表されていましたが、実行されなくなったコードなど無駄な部分をなくすことで結果的に性能面も改善されているかもしれないという話もあり、メンテナンス性と性能面(ユーザー体験など)は両立するものなんだなと思いました。

10年前のレガシーシステムをサーバーサイドKotlinでフルリニューアルしている話

speakerdeck.com

サーバサイドKotlinに興味があったので参加しました。

自分は普段Javaを書いていますが、やはりJavaの書き方は冗長だと思いますし、意図せずぬるぽとか起きてしまうのも避けたいという思いが高まりつつあります。

セッションでは、いかにして社内で経営会議を通したかという話が述べられており、実践的で印象に残っています。

案を複数出した上で各案の効果を数値化して比較検討することで説得したそうで、技術の話だけでなく組織的な話も聞けて大変良かったです。

また、RubyエンジニアからするとKotlinはとっつきやすいようで、学習コストはあまりかからなかったという話が興味深かったです(むしろSpring bootの方が学習コストがかかったとのこと。)

JJUG初心者のためのJava/JJUG講座

www.slideshare.net

JJUG会長さんによる、JJUG初参加の人に向けたランチセッション。ぴったり対象者だったので参加しました。

日本に限らずJava周りのコミュニティの歴史とかを聞けて、大変面白かったです。

最近リーナス・トーバルスの本を読んだりしていたので、オープンソースとライセンス使用の話とかもとても興味深く聞けました。

それがぼくには楽しかったから 全世界を巻き込んだリナックス革命の真実 (小プロ・ブックス)

それがぼくには楽しかったから 全世界を巻き込んだリナックス革命の真実 (小プロ・ブックス)

リナックスの革命 ― ハッカー倫理とネット社会の精神

リナックスの革命 ― ハッカー倫理とネット社会の精神

サーバサイドKotlin

www.slideshare.net

こちらもサーバサイドKotlinの話。

JVM自体は悪くないがJavaには不満があるという思いからKotlinを選択しており、Javaの代替言語としてAltJavaではなくBetter Javaという言い方をされていたのが印象的でした。

Kotlinはサーバサイドでも問題なく使えるとのことで、サーバサイドKotlin良いなあ……という気持ちが強くなりました。

Spring Security にできること・できないこと

qiita.com

Spring Security関連のことを調べると本当にこの方のQiiteがよく出てきて、普段の業務でとても助けていただいています。

Spring Securityに限らずWebアプリケーションにおけるセキュリティについては本当に気をつけなきゃな……と思いました。来週から早速業務で見直してみます。

オレオレJVM言語を作ってみる(四則演算するだけだけど)

GitHub - jyukutyo/JVM-Math-Language: JVM Math Language with ANTLR and Graal

JVMの勉強になるかと思い参加しましたが、あまりそういう話はありませんでした。

しかし実際に言語を作ってみたという体験を聞くことができたのは大変良かったですし面白かったです。

ANTLRtruffleというライブラリを使い、レキサーやパーサーを実装していく過程が解説されていました。

こういった言語実装の話を聞くと、情報系の勉強をちゃんとやっておきたいなと思わされますね……。

ちなみに裏でやっていた「Javaが「書ける」から「できる」になれる!メモリ節約ノウハウ話」というセッションにも興味はあったんですが、立ち見続出の満席状態だったようなのでやめておきました*1

ついに来たリアルタイムSpark~ビッグデータ処理の新常識・SnappyDataの実力~

ビッグデータ処理で新たに主流となりそうなツールとしてSnappyDataについて解説されていました。

日本ではまだ話題になる前だったみたいで、本当にこれから来る(かもしれない)新しいツールということでした。

正直Sparkもあまりよくわかっていませんが、SnappyDataとはまさしく「Spark Database」と呼べるものであり、Sparkを使ったインメモリDBとしてトランザクション処理とアナリティクス処理を1つのプラットフォームで実現できるようにするツールのようです。

リアルタイム分析とかできそうだし、処理も速そうだしSQLっぽく書けるしでめっちゃ良いじゃん!という感じだったので、詳しく調べたり試しに使ったりしてみたいと思います。

最近のDeep Learning事情とJava

speakerdeck.com

Javaはあまり関係なく、普通にDeep Learningの初歩的な話でした。

Googleが公開しているA Neural Network Playgroundが紹介されていて、これはてきとうにいじってみると面白そうで良いなと思いました。

ニューラルネットワークはこちらのサイトで学ぶと良いとも紹介されていました。

Java DeepLearngin4j ニューラルネットワークの基本|軽Lab

あと、DeepLearning4Jを使うとノリでコードが書けるとおっしゃっており、学習の理論を勉強することと実際にコードを書くことは分けて考えたほうが良いんだろうなという感じました。

おわりに

参加したセッションにもよるのかもしれないのであくまでも自分の印象ですが、全体的にJava言語そのものというよりも、AltJavaだったりSpringなどのフレームワークだったり、ランタイム環境としてのJVM周辺の話が注目されているのかなと感じました。

とはいえ、Java9も来るしJava言語自体もまだまだ盛り上がっていきそうで楽しくなりそうだと思いますし、これを機にJavaについてもっと詳しくなりたいです。

また、技術を学ぶのは単純に楽しいですし、イベントに参加するのはお祭りみたいでわいわいできて良いなと思ったので、今後は積極的にカンファレンスや勉強会などにも参加していきたいと思います*2

その他

セッション資料の一覧などは下記の記事でまとめてくださっているみたいです。

ありがとうございます!

JJUG CCC 2017 Fall ( #jjug_ccc ) - セッション資料の一覧 - 地平線に行く

*1:登壇者さんの所属会社がスポンサーとして参加されており、会場で配布されていたチラシの裏Javaメモリ使用量チートシートが載ってて面白かったです。

*2:「勉強したいなら勉強会に出ずに勉強しろ」という話もありますが……。