Findy Engineer Lab

エンジニアの"ちょい先"を考えるメディア

Javaは決してレガシーな言語じゃない。今も昔もJavaが世界の目指す方向を教えてくれる

f:id:findy-lab:20210309115141j:plain

世界中で広く使用されるオブジェクト指向プログラミング言語Java。日本におけるこの言語の普及に、とても重要な役割を果たしたのが鈴木雄介さんです。鈴木さんは20年以上前からJavaに触れ、プログラミングだけではなく執筆・講演などの活動も精力的に行ってきました。

また、2007年に設立された日本Javaユーザグループ(Japan Java User Group:JJUG)に当初から在籍し、2012年4月から2019年3月までは会長を、2019年4月からJJUG CCC運営委員長を務めています。

なぜ鈴木さんはJavaに大きな魅力を感じているのでしょうか。そして、さまざまな普及活動を続ける過程で見えてきたものとは。Javaとともに歩んだ20年をふり返っていただきました。

*…取材はリモートにて実施しました。

Javaをテキストエディタで書くのが当たり前だった時代

──鈴木さんはいつごろJavaと出会われたのでしょうか?

最初に触れたのは2000年くらいで、社会人として働き始めてから数年が経ったころでした。業務でECサイトの開発が決まり、プログラミング言語としてJavaを使う方針になりました。当時はLinux上で動くWebサービスを開発するならば、Javaは主流でしたから順当な選択だったと思います。

──2000年ごろにJavaが主流だったのは、どのような要因からですか?

それ以前は、エンタープライズ向けのシステムはサーバがUNIX機やホストコンピューター、クライアントがWindows OSのネイティブアプリケーションが主流でした。

しかし、インターネットが普及して世の中でブラウザを利用したウェブアプリケーションが広まると、企業内システムでも利用されるようになっていきます。そこで一気に普及したのがLinux+Javaという組み合わせでした。

Javaはエンタープライズの用途に耐えうる静的型付言語であり、言語のライセンスも無料。優れたサーブレットコンテナであるApache Tomcatも無料で使えたことが大きく、Linux+Javaという構成のシステムが多くの企業で使われるようになったんです。

私が2000年ごろに初めてJavaのコーディングをした当時は、IDE(Integrated Development Environment:統合開発環境)を使いたければ商用製品を購入するしかなくて。商用製品を用いないならば、ソースコードをテキストエディタで書いて、javacコマンドでコンパイルするのが当たり前の時代でした。

──若い方々にはIDEを使わないJavaコーディングは想像もつかないかもしれません。

Eclipse IDEの登場が2001年で、急速に普及したのは2002年くらいからでした。それ以前は、Javaをテキストエディタで書くのもそんなに珍しくはなかったんですよ。

リモート取材中の鈴木さん

何かの技術を褒めるために、別の技術を貶めてはいけない

──鈴木さんは2000年代前半から、ブログや雑誌の寄稿でJavaの記事を書かれていたそうですね。

記事執筆を始めるきっかけになったのは、2004年に仕事でベトナム出張に行ったことです。当時のベトナムはドイモイ政策*による急激な経済成長をしており、伸び盛りの時期。IT関係の仕事に従事するのがお金持ちになる近道でもあったため、優秀な若手がどんどんエンジニアになっていました。そんな政策の渦中なので人々がみんな元気なんですよね。

*…1986年のベトナム共産党第6回党大会で提起されたスローガンで、主に経済、社会思想面において新方向への転換を目指す政策。

出張先でベトナムのエンジニアと交流して、一緒に働いたり遊んだりするなかで、彼らの熱気に影響を受けたんですよ。すごいエネルギーだなと思いました。日本に戻ってきてから「自分も何か世の中にためにできることはないか」と考えて、情報発信のためにブログを書こうと思ったんです。

前提として、先ほど話題にしたECサイト構築のプロジェクトでは、Apache TomcatやJavaVMの内部的な挙動などを、メーカーやベンダーなどに頼らず自分たちで調査していました。その後も、私は余暇の時間などでOSSのコードを読んで、どんなつくりになっているかをよく調べていたんです。

JavaフレームワークであるStrutsのコードを読んで参考にしながら、より拡張性に優れた自前のフレームワークをつくったりもしましたね。そのためJava関連の知識はかなり豊富になっており、自分の学んできたことをテーマに記事を執筆していました。

そんなある日『JavaWorld*』という雑誌の編集者からメールを頂いたんですよ。「O/Rマッピングが主流になってきていますので、この特徴の紹介やオープンソースソフトウェア(以下、OSS)製品の比較をしたいと考えています。鈴木さんにぜひ記事を書いていただけないでしょうか」という趣旨のものでした。びっくりですよね。しかも20ページも書いてほしいという話でした。

*…2001年12月号から2007年2月号まで、約5年にわたり発刊されたJavaの専門誌。

