惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
A
About on SuperTechFans
量子位
Engineering at Meta
Engineering at Meta
B
Blog
The Cloudflare Blog
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
Y
Y Combinator Blog
J
Java Code Geeks
D
DataBreaches.Net
aimingoo的专栏
aimingoo的专栏
T
Tailwind CSS Blog
H
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
Stack Overflow Blog
Stack Overflow Blog
C
Check Point Blog
酷 壳 – CoolShell
酷 壳 – CoolShell

Meta Tech Podcast

Meta Tech Podcast: BONUS: Send Us Your Questions About Engineering at Meta Meta Tech Podcast: 87: Everything is Power: Battery Life Engineering for AI Glasses Meta Tech Podcast: 86: A Hard Cell: Engineering Ultra-Narrow Batteries for AI Glasses Meta Tech Podcast: 85: Reel Friends: Building Social Discovery that Scales to Billions Meta Tech Podcast: 84: Trust But Canary: Configuration Safety at Scale Meta Tech Podcast: 83: Patch Me If You Can: AI Codemods for Secure-by-Default Android Apps Meta Tech Podcast: 82: CSS at Scale with StyleX Meta Tech Podcast: 81: From Zero to Polish: Building Meta Ray-Ban Display Meta Tech Podcast: 80: Lowering emissions with the Open Compute Project Meta Tech Podcast: 79: Building Android apps in Meta’s monorepository with Buck2 Meta Tech Podcast: 78: Generating 3D Worlds with AI Meta Tech Podcast: ARCHIVE: What it's like to write code at Meta Meta Tech Podcast: 77: How to build a generic neuromotor interface Meta Tech Podcast: 76: From C to Rust on Mobile Meta Tech Podcast: 75: Open-sourcing Pyrefly - A faster Python type checker written in Rust Meta Tech Podcast: 74: Taking the plunge - The engineering journey of building a Subsea Cable Meta Tech Podcast: 73: Mobile GraphQL at Meta in 2025 Meta Tech Podcast: 72: Multimodal AI for Ray-Ban Meta glasses Meta Tech Podcast: 70: Jetpack Compose at Meta Meta Tech Podcast: 69: To type or not to type — measuring productivity impact with DAT Meta Tech Podcast: 68: How to Build a Mixed Reality Headset Meta Tech Podcast: 67: Measuring Developer Productivity with Diff Authoring Time Meta Tech Podcast: 66: Inside Bento - Serverless Jupyter Notebooks at Meta Meta Tech Podcast: 65: Getting Ready for Post-Quantum Cryptography Meta Tech Podcast: 64: Caddy - Building the next generation of CAD software for Mixed Reality Meta Tech Podcast: 63: The key to a happy Rust/C++ relationship Meta Tech Podcast: 62: Building Threads for Web Meta Tech Podcast: 61: Image Quality Improvements at Scale Meta Tech Podcast: 60: Simplified Executable Deployment with DotSlash Meta Tech Podcast: 59: Meta ❤️ Python 3.12
Meta Tech Podcast: 71: Translating Java to Kotlin at Scale
2025-02-01 · via Meta Tech Podcast

Jan 31, 2025

How do you translate roughly ten million lines of Java code to Kotlin? Clicking in your the IDE gets pretty repetitive after a while and doesn’t work if you have custom APIs and requirements for null safety. Eve and Jocelyn, two software engineers on the Mobile Infra Codebases Team have taken on this challenge and talk host Pascal through the unexpected difficulties when embarking on the journey to (close to) 100% Kotlin in our Android codebase.

Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Instagram (https://instagram.com/metatechpod) and don’t forget to follow our host Pascal (https://mastodon.social/@passy, https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/.

Links

Timestamps

  • Intro 0:06

  • Introduction Eve 1:11

  • Introduction Jocelyn 2:15

  • Team mission 2:44

  • The scale of Meta's codebase 3:40

  • Why is there so much code? 4:34

  • Why migrate to Kotlin? 5:45

  • Isn't Kotlin slow to compile? 7:51

  • Why not use Android Studio's converter? 8:28

  • Nullability differences 10:04

  • Meta Codemod Service 14:50

  • Kotlin codemod stages 17:07

  • Headless J2K 20:14

  • Open-source transformations 23:14

  • Java Nullsafe 24:47

  • Leveraging Linters 26:01

  • Fixing build errors 27:24

  • Unexpected challenges 29:33

  • State of the union 33:44

  • Outro 36:10

  • Outtakes 37:08