Javaにもう一度REPLを~平成生まれのOpenJDKコミッターを刺激するOSS開発の緊張感

平成生まれのOpenJDKコミッター、吉田真也さんにOSSに触れ始めた理由やモチベーションについてインタビューしました。もっと積極的にOSSに関わりたいと考えている方は、吉田さんの考えや言葉が一つの道標になるかもしれません。

Javaにもう一度REPLを~平成生まれのOpenJDKコミッターを刺激するOSS開発の緊張感

Javaのオープンソースの実装であるOpenJDKの開発が始まってから、10年以上の月日がたちました。その間に成長した若いエンジニアは、ひょっとするとJavaがオープンソースで開発されていなかった時代を知らないかもしれません。

オープンソースという文化が身近で当たり前になっている現代のエンジニアは、何を感じ、何を思ってオープンソースにコミットしているのでしょうか。平成生まれのエンジニアである、吉田真也(よしだ・しんや/1shinyafoxさんにインタビューしました。

吉田さんは、学生時代からOpenJDKの超若手コミッターとして活躍し、Java8で追加されたラムダ式(Project Lambda)や、Java9で導入されたREPLツールJShell(Project Kulla)の開発などに参加していました。

もっと積極的にOSSに関わりたいと考えている開発者の方には、吉田さんの考えや言葉が一つの道標になるかもしれません。

手を伸ばせばすぐ身近にあったOSSという存在

──まずはプログラミングをどのように始めたのかを教えてください。

吉田 両親がプログラムを書いていたので、その影響で小学5年生のころから自然とプログラミングしたい思うようになりました。自宅で技術書を読みながら、JavaScriptやVisualBasicなど、すぐ結果が見えるスクリプト系の言語を書いていました。

中学2年生くらいで「別のことがやりたいなー」と、たまたま手に取った一冊がJavaの本でした。パラパラと読んでみると、構文や書き方が個人的にハマる部分がありました。

Javaの構文は大人数で開発することを前提にしてるので、冗長な文が多くてディスられることも多いんですけど(笑)、何が書いてあるのかパッと分かるみたいな部分や、冗長な部分も逆にコードを書いている感じがして、僕はけっこう好きなんですよね。

2

吉田真也さん:1993年生まれの24歳、平成世代エンジニア。高校時代から積極的にOSSに触れ、大学時代は超若手のコミッターとしてOpenJDKプロジェクトに参加。2018年4月からLINEに入社し、エンジニアとしての活躍を期待されている。Hey! Say! JUMPの知念侑李くんを応援している。3bitterfox/4bitter_fox

──吉田さんがオープンソースを初めて意識したのはいつごろでしょうか?

吉田 それこそ高校3年生のころに参加したProject Lambdaで初めて感じました。実装についてオープンに議論できるのは良いですよね。バグがあったら報告して、その修正があがってきて、それをすぐに試せるのは、効率的で面白いと思いました。

──それ以前は、Javaのサードパーティーのライブラリを使うときなどにもOSSを意識していなかったということでしょうか?

吉田 まったく意識してなかったですね。そもそもコードをどこで見られるかも知らなかった。IDEでポチっとやれば見えることはわかってましたけど、ソースコードがネット上で公開されているかどうかなんて気にしていなかったと思います。

──学生時代にOpenJDKに関わることは大きな出来事だと思うのですが、どうやって参加するようになったのでしょうか?

吉田 僕がOpenJDKで大きく関わったプロジェクトは2つあって、Project Lambdaと、Project Kullaです。高校3年生でProject Lambdaに関わりだしたんですけど、当時2011年ごろはJava7の開発から5年たって、正式リリースとなり、Project Lambdaの開発が佳境にさしかかっていたころです。

そのころ僕はJavaもそこそこ書けるようになっていて、Scalaなどの関数型の言語に手を出しはじめてたんですね。ちなみに、大学ではサークルで友人とWebサービスを作ってましたが、そのときはScalaやRubyも書いていました。

それで、Java8にはラムダ式っていう関数型っぽい書き方が追加されることを、Javaエンジニアの櫻庭祐一さん記事で知って、それからOpenJDKのアーリーアクセス版を触るようになりました。

すると意外にも未熟な部分が多くて、新しい機能を試しているとコンパイルが落ちるんです(笑)。「このままじゃつらい!」ということで、Project Lambdaのメーリングリストにバグ報告だったり、「ここがおかしいんじゃないの?」という指摘を送ったりし始めました。

──それから自身でコードを書くようになるには、どれくらい時間がかかったのでしょうか?

吉田 3年ほどたったころだと思います。さすがにいきなりパッチを送ることは厳しいですね(笑)。

──バグ報告するうちに「OpenJDKに関わりたい」という気持ちになったのでしょうか? それとも初めからそういった気持ちを持っていたのでしょうか?

吉田 関わりたいという気持ちは最初からありました。Javaという言語が好きなので、好きなものに関わっていける喜びもあるし、いろいろな人と開発していく経験もなかったので、その楽しみもありました。

あと、高校3年生なので大学受験を控えていたんですけど、受験勉強がしんどくて、憂さ晴らしや気分転換としてやっているところも実はありました(笑)。

Project Lambda:Java8でリリースされたラムダ式を実装したプロジェクト。関数型インターフェースを実装する際に簡略化して記述することができる(吉田さんが2014年の「Java8Launch」で発表した資料「徹底解説!Project Lambdaのすべて リターンズ」より)。

──次のProject Kullaに関わるようになった経緯を教えてください。

吉田 2014年ごろ「Project Kullaが始まります」というアナウンスがありました。面白そうだなと思って、すぐにメールでコンタクトをとりました。すでにProject Lambdaに関わりがあったので、思っていたよりもスムーズに参加ができました。

──Project Kullaでは吉田さんはどのような立ち位置で作業されていたのでしょうか?

吉田 基本的にOpenJDKはOracleの社員の方が開発しています。メインの部分はOracleの方が担当し、僕はコードを書いて、パッチを送るというような感じで参加していました。

Project Kulla:Java9でリリースされたJShellを開発したプロジェクト。JShellはワンラインで即時実行が可能なJavaのREPLツールである(吉田さんがJJUG CCC 2016 Springで発表した資料「Introduction to JShell: the Java REPL Tool」より)。

「Javaがナンバーワンじゃなくなってしまう」という緊張感

5

エンジニアHubに会員登録すると
続きをお読みいただけます(無料)。
登録のメリット
  • すべての過去記事を読める
  • 過去のウェビナー動画を
    視聴できる
  • 企業やエージェントから
    スカウトが届く