Java

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Java широко відома як новітня об'єктно-орієнтована мова, що легка у вивченні і дозволяє створювати програми, які можуть виконуватися на будь-якій платформі без яких-небудь доопрацювань Ще з Java чомусь завжди пов'язана тема кави (зображення логотипів, назви продуктів і так далі). Програмісти можуть додати до цього опису, що мова схожа на спрощений С або С++ з додаванням garbage collector'а - автоматичного збирача "сміття" (механізм звільнення пам'яті, яка більше не використовується програмою). Також відомо, що Java орієнтована на Internet, і найпоширеніше її застосування - невеликі програми, аплети, які запускаються в браузері і є частиною HTML-сторінок.З часу офіційного оголошення Java пройшло достатньо багато часу для "просто модної технології". Конференція розробників Java One, яка вперше була організована в 1996 році, вже через рік зібрала більше 10000 учасників і стала найбільшою конференцією із створення програмного забезпечення в світі (кожен наступний рік число учасників росло приблизно на 5000). Спеціальна програма Sun, об'єднуюча розробників Java по всьому світу, Javadeveloper Connection, також була запущена в 1996 році, через рік вона налічувала більше 100.000 розробників, а в 2000 році - більше 1,5 мільйонів. На сьогодні число програмістів на Java налічує 3 мільйони.Було випущено п'ять основних версій мови, починаючи з 1.0 в 1995 році і закінчуючи 1.4 в лютому 2002 року. Наступна версія 1.5 випущена в 2004 році. Один з перших продуктів для Java - JDK 1.1 (засіб розробки на Java) - протягом перших трьох тижнів після оголошення був завантажений більше 220.000 разів. Версія 1.4 була завантажена більше 2 мільйонів разів за перших 5 місяців. Практично всі провідні виробники програмного забезпечення ліцензіювали технологію Java і регулярно оголошують про вихід побудованих на ній продуктів. Це і "блакитний гігант" IBM, і творець платформи Macintosh фірма Apple, і лідер в області реляційних БД Oracle, і навіть головний конкурент фірми Sun - корпорація Microsoft - ліцензіювала Java ще в березні 1996 року.

Історія створення Java. Якщо пошукати в Interneti історію створення Java, з'ясовується, що спочатку мова називалася OаK ("дуб"), а робота з його створення почалася ще в 1990 році з досить скандальної історії усередині корпорації Sun. Спочатку Гослінг спробував модифікувати С++, щоб створити мову для написання програм, мінімально орієнтованих на конкретні платформи. Проте дуже скоро стало зрозуміло, що це практично неможливо. Основна перевага С++ - швидкість програм, але зовсім не їх надійність. А надійність роботи для звичайних користувачів повинна бути так само абсолютно гарантована, як сумісність звичайних електричної вилки і розетки. Тому в червні 1991 року Гослінг, який написав свою першу мову програмування в 14 років, починає розробку заміни C++. Створюючи новий каталог і роздумуючи, як його назвати, він виглянув у вікно, і погляд його зупинився на зростаючому під ним дереві. Так мова отримала свою першу назву - OAK (дуб). Декілька років потому, після проведення маркетингових досліджень, ім'я змінили на Java.Відродження OAKДля переможного виходу OAK не хватало останнього штриха - браузера, який підтримував би цю технологію. Саме він повинен був стати тим самим "шокуючим" додатком Нотона, який завершував майже п'ятирічну підготовчу роботу перед офіційним оголошенням нової платформи.Браузер назвали Webrunner. Нотону було потрібно всього один вихідний, щоб написати основну частину програми. Це було в липні, а у вересні 1994 року Webrunner вже демонструвався керівництву Sun. Невеликі програми, написані на OAK для розповсюдження через Internet, назвали аплетами (applets).Наступна демонстрація відбувалася на конференції, де зустрічалися розробники Internet-додатків і представники індустрії розваг. Коли Гослінг почав презентацію Webrunner, слухачі не виявили великої цікавості, вирішивши, що це просто клон Mosaic. Тоді Гослінг провів мишкою над складною тривимірною моделлю хімічної молекули.Слідуючи за курсором, модель поверталася по всіх напрямах! Зараз дана функція, можливо, не справляє такого враження, проте у той час це було подібно до переходу від картинки до кінематографа. Наступний приклад демонстрував анімоване сортування. Спочатку зображався набір відрізків різної довжини. Потім синя і червона лінії починали бігати по цьому набору, сортуючи відрізки за розміром. Приклад теж нехитрий, такий, що проте наочно демонструє, що на стороні клієнта з'явилася повноцінна програмна платформа. Обидва ці аплети зараз є стандартними прикладами і входять до складу Java Development Kitлюбой версії. Згодом, OAK був перейменований в Java, а Webrunner почав називатися Hotjava. Багато хто тоді дивувався, що ж послужило приводом для такого рішення. Легенда свідчить, що Java - це сорт кави (така кава дійсно є), яку дуже любили програмісти. Мабуть, схожим чином народилася і назва Hotjava ("гаряча Java"). Тема кави назавжди залишиться в назвах і логотипах (технологія створення компонентів названа Java Beans - зерна кави, спеціальний формат для архівації файлів з Java-программами JAR - банка з кавою і так далі), а саму мову критики почали називати "для кавоварок".

