Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шепель МАН+.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
551 Кб
Скачать

Розділ 2. Історія розвитку мови програмування java

Java спочатку з'явилася на світ як мова для створення невеликих додатків для Інтернету (аплетів), але з часом розвинулася як універсальна платформа для створення програмного забезпечення, яке працює буквально скрізь – від мобільних пристроїв і смарт-карт до потужних серверів.

Дана робота починається з викладу історії появи і розвитку Java. Такі знання дозволять краще зрозуміти особливості платформи і спектр існуючих продуктів і технологій. Також створення Java є цікавим прикладом історії одного з найбільш популярних і успішних проектів в комп'ютерному світі. Потім викладаються основні концепції ООП, необхідні для освоєння об'єктно-орієнтованої мови програмування Java. Ключові поняття і конструкції мови описуються доступною мовою, але, тим не менш, на досить глибокому рівні. Детально розглянуто особливості лексики, системи типів даних, об'єктної моделі. Приділяється особлива увага модифікаторам доступу, угодам з іменування, перетворенню типів, роботі з масивами, обробці помилок (виняткових ситуацій). Робота завершується розглядом базових бібліотек Java, що надають всю необхідну функціональність для створення самих різних додатків – колекції об'єктів, робота з файлами, мережею, створення GUI додатків, побудова багатопотокової архітектури та багато іншого. Опис мережевої бібліотеки випереджається викладом основ мережевих протоколів і технологій.

Здавалося б, на сьогоднішній день винайдені вже всі мови програмування, які тільки можна придумати. Але ні – з'явилася ще одна, з назвою Java. Ця мова зуміла отримати досить помітну популярність за останні кілька років, тому що вона орієнтована на найпопулярніше комп'ютерне середовище – мережа Internet і сервери Web.

Персональні комп'ютери зробили інформаційні технології частиною масової культури. І проте, вже досить тривала історія розвитку персональних комп'ютерів не знала нічого, подібного феномену Java. Що змінилося у світі в останні роки, чому цей феномен став можливий?

Змінився Інтернет. Він став доступний мільйонам людей, далеких від технічних проблем. Число користувачів Інтернет по порядку величини вже не відрізняється від числа користувачів персональних комп'ютерів і продовжує вибухово рости. Одночасно Інтернет забезпечив таку швидкість поширення новинок інформаційних технологій, яку не могли і ніколи не зможуть дати традиційні канали збуту. Час спресувався. В Інтернет, запізнившись буквально на день, комп'ютерна компанія, навіть велика, ризикує серйозно послабити свої позиції відразу в усьому світі.

Мова Java походить від мови програмування Oak (а не від C++, як іноді вважають). Oak був пристосований для роботи в Internet і потім перейменований в Java.

Синтаксис Java близький до синтаксису мови C++. Успадкував найкраще від мови програмування C++, мова Java при цьому позбулася деяких недоліків C++, в результаті чого на ній стало простіше програмувати. У цій мові немає, наприклад, покажчиків, які складні у використанні і потенційно можуть послужити причиною доступу програми до що не належить їй області пам'яті. Ні множинного спадковості, ні шаблонів, хоча функціональні можливості мови Java від цього не постраждали.

Величезна перевага Java полягає в тому, що на цій мові можна створювати додатки, здатні працювати на різних платформах. До мережі Internet підключені комп'ютери самих різних типів - PC, Macintosh, робочі станції Sun, планшети і смартфони Android і так далі. Навіть у рамках комп'ютерів, створених на базі процесорів Intel, існує кілька платформ, наприклад, Microsof Windows XP / 7 / 8, Solaris, різні різновиди операційної системи UNIX з графічною оболонкою XWindows. Тим часом, створюючи сервер Web в мережі Internet, хотілося б, щоб ним могла користуватися якомога більше число людей. У цьому випадку виручають програми Java, призначені для роботи на різних платформах і не залежні від конкретного типу процесора і операційної системи.

Програми, складені на мові програмування Java, можна розділити за своїм призначенням на дві великі групи.

До першої групи належать програми Java, призначені для автономної роботи під управлінням спеціальної машини Java. Реалізації цієї машини створені для всіх основних комп'ютерних платформ. Друга група - це так називаемие аплети (applets). Аплети являють собою різновид програм Java, які інтерпретуються віртуальною машиною Java, вбудованої практично в усі сучасні браузери.

Додатки, що відносяться до першої групи (називатимемо їх просто додатками Java), – це звичайні автономні програми. Так як вони не містять машинного коду і працюють під управлінням спеціального інтерпретатора, їх продуктивність помітно нижче, ніж у звичайних програм, складених, наприклад, на мові програмування C++. Однак не слід забувати, що програми Java без перетрансляції здатні працювати на будь-якій платформі, що саме по собі має велике значення в плані розробок для Internet. Аплети Java вбудовуються в документи HTML, що зберігаються на сервері Web. За допомогою аплетов можна зробити сторінки веб-сервера динамічними та інтерактивними. Аплети дозволяють виконувати складну локальну обробку даних, отриманих від веб-сервера або введених користувачем з клавіатури. З міркувань безпеки аплети (на відміну від звичайних програм Java) не мають ніякого доступу до файлової системи локального комп'ютера. Всі дані для обробки вони можуть отримати тільки від веб-сервера. Більш складну обробку даних можна виконувати, організувавши взаємодію між аплетами і розширеннями веб-сервера додатками CGI та ISAPI.

