Java — одна з найпопулярніших мов програмування, яка не втрачає своєї актуальності вже понад 20 років. Розберемося, за що вона полюбилася багатьом програмістам.
Короткий екскурс в історію
Почалося все в 1990-х роках, коли Sun Microsystems почала розробку нової, поліпшеної версії С++, яка б не залежала від конкретної платформи та мала автоматичне керування пам'яттю. Сама ж назва «Java» була обрана з безлічі інших, запропонованих командою розробників, а логотипом став чашка гарячої кави, що буде весь час супроводжувати вас у процесі її вивчення, — мабуть, найвпізнаваніший логотип мов програмування.
Які зміни привнесла java у світ програмування:
- Аплети.
Уперше вони з'явилися в Java для створення невеликих вебдодатків для візуалізації та простої анімації. Однак саме їхня наявність у Java і привернула увагу програмістів до розробки для HTML5, Flash і JavaScript. - Гнучкість.
Саме Java довела, що С — процедурний, керований вручну і залежний від платформи код, не є межею досконалості. Завдяки Java, дедалі більше людей почали застосовувати принципи ООП, яке і зараз користується величезною популярністю. - Розробка через тестування.
Java TDD — давно вже не експериментальна практика, а стандартний спосіб розробки програмного забезпечення. Запровадження JUnit у 2000 році вважається одним із найбільших досягнень Java.
Плюси програмування на java
Java вже не єдина мова програмування на Android і вже тим більше далеко не єдиний вибір у веброзробці. Проте Java йде в ногу з часом, і вже котрий рік залишається одним із лідерів індексу TIOBE.
Розберемося, чому її використовують мільйони програмістів по всьому світу.
+ Об'єктноорієнтоване програмування
Java має в собі об'єктноорієнтоване програмування (ООП) — концепцію, в якій вам не тільки можна визначити тип даних та їхню структуру, а й набір функцій, що застосовуються до них.
Таким чином, структура даних стає об'єктом, яким можна керувати для створення відносин між різними об'єктами.
Під час процедурного програмування — потрібно слідувати чітким інструкціям, використовувати змінні та функції.
+ Незалежність від платформи, «write once, run anywhere»
«Написати один раз і використовувати скрізь» (WORA) — популярна в IT-сфері фраза, за допомогою якої Sun Microsystems описувала кросплатформні можливості Java.
Ви можете створити Java-додаток на Linux, скомпілювати його в байт-код і запустити його на іншій платформі, яка підтримує віртуальну машину Java (JVM). Таким чином, JVM слугує рівнем абстракції між кодом і обладнанням.
+ Багатопоточність
Потік — найменша одиниця обробки в програмуванні. Java дозволяє запускати потоки одночасно, щоб максимально ефективно використовувати час процесора.
Між потоками можна швидко перемикатися, тому що вони використовують одні й ті самі області пам'яті. При цьому потоки незалежні один від одного: один потік не впливає на роботу інших потоків. Їх застосування може бути особливо корисним у програмах та іграх з великою кількістю анімації.
+ Розподілене програмування
Java має вбудований механізм спільного використання програм і даних кількома комп'ютерами. В інших же мовах потрібно використовувати зовнішній API для дистрибуції. У Java методологія розподілених обчислень називається Remote Method Invocation (RMI). Вона дає змогу використовувати всі переваги мови: безпеку, незалежність від платформи та об'єктноорієнтоване програмування для розподілених обчислень. Крім того, Java також підтримує програмування сокетів і методологію розподілу CORBA для обміну об'єктами між програмами, написаними різними мовами.
+ Безпека
Є думка, що Java — безпечна мова, однак це не зовсім так. Сама мова не захищає вас від уразливості, але деякі її функції допоможуть закрити «дірки» в програмі.
- По-перше, у Java є Security Manager — це створена для кожного додатка політика безпеки, у якій можна вказати правила доступу. Вона дає змогу запускати додатки Java в «пісочниці» й усувати, таким чином, уразливості.
- По-друге, на відміну від C, у Java немає покажчиків. Покажчик — це об'єкт, який зберігає адресу комірки пам'яті іншого значення, що може викликати несанкціонований доступ до пам'яті.
У Java так само є і низка інших переваг, таких як: автоматичне керування пам'яттю, для оптимізації програм; велика спільнота, з курсами та відповідями на більшу частину запитань; типізований і схожий з С синтаксис.
Якщо ви зацікавилися такою гідною мовою програмування, як Java, то в наступній статті ми поговоримо про низку недоліків, про які, сподіваюся, вам теж буде цікаво дізнатися.
Валентин Хорошилов