Java – чітко типізована об’єктно-орієнтована мова програмування. Її створили у 1995 році, і з того часу вона зазнала багатьох вдосконалень. Стабільно займає провідні позиції в рейтингах мов програмування і в рейтингах зарплат розробників.

І найголовніше – рейтинг Java не стрибає рік у рік, а залишається стабільно високим. Давайте розбиратися, що забезпечує Java популярність.

1. Кросплатформенність – написаний код транслюється в байт-код, який виконує JVM. Існують реалізації JVM під різні платформи і це означає, що написаний один раз код буде працювати і на Windows, і на Linux, і на macOS, і навіть на різній екзотиці, як-то Arduino, розумному холодильнику, пилососі... Тобто код працюватиме на різних платформах та операційних системах, і при цьому його не потрібно адаптувати під кожну з них.

2. Автоматичне керування пам’яттю – розробнику не потрібно думати про те, в яких адресах оперативної пам’яті зберігаються змінні, вручну забезпечувати їх читання/запис і дбати про цілісність даних. Коли вирішуєш бізнес-завдання замовника, потрібно думати про завдання, а не про те, як і куди записати якісь байти.

3. Швидкість роботи (just-in-time компілятор) – на додаток до статичної компіляції, яка відбувається «заздалегідь», працює динамічна компіляція. Це актуально для серверного коду, який може працювати місяцями і навіть роками. Код, який виконується часто, компілюється різними варіантами, та заміряється його час виконання. Отже, чим довше працює програма, тим швидше вона працює. І це за умови активної роботи сервера. Круто, правда?

4. Зворотна сумісність – код, який написаний на старіших версіях Java, буде працювати і на новіших версіях. Це зручно: після оновлення не потрібно переписувати половину проєкту «заради оновлення» і водночас можна отримати останні патчі безпеки.

5. Об’єктно-орієнтованість – людина мислить об’єктами: стіл, тролейбус, смартфон. Розробнику не потрібно мислити незвичними парадигмами під час роботи, і це захищає наш код від зайвих помилок. Потрібно концентруватися тільки на тих деталях, які важливі у межах завдання. Наприклад, із погляду дизайнера інтер’єру важливим є розмір стола та його положення у просторі. Не важливі дата його виробництва, прізвище працівника, який зробив цей стіл, телефон кур’єра, який його доставляв. Крім цього, у коді дані та методи роботи з ними зберігаються разом.

6. Статична типізація (fail-fast) – перевірка відповідності типів змінних на етапі компіляції. Компіляцію запускають усі розробники, тому помилки компіляції відловлюються майже миттєво. Чим пізнішим буде етап, на якому виявлять помилку, тим дорожчим є її виправлення.

7. Сode as documentation – Java читається як пропозиції англійською мовою. Через це у більшості випадків не потрібно витрачати зусилля на ведення документації, тому що будь-який розробник, подивившись у код, розуміє, що робить цей метод або за яку поведінку відповідає інтерфейс. Крім цього, сильно розвинена практика «правильного» іменування всіх сутностей у коді. Часто за назвою методу зрозуміло, що він робить.

Наприклад, метод getContext() повертає контекст, а поле age відповідає за зберігання віку. У Java довжина назви не впливає на кількість ресурсів системи, потрібних для роботи із сутностями. Цим грішить С – коли розробник приходить на новий проєкт, замість того, щоб розбиратися в логіці коду, він займається його розшифруванням.

8. Безліч open source бібліотек і фреймворків – 99 % завдань, з якими у щоденній практиці стикається розробник, вже хтось колись вирішував. Якщо такі рішення успішні, згодом вони виростають у бібліотеки та навіть фреймворки. Що краще – погуглити 5 хвилин або винаходити свій велосипед на квадратних колесах?

9. Велике ком’юніті – у популярної мови багато розробників, вони в інтернеті ставлять безліч запитань, дають безліч відповідей, пишуть багато коду, стикаються з багатьма проблемами та вирішують їх. І чим більше розробників, тим популярніша мова, і тим швидше вона розвивається. Замкнене коло, однак.

Уже названо багато позитивних «якостей» Java, але хочеться додати ще кілька аспектів:

  • JVM (Java Virtual Machine) сама керує пам’яттю процесу: завдяки цьому вона безпечна і є мовою #1 для фінансових інструментів.

  • На Java дуже зручно писати back-end сервера (серверну логіку).

  • Донедавна Java була основною мовою для програм на Android.

    Зараз замість неї Kotlin, яка є JVM мовою, і від Java відрізняється наявністю пари фіч і «синтаксичним цукром». Перейти з Java на Kotlin і навпаки займе кілька днів. А з огляду на те, що цикл оновлення Java зараз становить півроку, не виключено, що в наступному релізі в ній буде все хайпове, заради чого писалась Kotlin.

  • Багато відомих компаній використовують Java: Google, Facebook, Twitter, Amazon, LinkedIn, eBay, JavaRush і багато-багато інших.