「いや、私は雑誌に寄稿したことなんてないから、無理ですよ」と返したら「ブログを拝見させて頂いています。文章力があるのはわかっているので大丈夫です」という、よくわからない説得をされました(笑)。さすがに自分ひとりで書くのは不安が大きかったので、知り合いのエンジニアと一緒に書くことにしましたけどね。ありがたいことに、執筆した記事を編集者が褒めてくれて、定期的にさまざまな記事を『JavaWorld』に寄稿させていただくようになりました。

寄稿を続けるうちに、イベントに呼ばれたりして、Javaの開発元であったSun Microsystemsの人にも会うようになります。その際に「今後、大きなイベントが開催されるので、登壇者の公募があるから応募してみたら」と言われました。それが2005年11月に開催されたJavaOne Tokyo 2005というイベントです。そこで知り合い3人と一緒に登壇したのが、初登壇になりました。

──執筆や登壇などの活動を通じて身についた考え方はあるでしょうか?

私の中で印象に残っているのは、2006年に開催されたDeveloper Summit 2006で、初めて単独の登壇者として呼んでいただいたときのことです。登壇では、ある技術と別の技術を比較するような形で、ソフトウェアアーキテクチャについての解説をしました。

登壇前に、あるメディア関係者に私のつくった資料をレビューしてもらったんですよ。すると「この資料はすごく良いけれど、○○○という技術を貶めて書く必要はないんじゃない? 特定の技術は何かの目的を達成するためにつくられるものだから、必ず向き・不向きがある。比較するのは構わないけれど、こっちが良くてこっちがダメだみたいな書き方は良くないよ」と言っていただきました。

私は今でもその方にすごく感謝していますし、現在の仕事にもこの考え方は活きています。すべての技術には生まれた理由がある。ある技術が特定の問題を解決するのに向いていないことを非難すべきではないという考え方が、そのとき身につきました。

ある技術が大好きな人は、すべてをその技術で解決したくなってしまうんですよ。金槌を持つと人間はなんでも釘に見えてきて、解決できないことでもその道具で解決したくなってしまいます。ですが、その技術が向く領域と向かない領域は何なのかを、技術者は冷静に考えなければいけません。

日本Javaユーザグループの停滞と再生を経験して

──鈴木さんは日本Javaユーザグループの創立初期からのメンバーでもあります。どのような経緯でグループは設立に至ったのでしょうか?

時代背景からお話しすると、2005年から2011年くらいまではJavaの停滞期でした。当時、Sun Microsystemsは経営難に陥っており、その影響でJavaの開発もかなり滞っていたんです。

2006年にリリースされたJava SE 6では目立った新機能の追加がありませんでした。さらに、次のJava SE7が登場したのは2011年。Java SE6がリリースされてからJava SE7が出るまで5年もかかっているんです。

こういった事情もあり、日本でもJavaの勢いがだいぶ弱まっていました。このままではいけない。コミュニティをつくってJavaをもう一度日本で盛り上げようと始まったのが日本Javaユーザグループでした。

日本Javaユーザグループ設立記念講演会の様子。撮影は櫻庭祐一さん。

──グループ設立の背景には、Java関係者の熱い思いがあったのですね。

とはいえ、日本Javaユーザグループの活動自体も徐々に停滞期を迎えていきました。頑張って盛り上げようとしていたものの、前述の理由からJavaの進化が止まっていたため、レガシー感が否めなくなっていたんです。世の中のエンジニアたちがJavaに寄せる関心も薄れていました。ユーザーグループのイベントにもあまり人が来ない状態になっていましたね。

──そんな大変な状況のなか、2012年4月から鈴木さんは会長に就任されます。

「鈴木さんが会長になって組織として若返りを行い、もう一度Javaコミュニティを盛り上げ直したら?」というお声をさまざまな人々から頂いたんです。初代会長である丸山不二夫さんは当時すでに還暦を超えられていて、一方の私はその頃30台でした。Javaコミュニティの現状をなんとか変えたいと思っていましたし、いい機会だなと考えて、2012年に私が会長に就任しました。

会長になってからは、イベント運営の方法を抜本的に変えていきました。当時の日本Javaユーザグループは、イベントの直前にバタバタと知り合いに声をかけて、登壇者が集まらなければ開催をスキップするといった牧歌的な運営がなされていたんです。しかし、きちんと毎月開催して、かつ質の高いイベントになるように方針を徹底していきました。

さらに、日本最大のJavaコミュニティイベントであるJJUG CCCは年2回やっていましたが、コンテンツを公募するようにして、コミュニティ内での流行を取り入れるようにしました。正直、大規模イベントを年に2回も実施するのはかなり大変なんですけど(笑)。それでも、コミュニティを盛り上げたい一心で改善を続けていったんです。

