Upgrade to Pro — share decks privately, control downloads, hide ads and more …

8年物のJavaのシステムをKotlinに変えていく選択に至るまで

 8年物のJavaのシステムをKotlinに変えていく選択に至るまで

Atsushi Takayama

November 05, 2021
Tweet

More Decks by Atsushi Takayama

Other Decks in Technology

Transcript

  1. 8年物のJavaのシステムをKotlinに
    変えていく選択に至るまで
    Server-Side Kotlin Lounge #1
    2021.11.04

    View full-size slide

  2. 会社紹介 & 自己紹介
    NewsPicksとKotlin
    開発者体験とKotlin
    会社のメイン開発言語を変えるということ
    なぜ「NewsPicksは」開発言語を変更するのか
    これから
    01
    02
    03
    04
    05
    06
    2
    目次

    View full-size slide

  3. 会社紹介 & 自己紹介
    NewsPicksとKotlin
    開発者体験とKotlin
    会社のメイン開発言語を変えるということ
    なぜ「NewsPicksは」開発言語を変更するのか
    これから
    01
    02
    03
    04
    05
    06
    3
    目次

    View full-size slide

  4. 自己紹介
    8
    高山温
    2020年にNewsPicksにCTOとして入社しました。
    会社の長期的な競争力に繋がる技術的方針を担当。
    「開発者体験」信者。
    開発者体験を上げて
    開発者がどんどん高速に開発できるようになることが、
    どの会社にとっても最重要の注力技術。

    View full-size slide

  5. Developers Summit 2021

    View full-size slide

  6. その他の発信

    View full-size slide

  7. 会社紹介 & 自己紹介
    NewsPicksとKotlin
    開発者体験とKotlin
    会社のメイン開発言語を変えるということ
    改めて、なぜ「NewsPicksは」開発言語を変更するのか
    これから
    01
    02
    03
    04
    05
    06
    11
    目次

    View full-size slide

  8. 現Chief Product Officerの文字(もんじ)が
    2017年にサーバーサイドKotlinについて発信

    View full-size slide

  9. NewsPicks
    アカデミア
    検索基盤
    課金基盤
    JobPicks
    レコメンド
    NewsPicks

    View full-size slide

  10. 2021年8月
    NewsPicks本体と呼ばれる
    メインのシステムで
    Kotlinを使えるように
    今後は段階的に移行予定
    15

    View full-size slide

  11. 会社紹介 & 自己紹介
    NewsPicksとKotlin
    開発者体験とKotlin
    会社のメイン開発言語を変えるということ
    改めて、なぜ「NewsPicksは」開発言語を変更するのか
    これから
    01
    02
    03
    04
    05
    06
    16
    目次

    View full-size slide

  12. 開発者体験を後押しする数々の言語機能
    17
    今更ですが
    ● null安全
    ● イミュータブル
    ● 高階関数
    ● 代数的データ型
    ● Javaとの親和性
    ● etc.

    View full-size slide

  13. 社内の開発者の声(続き)
    18
    書きやすい
    やっぱボイラープレートコードが減る!
    入門しやすい
    (良い意味で)Javaとそんなに変わらない!
    IntelliJでJavaからKotlinにコピペしたら自動変換される!
    モダン
    C#だと遙か昔から当たり前にできてたことがちゃんとできる!
    (逆にJavaは最新版でもそこまで行ってない)
    ぶっちゃけどっちでもいい
    書く必要があれば書くし、必要が無ければ書かないし

    View full-size slide

  14. 社内の開発者の声
    19
    「ぶっちゃけどっちでもいい」
    ● この意見はすごく重要
    ● アーリーアダプターの皆さんが思うほど、他の人は気にしてない
    ● しかし、「絶対NG!!」は無かった
    ○ Java→(Go, Ruby, PHP, Erlang, Rust, etc.) だとあるはず
    ○ Java→Scalaでもウィザード以外はチョットツライ
    ○ これも開発者体験

    View full-size slide

  15. 会社紹介 & 自己紹介
    NewsPicksとKotlin
    開発者体験とKotlin
    会社のメイン開発言語を変えるということ
    改めて、なぜ「NewsPicksは」開発言語を変更するのか
    これから
    01
    02
    03
    04
    05
    06
    20
    目次

    View full-size slide

  16. 開発言語は会社の重要戦略
    21
    そもそも開発言語を増やすのは高くつく
    ● Googleは数万人規模になるまでメイン開発言語は C++, Java, Python, JavaScript だけ
    ○ 最近 Go も追加
    ● 他のGAFAも似たような状況
    多くの会社にとって、開発言語選択は数年に1回あるか無いか
    ● 完全な移行はまず無い。長期間併存する前提
    ● 社内文化がどうしても分断されがち
    ● 金銭的にも大きな投資
    ● 間違った選択をしたときの長期的リスクが大きい
    → ほとんどのケースでは移行なんてしないほうが合理的

    View full-size slide

  17. 会社紹介 & 自己紹介
    NewsPicksとKotlin
    開発者体験とKotlin
    会社のメイン開発言語を変えるということ
    改めて、なぜ「NewsPicksは」開発言語を変更するのか
    これから
    01
    02
    03
    04
    05
    06
    22
    目次

    View full-size slide

  18. チームビジョン
    “個の強みを活かす。
    ワクワクしながら
    不確実性に飛び込む。
    現状維持ではなく、
    未来を創るための挑戦をしよう。”

    View full-size slide

  19. 「NewsPicksにとっては」Kotlinは合理的な選択
    24
    Java→Kotlin がメンバーにとって自然だった
    ● アーリーアダプターにとってはテンションが上がる
    ● 「絶対NG!!」が居ない
    4年以上積み上げたボトムアップの実績
    ● 「非公式」から「公式」になることで、その流れが加速
    ● トップダウンだけでもボトムアップだけでもうまくいかない
    みんなで使うツールをみんなで良くして開発者体験を高めていく文化
    ● プログラミングに強いエンジニアも、UXに強いエンジニアも、テストに強いエンジニアもそ
    れぞれの得意領域で活躍してほしい
    変化のコストとリスクを会社として負う
    ● そのための意思表示としてのチームビジョン
    ● 開発しにくいところは基盤開発のチームが全面協力

    View full-size slide

  20. 会社紹介 & 自己紹介
    NewsPicksとKotlin
    開発者体験とKotlin
    会社のメイン開発言語を変えるということ
    改めて、なぜ「NewsPicksは」開発言語を変更するのか
    これから
    01
    02
    03
    04
    05
    06
    25
    目次

    View full-size slide

  21. 決断してからが本番
    26
    レイトマジョリティまで含めた巻き込み
    ● 2週に1回「社内Kotlin知見共有会」
    ○ 初心者歓迎!質問歓迎!
    ● Kotlinで書きにくい処理を書きやすくする優秀なコピペ元を増やす
    ● 社内外への発信
    ● 現在開催中の Kotlin Premier 2021 の発表もリアルタイムで翻訳💪
    やるからには日本一を目指す
    ● 「使ってるだけ」ではなく「日本一使いこなしている」へ
    ○ この点でもJavaよりKotlinのほうがチャンスありそう

    View full-size slide

  22. 27
    NewsPicksでは
    Kotlinを日本一使いこなしたい
    エンジニアを募集中です!!

    View full-size slide