Ноу Інти, лекція, що таке java історія створення

Історія розвитку Java

Тепер, коли за Java стояли не тільки кілька творців, але ще і ціла армія розробників, корпорація Sun мала можливість будувати широкомасштабні плани розвитку технології.

З іншого боку, користувач вже не прив'язаний до свого основного робочого місця, в будь-якому Internet-кафе можна відкрити потрібну web-сторінку і почати роботу зі звичними програмами. І все це без будь-яких побоювань підчепити вірус. Розробників дуже зацікавило, що їх програми через день після випуску можуть побачити користувачі всього світу, незалежно від того, який комп'ютер, операційну систему і браузер вони використовують. Хоча браузер на стороні клієнта повинен підтримувати Java. як уже говорилося, користувачам пропонувався HotJava. доступний на будь-якій платформі. Найпопулярніший в той час браузер Netscape Navigator, починаючи з версії 2.0, також підтримував Java. Однак сьогодні, як відомо, найпоширеніший браузер - Microsoft Internet Explorer.

Зараз ми маємо можливість озирнутися назад і оцінити наслідки подій, що відбулися. Тепер уже очевидно, що Microsoft повністю вдалося здійснити свій план. Якщо Netscape Navigator 3.x ще зберігав лідируючу позицію, то Netscape 4.x вже почав поступатися Internet Explorer 4.x. Версія NN 5.x так і не вийшла, а NN 6.x став черговим розчаруванням для колишніх прихильників "Навігатора". Зараз з'явилася версія 7.0, однак вона не займає значної частки ринку, в той час як Internet Explorer 5.0, 5.5 і 6.0 використовують більше 95% користувачів.

Забавно, що багато запекло звинувачували Microsoft в тому, що компанія боролася з Netscape "неринковими" засобами. Однак порівняємо дії конкурентів. Серед багатьох кроків, зроблених Microsoft, була і підтримка незалежної організації W3C, яка керувала розробкою нового стандарту HTML 3. Спочатку компанія Netscape вважалася локомотивом індустрії, оскільки вона постійно розвивала і модернізувала HTML. який спочатку взагалі-то не був призначений для графічного оформлення тексту. Але Microsoft, вклавши велику кількість коштів і людських ресурсів, змогла затвердити стандарти, які відрізнялися від уже реалізованих в Netscape Navigator, причому відмінності часом були чисто формальними. В результаті виявилося, що сторінки, створені відповідно до W3C-специфікаціями, відображалися в Navigator спотворено. Важливо й те, що NN необхідно було завантажувати (нехай і безкоштовно) і встановлювати вручну, а IE швидко став вбудованим компонентом Windows, готовим до використання (і від якого, до речі, позбутися не можна було принципово).

А яким чином Netscape зміг домогтися лідируючого положення? Свого часу подібними ж методами компанія намагалася (успішно, в кінці кінців) витіснити з ринку NCSA Mosaic. Тоді HTML був не дуже багатий цікавими можливостями, а тому інновації, підтримувані Navigator, відразу привертали увагу розробників і користувачів. Однак такі сторінки некоректно відображалися в Mosaic. що змушувало його користувачів задуматися про перехід до продуктів Netscape.

В результаті в зв'язку з забуттям Netscape і його Navigator багато хто зітхнув з полегшенням. Хоча, безумовно, втрата конкуренції на ринку і воцаріння такого небезпечного монополіста, як Microsoft, ніколи не йде на користь кінцевим користувачам, однак багато втомилися від "війни стандартів", коли і без того небагаті можливості HTML доводилося витончено підганяти таким чином, щоб сторінки виглядали однаково в обох браузерах.

Про HotJava. на жаль, сказати особливо нічого. Деякий час Sun підтримувала цей продукт і додала можливість візуально генерувати web-сторінки без знання HTML. Однак створити конкурентоспроможний браузер не вдалося і незабаром розвиток HotJava було зупинено. Зараз ще можна скачати і подивитися останню версію 3.0.

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

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

  • легкість в освоєнні. За цим параметром Java Script порівнюють з Visual Basic - щоб використовувати ці мови, досвід програмування не потрібно;
  • кроссплатформенность. Код Java Script виконується браузером. Мається на увазі, що браузери на різних платформах повинні забезпечувати однакову функціональність для сторінок, що використовують мову сценаріїв. Однак це виконується приблизно в тій же мірі, що і підтримка самого HTML, - відмінностей все ж дуже багато;
  • відкритість; специфікація мови відкрита для використання і обговорення спільнотою розробників;
  • всі перераховані властивості дозволяють стверджувати, що Java Script добре пристосований для Internet-програмування;
  • синтаксиси мов Java Script і Java дуже схожі. Втім, вони також досить сильно нагадують мову С;
  • мова Java Script НЕ об'єктно-орієнтована (хоча деякі аспекти об'єктно-орієнтованого підходу підтримуються), але дозволяє використовувати різні об'єкти, що надаються браузером;
  • схожа історія появи і розвитку. Обидві мови були оголошені компаніями Sun і Netscape з інтервалом в декілька місяців. Що вийшов незабаром після цього Netscape Navigator 2.0 підтримував обидві нові технології. Можливо, сама назва Java Script було дано для того, щоб скористатися популярністю Java. або для того, щоб ще більше розширити поняття "платформа Java". Цілком ймовірно, що основну роботу з розробки мови провела саме Netscape.

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

Мережеві комп'ютери

Пора зупинитися докладніше на тому, чому по відношенню до Java використовується термін "платформа", ніж Java відрізняється від звичайного мови програмування.

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

Однак часто замовникам потрібно одна і та ж функціональність, а платформи вони використовують різні. Завдання портирования додатків стоїть перед розробниками давно. Рідко вдається перенести складну програму без істотної переробки, дуже часто різні платформи по-різному підтримують багато можливостей (наприклад, операційна система Mac OS традиційно використовує однокнопочні миша, в той час як Windows спочатку розрахована на Двокнопочне).

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

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

Яким же чином можна "згладити" відмінності і різноманіття операційних систем? Спосіб не новий, але ефективний - за допомогою віртуальної машини. Додатки на мові Java виконуються в спеціальній, універсальної середовищі, яка називається Java Virtual Machine. JVM - це програма, яка пишеться спеціально для кожної реальної платформи, щоб, з одного боку, приховати всі її особливості, а з іншого - надати єдину середу виконання для Java-додатків. Фірма Sun і її партнери створили JVM практично для всіх сучасних операційних систем. Коли мова йде про браузері з підтримкою Java, мається на увазі, що в ньому є вбудована віртуальна машина.

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

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

Що ж стосується мережевих комп'ютерів і Java OS, то, на жаль, вони поки не знайшли своїх споживачів. Мабуть, звичайні персональні робочі станції в сукупності з JVM вимагають набагато менше технологічних і маркетингових зусиль і при цьому цілком успішно справляються з прикладними завданнями. А Java. в свою чергу, стала позиціонуватися для створення складних серверних додатків.