Viewing entries in
Java

水島さんを招いてジェネリクス勉強会を開催しました

水島さんを招いてジェネリクス勉強会を開催しました

縁あって@kmizuこと水島宏太さんに社内の技術推進活動の支援をいただいています。
その活動のひとつとして勉強会を開催したのでご紹介します。 コロナ禍の影響でオンライン勉強会です!

水島さんの経験や得意分野を踏まえ、弊社社員からテーマをリクエストさせていただき、アカデミックな話題も混ぜつつ、時にはマニアックな内容も盛り込んでもらっています。

ブログでは紹介できていませんでしたが、昨年より勉強会を開催してきました。

  • ガベージコレクションの基礎と歴史
  • 基礎の学び方
  • コンピュータサイエンスって何だろう?
  • Scala教育悲喜こもごも
  • Javaのジェネリクスを知ろう

この記事では、先週開催された「Javaのジェネリクスを知ろう」の勉強会レポをご紹介します。

Javaのジェネリクスを知ろう

この発表テーマをお願いする時に、実は他にもラムダの話を聞きたいというリクエストがありましたが、ラムダはジェネリクスを理解していることがキーポイントになるため、先にジェネリクスに絞ってお話をしていただくことに。内容はJavaを学び始めた新卒者に役立つような内容でありつつ、ベテラン向けにマニアックな話も入れて欲しいという、やや無茶なお願いをしました。それをうまく落としこんで私たちが聞きたい内容に仕上げてくださいました。ありがとうございます!

発表はJava 1.4までジェネリクスがなかった時代背景から話が始まり、Object型を使うとダウンキャストが必要となり安全性に問題があることをコード例を添えて解説。その後にジェネリクスが導入されるきっかけや歴史に触れて、概要や機能の話をしてくださいました。

発表時間は1時間弱で基本的なところがしっかり押さえられており、初学者でもわかりやすい内容だったと思います。その中でも私が興味深く感じたのは以下の話題でした。

  • 型パラメータの上限境界
  • ワイルドカード

ジェネリクスの機能の一つであるワイルドカードは、リリースされてだいぶ時間が経ってから、安全性の面で問題あることがわかったそうです。OOPSLA2016で公開された Java and scala's type systems are unsound: the existential crisis of null pointers という論文を引用しつつ、自身の考えを述べてくださいました。

危険視すべき問題なのかというと、水島さんの考えではそうではなく、「ワイルドカード単体では発生する問題ではないので、一概にワイルドカードが駄目だという話ではない」ということでした。nullや上限・下限ワイルドカードと組み合わせた時に発生するというもので、nullとワイルドカードという機能の組み合わせによって、安全性上の問題が発生してしまったよと。ユースケースなどの多面性や言語仕様として取り入れられた経緯を追いながら、なぜこの機能は存在しているのか、何がヤバいのかというのがわかって話を聞いていて面白かったです。

コーナーケースなので知らなくても実務では困ることは少ないかもしれないけど、知ったうえでJava APIやフレームワークのコードを読むと、見えてくる世界も違うかもしれませんね。

他のベテラン層の参加者に参加した感想を聞いてみたら「ワイルドカードの元になった理論を発明したのが日本人だって知らなかったし、他の言語でのジェネリクスの話が個人的によかったです。ScalaとKotlinが激似とか、Goでの話など。」と言っていて、新しい発見や新鮮さを楽しめたようです。

2020年にジェネリクスを取り上げていただいたわけですが、時が経ったからわかった事もあり「今だから言える事だけど実はワイルドカードは必要なかったかもね……」というような話ができるのも、今だからできる話題ですね。

たのしかったです。

アットウェア シリコンバレー支店からのお便り その2

アットウェア シリコンバレー支店からのお便り その2

JavaOne 続編

