Команда розробників поділилася досвідом переходу з Java/Kotlin на Go для своїх проєктів. Основні висновки:
Передумови та причини переходу:
- Автор 14 років працював з Java, включаючи Spring Boot та корпоративні додатки
- У 2024 році команда вирішила переписати свій Kubernetes-оператор з Kotlin на Go
- Згодом почали розробку нової платформи дистрибуції ПЗ (Distr) одразу на Go
Ключові переваги Go порівняно з Java:
- Надзвичайно швидкий час запуску (мілісекунди замість секунд)
- Значно менше споживання пам'яті
- Простіша екосистема з меншими, але добре інтегрованими бібліотеками
- Менше "магії" в коді, особливо щодо впровадження залежностей
- Простіший процес релізу та управління залежностями
Виклики при переході:
- Крива навчання виявилася не такою крутою, як очікувалося
- IDE підтримка та дебагінг майже на рівні з Java
- Трасування стеків помилок дещо гірше, ніж у Java
Загальний висновок автора: хоча Java залишається хорошим вибором для певних проєктів, перехід на Go для cloud-native додатків та інструментів Kubernetes виявився правильним рішенням, незважаючи на початкові сумніви.