Java виходить в світ 23 травня 1995 року технології Java і Hotjava були офіційно оголошені Sun і тоді ж представники компанії повідомили, що нова версія найпопулярнішого браузера Netscape Navigator 2.0 підтримуватиме нову технологію. По суті, це означало, що відтепер Java стає такою ж невід'ємною частиною WWW, як і HTML. Вже другий раз презентація закінчилася оваціями - переможний хід Java почався. Історія розвитку Java. Браузери. За допомогою Java web-сторінку можна наповнити не тільки звичайним текстом, але і динамічними елементами - простими відеовставками типу земної кулі, що обертається, або інтерактивними елементами типу моделі хімічної молекули, що обертається; рядками, що біжать, містять, наприклад, біржові індекси або прогноз погоди.

Але насправді Java - це більше, ніж прикраса HTML. Оскільки це повноцінна мова програмування, з її допомогою можна створити складний призначений для користувача інтерфейс. У найпершій версії Java Development Kit(засіб розробки на Java) був приклад аплета, що представляє прості електронні таблиці. Незабаром з'явився текстовий редактор, що дозволяє міняти стиль і колір тексту. Звичайно, були ігрові аплети, повчальні, моделюючі, фізичні і інші системи. Наприклад, клієнт, що зробив замовлення в магазині або відправив посилку поштою, діставав можливість стежити за доставкою через Internet.

Проте сьогодні, як відомо, найпоширеніший браузер - Microsoft Internet Explorerі його використовують більше 95% користувачів.

Варто зупинитися на мові Java Script, яка також вельми поширена і яку до цих пір багато хто пов'язує з Java, мабуть, унаслідок схожості імен. Втім, деякі загальні риси у них дійсно є.

4 грудня 1995 року компанії Netscape і Sun спільно оголошують нову "мову сценаріїв" (scripting language) Java Script. Код Java Script описується прямо в HTML-тексті (хоча можна і підвантажувати його з окремих файлів з розширенням js. Ця мова призначена для створення додатків, які зв'язують об'єкти і ресурси на клієнтській машині або на сервері. Таким чином, Java Script, з одного боку, розширює і доповнює HTML, а з іншого боку - доповнює Java. За допомогою Java пишуться об'єкти-аплети, якими можна управляти через мову сценаріїв.

Загальні властивості Java Script і Java:

- легкість в освоєнні. По цьому параметру Java Script порівнюють з Visual Basic - щоб використовувати ці мови, досвід програмування не потрібний;

- кроссплатформовість. Код Java Script виконується браузером. Мається на увазі, що браузери на різних платформах повинні забезпечувати однакову функціональність для сторінок, що використовують мову сценаріїв. Проте це виконується приблизно в тому ж ступені, що і підтримка самого HTML, - відмінностей все ж таки дуже багато;

- відвертість; специфікація мови відкрита для використання і обговорення співтовариством розробників;

- всі перераховані властивості дозволяють стверджувати, що Java Script добре пристосований для Internet-програмування;

- синтаксиси мов Java Script і Java дуже схожі.

- мова Java Script не об'єктно-орієнтована (хоча деякі аспекти об'єктно- орієнтованого підходу підтримуються), але дозволяє використовувати різні об'єкти, що надаються браузером;