JavaOneの中では様々なプレゼンテーションがある。その中でもエキサイティングな内容だったものを一つご紹介したい。 Groovy、Clojure、Scala、JRubyなど、JavaVM上で動作する言語の頂上対決という場があった。それぞれの言語に対してのコントリビュートしている方が自分たちの言語の素晴らしさを語り尽くすという内容。会場からの支援を得たいがためにかなり際どいやりとりをしていた。終了後、Clojure言語スピーカーとして参加していたPriyatamさんとビールを飲み交わし交流。こういうことができるのもJavaOneならでは。彼はベイエリアでClojureに関するユーザコミュニティを主導し、会社経営もしているようだ。

 

カリフォルニアの休日

3週間も居れば、当然間に休日もあるわけで。 休日を利用し、サンフランシスコより北にあるワイナリーが豊富にある地域に旅行に出かけた。途中に太平洋沿いを進み、綺麗なビーチで休憩。この先にハワイ、日本、アジアがあるのかぁと思いにふける。カリフォルニア州にはワインで有名な地域が数多くあるようだが、我々が訪れたのは、ソノマとナパ。その中でもそこそこ有名なお城の姿のワイナリーに。ワイナリーでは有料でテイスティングでき(中には無料でできるところもある)、販売所なども隣接されており、テイスティングによりお気に入りなワインを探して買うことができる。運転などもあるので全員がテイスティングすることはできないが、ワイナリーの広大なワイン畑を見て心を和ませ、楽しいひと時を過ごすことができた。

ほぼ毎日、支社にて自炊。時々豪華な材料を使ってみたり。写真はカリフォルニアで有名なダンギネスクラブ。

ほぼ毎日、支社にて自炊。時々豪華な材料を使ってみたり。写真はカリフォルニアで有名なダンギネスクラブ。

技術書で有名なO'Reillyの本社。玄関にはブックストアのように本棚に本が並ぶ。

技術書で有名なO'Reillyの本社。玄関にはブックストアのように本棚に本が並ぶ。

 

Typesafe社への訪問

今回のアメリカ滞在の目的の一つとしてIT企業への訪問をしての意見交換などもある。お互いの会社のことをより知ることにより、今後のビジネスチャンスへと繋がることもある。 今回訪問した会社の一つ、Typesafe社をご紹介しよう。Typesafe社はScala、Akka、Playフレームワークなどのコンサルティングやトレーニング、いざという時のサポートをしている企業である。アットウェアでは、主にJava言語を利用してお客様のシステムの開発を主にしているが、Scala言語への関心もあり、今回の訪問を実現した。TypesafeにはScalaだけではなく、AkkaやPlayなどの優れたプロダクトがあり我々も非常に注目を寄せている。今年の9月にはスカラ祭りなども日本で開催されるなど、Typesafeとしても日本市場への進出を模索しているようであった。今後のアクションに期待したい。

10711100_758230234238587_6194566558395937631_n.jpg

その3へ続く

アットウェア シリコンバレー支店からのお便り その1

アットウェア シリコンバレー支店からのお便り その1

アットウェア シリコンバレー支店開設

2014年9月26日から約3週間。横浜みなとみらいに本社を構える株式会社アットウェアは4名のメンバをアメリカ カリフォルニア州シリコンバレーに派遣をした。彼らの任務は、JavaOne&OracleOpenWorld2014およびCouchbaseConnectへの参加、また新規技術や新規企業との協力関係構築に向けて近隣に多数あるIT企業への訪問およびパートナー企業との関係強化だ。

JavaOneや海外カンファレンス、海外 IT企業との関係構築などの取り組みは、今年からではない。アットウェアが設立した当初より、JavaOneを始めとする技術系のカンファレンスのみならずAgileカンファレンスなど、海外の最先端のムーブメントや情報をキャッチする機会として、またその参加者との交流や地域企業への訪問など、今後のビジネスチャンスを作る取り組みも長い間行ってきている。その甲斐もあり、今日のアットウェアの強みの幾つかをその取り組みにより作り出したと言っても過言ではない。

