1. Java — найпопулярніша мова програмування

А ви знали, що Java — одна з найпопулярніших у світі мов програмування?

Згідно з рейтингом TIOBE, мовою програмування Java користуються майже 10% усіх програмістів світу. Також серед лідерів — Python, а також мови С та C++.

Мову Java було створено в середині 90-х років XX століття, і вона дуже швидко набула популярності. Програмісти масово переходили із С++ на Java. І це лише зайвий раз підтверджує, що Java — це крутезна мова програмування.

Так у чому ж її крутість? Які фішки додали в неї автори?

Ви дуже здивуєтесь, якщо порівняєте Java і мову С++: Java дуже схожа на суттєво обрізану С++!

Так, мова Java — це певною мірою урізана С++. І якщо в С++ можна щось зробити двадцятьма способами, то в Java те саме можна зробити лише одним. І в чому ж перевага, запитаєте ви?

Річ у тім, що сучасні програми дуже великі, і часто програмісти до 90 % часу витрачають на те, щоб розібратися в чужому коді. І лише 10 % — на написання нового коду. Отже, дійсно, простота — це перевага.


2. Java-компілятор

До речі, ви ще не раз почуєте, що незаперечна перевага Java над іншими мовами — це багатоплатформність. Що ж воно таке і з чим його їдять? Почнемо здалеку.

Річ у тім, що комп'ютер уміє виконувати лише найпростіші команди.

Для собак є команди «Поруч», «Лапу» та інші. Почувши одну з них, собака робить щось важливе. Для комп'ютера в ролі команд виступають числа: кожна команда закодована певним числом (його ще називають машинним кодом).

Писати програму у вигляді чисел дуже складно, тому люди вигадали мови програмування та компілятори. Така мова, з одного боку, зрозуміла людині, з іншого — компілятору. Компілятор — це спеціальна програма, яка перетворює текст програми, написаний мовою програмування, на набір машинних кодів.

Зазвичай програміст пише програму мовою програмування, а потім запускає компілятор, який на основі написаних програмістом файлів із кодом програми робить один файл із машинним кодом — кінцеву (скомпільовану) програму.

  • Програма мовою C++
  • Компілятор
  • Програма, що складається з машинних кодів
Етапи компіляції для мови C++

Отримана в результаті програма відразу може виконуватись на комп'ютері. Такий підхід має свій мінус — код отриманої програми значно залежить від процесора й операційної системи. Програма, скомпільована для Windows, не буде працювати на телефоні з Android.

Якщо ж ви написали програму для Android, то в операційній системі Windows вона не запуститься!

У Java використовується набагато інноваційніший підхід.

  • Програма мовою Java
  • Java-компілятор
  • Програма, що складається зі спеціальних незалежних кодів (байт-код)
  • Java VM
  • Програма, що складається з машинних кодів
Етапи компіляції для мови Java

Компілятор Java не компілює всі класи в одну програму з машинних кодів. Натомість він компілює кожен клас окремо, і не в машинні коди, а в спеціальний проміжний код (байт-код). Компіляція в машинний код відбувається під час запуску програми.

А хто ж компілює програму в машинний код під час запуску?

Для цього є спеціальна програма під назвою JVM (Java Virtual Machine) — віртуальна машина Java. Спочатку запускають її, а потім — програму, що складається з байт-коду. А вже JVM перед виконанням потрібної програми компілює її в машинний код.

Це дуже потужний хід і одна з причин тотального домінування Java.


3. Сфери домінування Java

Програми, написані мовою Java, завдяки вищезгаданим властивостям можуть виконуватись практично на будь-яких пристроях — комп'ютерах, телефонах, банкоматах, тостерах, банківських картках.

Такий підхід має безліч переваг. Саме тому програми для Android також пишуть мовою Java. А завдяки розвитку мобільного сектора Java займає панівне становище в таких напрямах програмування:

  1. Enterprise: «важкі» серверні програми для банків, корпорацій, інвестфондів тощо.
  2. Mobile: мобільна розробка (телефони, планшети), завдяки Android.
  3. Web: лідирує PHP, але й Java утримує добрячий шмат ринкового пирога.
  4. Big Data: розподілені обчислення в кластерах із тисяч серверів.
  5. Smart Devices: програми для розумного дому, електроніки, холодильників із виходом в інтернет.

Java — це не просто мова, а ціла екосистема: мільйони готових модулів, які ви можете використовувати у своїй програмі. Тисячі спільнот і форумів в інтернеті, де можна попросити про допомогу чи отримати пораду.

Що більше ви будете програмувати на Java, то більше знаходитимете відповідей на питання «Чому саме Java?».