コミュニティの幹事メンバーも大幅に変えていきました。私が会長に就任したばかりの頃は、グループの幹事のなかには、活動にあまり積極的に参加されない方も混じっていました。ですが、実績が1年間ない方にはご退任いただき、よりモチベーションや情報感度の高い若手のメンバーを幹事として積極的に起用していったんです。

──大幅な改善を進めたのですね。

「どんな企業をイベントのスポンサーにするか」も変えていきました。かつては、イベントのスポンサーはJavaの関連技術を“売っている企業”が主でした。しかし、そういった企業は基本的に自分たちが販売したい技術の話をしますから、なかなか参加者にとって面白いセッションにはなりません。セールストークを聞きたい人はいないですからね。

そこで、Javaを“使っている企業”をスポンサーにし、所属するエンジニアがJavaを活用してどんなに素晴らしい仕事をしているのかを発信してもらう方針に変えました。エンジニアは、魅力的なエンジニアに惹かれますから。

その結果、イベントの参加者やスポンサーの数も、右肩上がりに増えていきました。もちろんコミュニティの成長には、2010年にOracleによりSun Microsystemsが買収されてから、Javaの改善が円滑に行われるようになったことも影響していると思いますけどね。

鈴木さん作成のJJUG CCC 2016 Spring基調講演資料「JJUG運営の戦略と戦術」より抜粋。

──Javaの停滞期を経験された時代に、他の言語に主軸を移すのではなく、Javaを信じ続けられたのはなぜでしょうか?

確かにJava本体は停滞期だったのですが、Java関連のコミュニティやOSSは進化を続けていたので、不安は全くなかったです。むしろ、この時代は本家の動きが悪かったからこそ、さまざまな方が行動を起こし、Javaに関連する次のスタンダードをつくろうと尽力されていました。

これは読者の方々に伝えたいことなのですが、技術の使い方や特徴といった表面的な情報だけではなく、技術のつくり手やコミュニティの動きを追っておくと、その技術の動向がよくわかります。

──技術の“生態系”を学ばなければいけないのですね。

そうですね。必ずしも、優れた技術が長く使える技術になるわけではありません。特に注意が必要なのは、単一の企業が特定技術のつくり手になっているようなケースです。「○○社がメンテナンスしているから大丈夫だろう」という考え方をしない方がいいですね。

企業がOSSを出すのにはさまざまな理由があります。「広く使ってもらいたいから公開する」という場合もあれば、「社内で保守するのが辛いからOSSにする」「流行に乗り遅れないようにとりあえず出す」「コミュニティの反応を確認したい」という場合も。コミュニティの意思が反映されず、その企業の意思決定によって急にOSSの方向転換が行われたり、更新されずに放置されたりというパターンも多いです。

Javaを学べば世界の技術トレンドがわかる

──エンジニアがJavaを学ぶ意義について教えてください。

Javaの素晴らしさはJVM(Java仮想マシン)の性能の良さやエコシステムの豊かさにあると思います。エコシステムとはJavaを取り巻く環境やコミュニティといった意味で、これまでさまざまな企業や人々がJavaに対して貢献してきました。OSSの世界におけるものごとの考え方やコミュニティ運営における方法論は、Javaが歩んできたカルチャーが色濃く影響していると私は考えています。

現在も、多くの企業や人々がJavaの進化を支えています。たとえば、JDK 15の開発には錚々(そうそう)たる企業が参加しています。エンジニアなら誰しも憧れるような有名企業がJavaのエコシステムに関わっているんです。

<JDK 15の開発に参加している企業> Oracle、Red Hat、SAP、ARM、Tencent、NTT Data、Amazon、IBM、 Intel、Alibaba、Loongson、Huawei、BellSoft、Ampere Computing、 Google、JetBrains、Azul、DataDog、Microsoft、他多数。

日本ではJavaがレガシーというイメージが強いですが、実は世界的に見れば全くレガシーではありません。Javaの進化を見れば、世界のIT企業各社が何を目指しているかがわかります。このエコシステムの素晴らしさを、もっと多くの方々に知っていただけると嬉しいですね。

──Javaという言語の偉大さを感じます。では最後に、鈴木さんがキャリアのなかでJavaと携わった意義について教えてください。

キャリアの大半で得られたこと、特にコミュニティで得られた経験のほとんどはJavaが関係しているので、自分とJavaとは切っても切り離せないですね。現在の私はITアーキテクトとしての仕事が主でコードを日常的に書くということはしませんが、今でもJavaのことを勉強するとITの世界の未来がわかります。

先ほどの話にもあったように世界中のトップエンジニアたちがJavaに携わっているわけですから、Javaのリリースロードマップを見れば世界的なITのトレンドがわかる。こんなにわかりやすいものはないですよね。

取材・執筆:中薗昴