We switched from Java to Go and don't regret it

Лонгрід
We switched from Java to Go and don't regret it | Glasskube I always told people memory is cheap, black magic is OK and efficiency doesn't matter, but I was wrong.

Команда розробників поділилася досвідом переходу з Java/Kotlin на Go для своїх проєктів. Основні висновки:

Передумови та причини переходу:

  • Автор 14 років працював з Java, включаючи Spring Boot та корпоративні додатки
  • У 2024 році команда вирішила переписати свій Kubernetes-оператор з Kotlin на Go
  • Згодом почали розробку нової платформи дистрибуції ПЗ (Distr) одразу на Go

Ключові переваги Go порівняно з Java:

  • Надзвичайно швидкий час запуску (мілісекунди замість секунд)
  • Значно менше споживання пам'яті
  • Простіша екосистема з меншими, але добре інтегрованими бібліотеками
  • Менше "магії" в коді, особливо щодо впровадження залежностей
  • Простіший процес релізу та управління залежностями

Виклики при переході:

  • Крива навчання виявилася не такою крутою, як очікувалося
  • IDE підтримка та дебагінг майже на рівні з Java
  • Трасування стеків помилок дещо гірше, ніж у Java

Загальний висновок автора: хоча Java залишається хорошим вибором для певних проєктів, перехід на Go для cloud-native додатків та інструментів Kubernetes виявився правильним рішенням, незважаючи на початкові сумніви.

1