Для підвищення продуктивності додатків Java в сучасних браузерах використовується компіляція "на льоту" – Just-In-Timecompilation (JIT). При першому завантаженні аплета його код транслюється в звичайну здійсненну програму, яка зберігається на диску і запускається. У результаті загальна швидкість виконання атлета Java збільшується в кілька разів.

 Мова Java є об'єктно-орієнтованою і поставляється з досить об'ємною бібліотекою класів. Так само як і бібліотеки класів систем розробки додатків мовою C++, бібліотеки класів Java значно спрощують розробку додатків, надаючи в розпорядження програміста потужні засоби вирішення поширених завдань. Тому програміст може більше уваги приділити вирішенню прикладних задач, а не таких, як, наприклад, організація динамічних масивів, взаємодія з операційною системою або реалізація елементів інтерфейсу користувача.

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

Так працюють засоби масової інформації, видавництва, рекламні агентства. Як працює електронна пошта. У більшості випадків споживачеві ця інформація, може бути, і потрібна, але не в даний момент, не зараз. Споживач змушений архівувати отриману інформацію. При цьому в кращому випадку велика ймовірність, що до моменту, коли інформація дійсно знадобиться, вона втратить актуальність. Зазвичай же у споживача просто накопичуються гори сміття, в якому відшукати щось потрібне майже неможливо.

Щоб інформація була актуальною для споживача, вона повинна доставлятися до нього за запитом – в точності тоді, коли в ній виникла необхідність. Крім того, постачальник повинен зберігати можливість управління інформацією, він повинен не тільки створювати її, але і вчасно оновлювати і знищувати. Централізовані комп'ютерні системи, що домінували ще 10 років тому, дозволяли користувачам порівняно легко знаходити інформацію в оперативному режимі, проте вони утруднювали управління інформацією, оскільки її джерела, як правило, різнорідні і територіально рознесені.

Ще один важливий недолік централізованих систем – їх складність і дорожнеча. Мережі персональних комп'ютерів істотно дешевше централізованих систем, вони залишають за постачальником необхідну свободу управління інформацією, проте споживачам доводиться шукати необхідні дані на безлічі машин, серед великої кількості додатків з різними інтерфейсами. Рядовому користувачеві працювати в такій різнорідної прикладної середовищі вкрай незручно.

Спосіб вирішення вказаних проблем, до якого вдаються провідні компанії, полягає в побудові інформаційної структури організації за образом і подобою Інтернет, з веб-сервісом в якості концептуальної основи.

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

Засоби Web, крім зв'язування розподілених даних, здійснюють ще одну дуже важливу функцію. Вони дозволяють розглядати інформацію з потрібним ступенем деталізації, що істотно спрощує аналіз великих обсягів даних. Можна швидко відібрати найцікавіше, а потім вивчити обраний матеріал у всіх подробицях.

Таким чином, веб-сервери і веб-навігатори можуть і повинні використовуватися не тільки в "світовому масштабі". Web - це інфраструктурний сервіс, необхідний кожній організації зі скільки-небудь помітними інформаційними потоками. Водночас, веб-сервісу притаманні і певні недоліки, що випливають з відсутності об'єктної орієнтації і з природи HTTP-протоколу. По-перше, клієнт по суті позбавлений засобів управління зовнішнім поданням об'єктів на переглядається WWW-сторінці.

По-друге, веб-сторінки статичні. При використанні протоколу HTTP, на клієнтську систему передаються тільки пасивні дані, але не методи об'єктів. Із загальних міркувань очевидна обмеженість подібного підходу. Даний недолік, зрозуміло, пов'язаний з першим. Об'єкт сам повинен знати, як себе показувати – точніше кажучи, він повинен це з'ясувати, проаналізувавши клієнтське оточення.

По-третє, веб-сервіс має дуже обмеженими інтерактивними можливостями, які зводяться до заповнення користувачем чисто текстових форм з подальшою відправкою на сервер. Сервер аналізує отримані дані, після чого формує і повертає клієнту нову WWW-сторінку, яка нерідко знову виявляється формою. Такий стиль спілкування не завжди влаштовує користувачів. Java-технологія дозволяє усунути всі зазначені недоліки. Як саме буде зрозуміло з подальшого викладу. В результаті веб-сервіс, і без того мав величезну популярність, отримав як би новий імпульс. Цей експрес понісся вперед з подвоєною швидкістю, захоплюючи за собою і Java.