今まで参加した主な海外カンファレンスの一覧(抜粋)

  • Couchbase Connect(San Francisco) 4名
  • JavaOne 2014(San Francisco) 3名
  • Agile 2014(Orlando) 1名
  • Couchbase Conf SanFrancisco(San Francisco) 2013 1名
  • JavaOne 2013(San Francisco) 3名
  • Agile 2013(Nashville) 2名
  • Couchbase Conf SanFrancisco 2012(San Francisco) 2名
  • Apache Conf(Vancouver) 1名
  • Couchbase Conf(Belrin) 1名
  • Couchbase Conf SanFrancisco 2011(San Francisco) 2名
  • JavaOne 2010(San Francisco) 1名
  • Layar Conference(Amsterdam) 2名
  • JavaOne 2009(San Francisco) 1名
  • Agile 2008(Tronto) 1名
  • JavaOne 2007(San Francisco) 1名

その他

今回の滞在は約3週間と比較的長いこともあり、4名でAirbnbサービスを利用してシリコンバレー地区の一軒家を丸ごと借りて暮らすこととした。2ベットルーム+2ソファーベット+1キッチンダイニング+1バストイレ。大人四人が短期間寝泊まりして活動の拠点にするには十分な広さと、モダンな感じのデザインで我々はすぐに気に入った。その家を仮に我々はアットウェア シリコンバレー支店と名付けた。

支店の外観。レッドウッドシティ(パロアルトとサンフランシスコ空港の間ぐらいに位置する閑静な住宅地)この辺りの家は比較的平家が多い。天気が晴れと曇りが50%50%ぐらいの時期。晴れた日はすごく気持ちが良い。電車で30分ぐらいでSFの中心街へいけるところ。

支店の外観。レッドウッドシティ(パロアルトとサンフランシスコ空港の間ぐらいに位置する閑静な住宅地)この辺りの家は比較的平家が多い。天気が晴れと曇りが50%50%ぐらいの時期。晴れた日はすごく気持ちが良い。電車で30分ぐらいでSFの中心街へいけるところ。

時にはスカイプで日本とつなげてミーティング。醤油は現地で調達したものです。

時にはスカイプで日本とつなげてミーティング。醤油は現地で調達したものです。

キッチンの写真。食器やその他の備品も用意されている。お洒落なオーナーでよかった。。

キッチンの写真。食器やその他の備品も用意されている。お洒落なオーナーでよかった。。


Devoxx4Kidsへのボランティア

JavaOne開催の前日。サンフランシスコベイエリア付近の子供たちを150人集め、Devoxx4Kidsという団体が主催するイベントが開かれた。そのイベントは、子供達にプログラミング教育をするのが目的で、JavaやPython、レゴマインドストームなどなど、様々な工夫がされた題材を利用し、子供を飽きさせないようなカリキュラムが組まれていた。自分も横浜にてCODE FOR KIDS YOKOHAMAというコミュニティを主宰していることもあり、今回のJavaOne参加する3名でこのイベントついてのボランティア参加を申し出た。ゆくゆくは、カリキュラムをもち帰って日本でも同じようなことを近い将来行いたい。

参加している子供達はみんな真剣な眼差しで取り組み、数多くの質問を受けて、少ししどろもどろに回答になってしまった部分もあった。が、最終的には、子供の笑顔やカリキュラムを超えてチャレンジしている活発な子供達を見て、自分の子供のころの感じと似てるなとダブらせたりした。

JavaOne2014

今年のJavaOne2014は、どちらかというと昨年のJavaOneの惰性で開催された感じがした。内容的に真新しいという感じが少ない。ただ、昨年のJavaOneで取り上げらたIoTについては着実に活動が広がっていて、MQTTなどEclipseの活動も活発化しており、今後の広がりに期待を持てると感じた。 個人的には、Atlassianの方がAtlassian社の文化について取り上げ、良き文化こそが良き成果に繋がる。という講演をしていたのが印象的だった。内容的にはAgile2014で聞いたSpotifyの内容の方がより細かく、より良く聞こえた部分もあったが、普段から短にあるツールを作っている人たちがどのような気持ちで仕事に取り組み、どのような和を作って会社の文化を形成しているのかというのがわかり、素晴らしかった。

その2に続く!