- схожа історія появи і розвитку. Обидві мови були оголошені компаніями Sun і Netscape з інтервалом в декілька місяців.

- Не дивлячись на велику кількість схожих характеристик, Java і Java Script - абсолютно різні мови, і насамперед - за призначеннями. Якщо спочатку Java позиціонувався як мова для створення Internet-додатків (аплетів), то зараз вже очевидно, що Java - це повноцінна мова програмування. Що стосується java Script, то він повністю виправдовує свою назву мови сценаріїв, залишаючись розширенням HTML.

Зупининимося докладніше на тому, чому по відношенню до Java використовується термін "платформа", чим Java відрізняється від звичайної мови програмування. Як правило, платформою називають поєднання апаратної архітектури ("залізо"), яка визначається типом використовуваного процесора (Intel x86, Sun SPARC, POWERPC і ін.), з операційною системою (MS Windows, Sun Solaris, Linux, Mac OS і ін.). При написанні програм розробник завжди користується засобами цільової платформи для доступу до мережі, підтримка потоків виконання, роботи з графічним користувацьким інтерфейсом (GUI) і іншими можливостями. Звичайно, різні платформи, через технічних, історичних і інших причин, підтримують різні інтерфейси (API, Application Programming Interface), а значить, і програма може виконуватися тільки під тією платформою, під яку вона була написана.А значить, і мови програмування повинні бути спочатку орієнтовані на якусь конкретну платформу.

Синтаксис і основні концепції легко розповсюдити на будь-яку систему (хоча це і не завжди ефективно), але бібліотеки, компілятор і, природно, бінарний виконуваний код специфічні для кожної платформи. Так було з самого початку епохи комп'ютерних обчислень, а тому лише небагато, дійсно вдалих програм підтримувалися відразу на декількох системах, що приводило до деякої ізоляції світів програмного забезпечення для різних операційних систем.

Було б дивно, якби з розвитком комп'ютерної індустрії розробники не спробували створити універсальну платформу, під якою могли працювати всі програми. Особливо такому кроку сприяв бурхливий розвиток Глобальної мережі Internet, яка об'єднала користувачів незалежно від типу використовуваних процесорів і операційних систем. Саме тому творці Java задумали розробити не просто ще одну мову програмування, а універсальну платформу для виконання додатків, тим більше що спочатку Oak створювався для різних побутових приладів, від яких чекати сумісності не доводиться.Яким же чином можна "згладити" відмінності і різноманіття операційних систем? Спосіб не новий, але ефективний - за допомогою віртуальної машини. Додатки на мові Java виконуються в спеціальному, універсальному середовищі, яке називається Java Virtual Machine. JVM - це програма, яка пишеться спеціально для кожної реальної платформи, щоб, з одного боку, приховати всі її особливості, а з іншої - надати єдине середовище виконання для Java - додатків. Фірма Sun і її партнери створили JVM практично для всіх сучасних операційних систем. Коли мова йде про браузер з підтримкою Java, мається на увазі, що в нім є вбудована віртуальна машина.Докладніше JVM розглядається нижчим, але необхідно сказати, що розробники Sun доклали зусилля, щоб зробити цю машину цілком реальною, а не тільки віртуальною. 29 травня 1996 року оголошується операційна система Java OS (фінальна версія випущена в березні наступного року). Згідно прес-релізу, це була "можливо, сама невелика і швидка операційна система, підтримуюча Java". Дійсно, розробники прагнули до того, щоб забезпечити можливість виконувати Java-додатки на найширшому спектрі пристроїв - мережеві комп'ютери, кишенькові комп'ютери (PDA), принтери, ігрові приставки, мобільні телефони і так далі Очікувалося, що Java OS буде реалізована на всіх апаратних платформах. Це було необхідно для початкової мети творців Java - легкість додавання новій функціональності і сумісності в будь-які електричні прилади, якими користується сучасний споживач. Це був перший крок, що просуває платформу Java на один рівень вниз, - на рівень операційних систем. Передбачалося зробити і наступний крок - створити апаратну архітектуру, центральний процесор, який би безпосередньо виконував інструкції Java без всякої віртуальної машини. Пристрій з такою реалізацією став би повноцінним Java-пристроєм.

На початок курсу