Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
8年物のJavaのシステムをKotlinに変えていく選択に至るまで
Search
Atsushi Takayama
November 05, 2021
Technology
1.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
8年物のJavaのシステムをKotlinに変えていく選択に至るまで
Atsushi Takayama
November 05, 2021
More Decks by Atsushi Takayama
See All by Atsushi Takayama
最高の開発者体験の追求が開発生産性を改善し続ける文化を生み出した話
edvakf
3
2.1k
NeurIPS 2021 論文読み会: How Modular should Neural Module Networks Be for Systematic Generalization?
edvakf
0
240
ピクシブ社内のImageFlux利用事例紹介
edvakf
2
3.2k
学びの文化を育む社内読書会のススメ
edvakf
0
330
フルCDNアーキテクチャでサービス設計した話
edvakf
5
4.2k
Goでバイナリを読む+α
edvakf
1
1k
お前はこれまでに作ったAPIの数を覚えているのか?
edvakf
0
2.8k
「ふつうのRailsアプリケーション」についての考え方
edvakf
2
970
ggplot.galleryというお遊びウェブアプリケーションを作った話
edvakf
0
450
Other Decks in Technology
See All in Technology
仕様駆動開発の、その先へ。決める力と確かめる仕組み
inariku
0
110
Jev の中身は50行で再現できる。でも本物との差はどこにあるのか
hisuzuya
0
120
DevelopersIO2026 -バックアップは“消されないこと”が9割-
yoshida0129
0
430
小規模OSSモデルは サイバーセキュリティ業務に どこまで使えるか
bbrbbq
0
310
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
350
kintoneで在庫管理システムを作るときの要件定義・設計ポイント
kai0707
0
110
国際カードブランドルール変更に伴うクレジットカード決済取引仕様変更について
k1style
0
250
Filter What the LLM Reads: RAG Governance with AgentCore Gateway
yakumo
1
120
ガチで放置できるClaude Code実行環境の作り方.pdf
lamaglama39
5
9.9k
生成AI時代、PMは事業責任者に進化するともっと面白い〜PMだからこそ事業構造を動かせる時代に〜
kakehashi
PRO
1
940
Patterns in AI Driven Software Development
akosma
PRO
0
300
これだけは抑えておきたい!後悔しない re:Invent の過ごし方 / AWS re:Invent 2026 prestudy
kinunori
2
500
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
470
Color Theory Basics | Prateek | Gurzu
gurzu
1
500
Paper Plane (Part 1)
katiecoart
PRO
2
12k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Designing Experiences People Love
moore
143
24k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
70
68k
Code Review Best Practice
trishagee
74
20k
What's in a price? How to price your products and services
michaelherold
247
13k
Mobile First: as difficult as doing things right
swwweet
225
10k
Transcript
8年物のJavaのシステムをKotlinに 変えていく選択に至るまで Server-Side Kotlin Lounge #1 2021.11.04
会社紹介 & 自己紹介 NewsPicksとKotlin 開発者体験とKotlin 会社のメイン開発言語を変えるということ なぜ「NewsPicksは」開発言語を変更するのか これから 01 02
03 04 05 06 2 目次
会社紹介 & 自己紹介 NewsPicksとKotlin 開発者体験とKotlin 会社のメイン開発言語を変えるということ なぜ「NewsPicksは」開発言語を変更するのか これから 01 02
03 04 05 06 3 目次
None
None
None
None
自己紹介 8 高山温 2020年にNewsPicksにCTOとして入社しました。 会社の長期的な競争力に繋がる技術的方針を担当。 「開発者体験」信者。 開発者体験を上げて 開発者がどんどん高速に開発できるようになることが、 どの会社にとっても最重要の注力技術。
Developers Summit 2021
その他の発信
会社紹介 & 自己紹介 NewsPicksとKotlin 開発者体験とKotlin 会社のメイン開発言語を変えるということ 改めて、なぜ「NewsPicksは」開発言語を変更するのか これから 01 02
03 04 05 06 11 目次
現Chief Product Officerの文字(もんじ)が 2017年にサーバーサイドKotlinについて発信
None
NewsPicks アカデミア 検索基盤 課金基盤 JobPicks レコメンド NewsPicks
2021年8月 NewsPicks本体と呼ばれる メインのシステムで Kotlinを使えるように 今後は段階的に移行予定 15
会社紹介 & 自己紹介 NewsPicksとKotlin 開発者体験とKotlin 会社のメイン開発言語を変えるということ 改めて、なぜ「NewsPicksは」開発言語を変更するのか これから 01 02
03 04 05 06 16 目次
開発者体験を後押しする数々の言語機能 17 今更ですが • null安全 • イミュータブル • 高階関数 •
代数的データ型 • Javaとの親和性 • etc.
社内の開発者の声(続き) 18 書きやすい やっぱボイラープレートコードが減る! 入門しやすい (良い意味で)Javaとそんなに変わらない! IntelliJでJavaからKotlinにコピペしたら自動変換される! モダン C#だと遙か昔から当たり前にできてたことがちゃんとできる! (逆にJavaは最新版でもそこまで行ってない)
ぶっちゃけどっちでもいい 書く必要があれば書くし、必要が無ければ書かないし
社内の開発者の声 19 「ぶっちゃけどっちでもいい」 • この意見はすごく重要 • アーリーアダプターの皆さんが思うほど、他の人は気にしてない • しかし、「絶対NG!!」は無かった ◦
Java→(Go, Ruby, PHP, Erlang, Rust, etc.) だとあるはず ◦ Java→Scalaでもウィザード以外はチョットツライ ◦ これも開発者体験
会社紹介 & 自己紹介 NewsPicksとKotlin 開発者体験とKotlin 会社のメイン開発言語を変えるということ 改めて、なぜ「NewsPicksは」開発言語を変更するのか これから 01 02
03 04 05 06 20 目次
開発言語は会社の重要戦略 21 そもそも開発言語を増やすのは高くつく • Googleは数万人規模になるまでメイン開発言語は C++, Java, Python, JavaScript だけ
◦ 最近 Go も追加 • 他のGAFAも似たような状況 多くの会社にとって、開発言語選択は数年に1回あるか無いか • 完全な移行はまず無い。長期間併存する前提 • 社内文化がどうしても分断されがち • 金銭的にも大きな投資 • 間違った選択をしたときの長期的リスクが大きい → ほとんどのケースでは移行なんてしないほうが合理的
会社紹介 & 自己紹介 NewsPicksとKotlin 開発者体験とKotlin 会社のメイン開発言語を変えるということ 改めて、なぜ「NewsPicksは」開発言語を変更するのか これから 01 02
03 04 05 06 22 目次
チームビジョン “個の強みを活かす。 ワクワクしながら 不確実性に飛び込む。 現状維持ではなく、 未来を創るための挑戦をしよう。”
「NewsPicksにとっては」Kotlinは合理的な選択 24 Java→Kotlin がメンバーにとって自然だった • アーリーアダプターにとってはテンションが上がる • 「絶対NG!!」が居ない 4年以上積み上げたボトムアップの実績 •
「非公式」から「公式」になることで、その流れが加速 • トップダウンだけでもボトムアップだけでもうまくいかない みんなで使うツールをみんなで良くして開発者体験を高めていく文化 • プログラミングに強いエンジニアも、UXに強いエンジニアも、テストに強いエンジニアもそ れぞれの得意領域で活躍してほしい 変化のコストとリスクを会社として負う • そのための意思表示としてのチームビジョン • 開発しにくいところは基盤開発のチームが全面協力
会社紹介 & 自己紹介 NewsPicksとKotlin 開発者体験とKotlin 会社のメイン開発言語を変えるということ 改めて、なぜ「NewsPicksは」開発言語を変更するのか これから 01 02
03 04 05 06 25 目次
決断してからが本番 26 レイトマジョリティまで含めた巻き込み • 2週に1回「社内Kotlin知見共有会」 ◦ 初心者歓迎!質問歓迎! • Kotlinで書きにくい処理を書きやすくする優秀なコピペ元を増やす •
社内外への発信 • 現在開催中の Kotlin Premier 2021 の発表もリアルタイムで翻訳💪 やるからには日本一を目指す • 「使ってるだけ」ではなく「日本一使いこなしている」へ ◦ この点でもJavaよりKotlinのほうがチャンスありそう
27 NewsPicksでは Kotlinを日本一使いこなしたい エンジニアを募集中です!!