Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекция1

.doc
Скачиваний:
6
Добавлен:
16.02.2016
Размер:
181.25 Кб
Скачать

Згідно з планом , специфікація Java , реалізація платформи та HotJava повинні були вільно поширюватися через Internet. З одного боку , це дозволяло в найкоротші терміни поширити технологію по всьому світу і зробити її стандартом де- факто для Internet - програмування. З іншого боку , за участю всього співтовариства розробників , які висловлювали б свої зауваження , можна було набагато швидше усунути всі можливі помилки і недоробки. Однак наприкінці 1994 року лише лічені копії були поширені за межі Sun. У лютому 1995 року виходить , можливо , перший прес -реліз , що повідомляє, що незабаром будуть доступні альфа -версії OaK і WebRunner .

Коли це сталося , команда стала підраховувати випадки завантаження їхнього продукту для перегляду . Незабаром довелося рахувати вже сотнями. Потім вирішили , що якщо вдасться досягти 10.000 , то це буде просто приголомшливий успіх . Чекати довелося зовсім не так довго , як можна було припустити . Інтерес наростав лавиноподібно , після переглядів приходила велика кількість листів і потужності Internet - каналу стало не вистачати. На листи завжди відповідали дуже докладно , що спочатку можна було робити , не відриваючись від роботи. Потім по черзі стали призначати одного розробника , щоб він протягом тижня тільки писав відповіді . Нарешті , потрібен спеціальний співробітник , так як приходило вже по 2-3 тисячі листів на день. Незабаром керівництво Sun усвідомило , що маючи такий потужний успіх Java не має ніякого бюджету або плану для реклами та інших акцій просування на ринок. Першим кроком у цьому напрямку стає публікація 23 березня 1995 в газеті Sun Jose Mercury News статті з описом нової технології , де був приведений адресу офіційного сайту http://java.sun.com/ , який і донині є основним джерелом інформації з Java.

Java виходить у світ

Нарешті , вся підготовча робота стала підходити до свого логічного завершення. Офіційне оголошення Java , що вже отримала широке визнання і подає великі надії , мало статися на конференції SunWorld . Очікувалося , що це буде короткий інформаційне оголошення , так як головна мета цього заходу - UNIX -системи. Однак все сталося не так , як планувалося.

У 4:00 ранку в день конференції , після довгих і складних переговорів , Sun підписує найважливіша угода . Друга сторона - компанія Netscape , заснована в квітні 1994 року Джеймсом Кларком (він вже зіграв роль у долі OaK два роки тому , коли перехопив пропозиція від Time Warner ) і Марком Андріссеном ( творцем NCSA Mosaic ) . Ця компанія стала лідером ринку браузерів після того , як в грудні 1994 року вийшла перша версія Netscape Navigator , яка була відкрита для безкоштовного некомерційного використання , що дозволило зайняти на той момент 75 % ринку.

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

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

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

браузери

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

За допомогою Java web - сторінку можна наповнити не лише звичайним текстом , але і динамічними елементами - простими відеовставками типу обертового земної кулі або Дьюка , що махає рукою ( хоча зараз такі завдання добре вирішує анімований GIF , а в більш складних випадках - Macromedia Flash ) ; інтерактивними елементами типу обертається моделі хімічної молекули ; бегущими рядками , що містять , наприклад , біржові індекси або прогноз погоди .

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

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

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

Компанія Microsoft , домігшись приголомшливого успіху в галузі програмного забезпечення для персональних комп'ютерів , стала (і в цілому залишається досі ) основним конкурентом в цій області для Sun , IBM , Netscape та інших . Якщо на початку дев'яностих основні зусилля Microsoft були спрямовані на операційну систему Windows і офісні додатки (MS Office) , то в середині десятиліття стало очевидно , що пора серйозно зайнятися Internet . На початку 1995 року Білл Гейтс опублікував "плани оголошення війни " Netscape з метою зайняти таке ж монопольне становище в WWW , як і в області операційних систем для персональних комп'ютерів. І коли незабаром Netscape підписала ліцензійну угоду з Sun , Microsoft виявилася у важкій ситуації.

Internet Explorer 2.0 не викликав ентузіазму і ніхто не вірив , що він може скласти хоч скільки-небудь помітну конкуренцію Netscape Navigator. А це означає , що нова версія IE 3.0 повинна вміти все , що вміє тільки що вийшов NN 2.0. Тому 7 грудня 1995 Microsoft оголошує про свій намір ліцензувати Java , а в березні 1996 року угоду про ліцензування було підписано . Найбільша компанія з виробництва програмного забезпечення була змушена підтримувати свого , можливо , самого небезпечного конкурента.

Зараз ми маємо можливість озирнутися назад і оцінити наслідки подій, що відбулися . Тепер уже очевидно , що 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 , мабуть , через схожість імен. Втім , деякі спільні риси у них дійсно є.

4 грудня 1995 компанії Netscape і Sun спільно оголошують новий " мова сценаріїв " ( scripting language ) Java Script. Як випливає з прес-релізу , це відкритий багатоплатформовий об'єктна мова сценаріїв для корпоративних мереж і Internet . Код 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 з інтервалом у кілька місяців. Що вийшов незабаром після цього Netscape Navigator 2.0 підтримував обидві нові технології. Можливо , сама назва Java Script було дано для того , щоб скористатися популярністю Java , або для того , щоб ще більше розширити поняття " платформа Java " . Цілком імовірно , що основну роботу з розробки мови провела саме Netscape.

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

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

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

Коли стало зрозуміло , що нова технологія користується небувалим попитом , розробникам захотілося зміцнити і розвинути успіх і поширеність Java. Для того щоб Java не розділила долю NeWS ( ця віконна система згадувалася на початку лекції , вона не отримала розвитку , програвши X Window ), компанія Sun намагалася налагодити співпрацю з незалежними фірмами для виробництва різних бібліотек , засобів розробника , інструментів. 9 січня 1996 було сформовано новий підрозділ JavaSoft , яке і зайнялося розробкою нових Java- технологій і просуванням їх на ринок. Головна мета - поява все більшої кількості самих різних додатків , написаних на цій платформі . Наприклад , 1 липня 1997 було оголошено , що вчені NASA ( National Aeronautics and Space Administration , державна організація США , що займається дослідженням космосу ) за допомогою Java - аплетів управляють роботом , що вивчають поверхню Марса ( " Java допомагає робити історію !") .

Пора зупинитися докладніше на тому , чому по відношенню до 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 , мається на увазі , що в ньому є вбудована віртуальна машина.

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

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

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

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

Крім очевидних зручностей , це починання було з великим ентузіазмом підтримано індустрією і в силу того , що воно було найсильнішим зброєю в боротьбі з найбільшим виробником програмного забезпечення - Microsoft. Тоді (та й зараз) найпоширенішою платформою була операційна система Windows на базі процесорів Intel (з чиєїсь легкої руки тепер багатьма звана Wintel ) . Цим компаніям вдалося створити замкнене коло , що гарантує успіх , - всі користувалися їх платформою , так як під неї написано найбільше програм , що , в свою чергу , змушувало розробників створювати нові продукти саме для платформи Wintel . Оскільки корпорація Microsoft завжди дуже агресивно розвивала свою перевагу в області персональних комп'ютерів (згадаймо , як Netscape Navigator безнадійно програв конкуренцію MS Internet Explorer ), це не могло не викликати сильне занепокоєння інших представників комп'ютерної індустрії. Зрозуміло , що концепція мережевих комп'ютерів звела б нанівець переваги Wintel в разі широкого розповсюдження. Розробники просто перестали б замислюватися , що знаходиться всередині їхньої робочої станції , так само, як домашні користувачі не мають уявлення , на яких мікросхемах зібраний їх мобільний телефон або відеомагнітофон.

Ми вже розповідали про те , як і чому Microsoft ліцензувала Java , хоча , здавалося б , цей крок лише сприяв небезпечному поширенню нової технології , адже Internet Explorer завойовував все більшої популярності. Однак незабаром вибухнув судовий скандал. 30 вересня 1997 вийшов новий IE 4.0 , а вже 7 жовтня Sun оголосила , що цей продукт не проходить тести на відповідність зі специфікацією віртуальної машини. 18 листопада Sun звертається до суду , щоб заборонити використання логотипу " Сумісний з Java " (" Java compatible " ) для MS IE 4.0. Виявилося , що розробники Microsoft злегка " поліпшили " мову Java , додавши кілька нових ключових слів і бібліотек. Не те що б це були надпотужні розширення , проте достатньо привабливі для того , щоб значна частина розробників початку її використовувати. На щастя , в Sun швидко усвідомили всю ступінь небезпеки такого кроку. Java могла втратити звання універсальної платформи , для якої вірним знаменитий девіз " Write once , run everywhere " (" Написано один раз , працює скрізь " ) . У такому випадку вона втратила б основу свого успіху , перетворившись всього лише в " ще одна мова програмування " .

Компанії Sun вдалося відстояти свою технологію. 24 березня 1998 суд погодився з вимогами компанії ( звичайно, це було лише попереднє рішення , справа завершилася лише 23 січня 2001 року - Sun отримав компенсацію в 20 мільйонів доларів і домігся виконання ліцензійної угоди ) , а вже 12 травня Sun знову виступає з вимогою : зобов'язати Microsoft включити повноцінну версію Java в Windows 98 і інші програмні продукти. Ця тяжба триває досі з перемінним успіхом сторін . Наприклад , Microsoft виключила з віртуальної машини Internet Explorer бібліотеку java.rmi , що дозволяє створювати розподілені додатки , намагаючись привернути увагу розробників до DCOM - технології , жорстко прив'язаною до платформи Win32. У відповідь багато компаній стали поширювати спеціальне доповнення ( patch ) , що усуває цей недолік. У результаті Microsoft зупинила свою підтримку Java на версії 1.1 , яка на даний момент є застарілою і не має багатьох корисних можливостей. Це , в свою чергу , практично зупинило широке поширення аплетів , крім випадків або зовсім нескладною функціональності (типу біжучого рядка або діалогу з декількома полями введення і кнопками ), або додатків для внутрішніх мереж корпорацій . Для останнього випадку Sun випустив спеціальний продукт Java Plug - in , який вбудовується в MS IE і NN , дозволяючи їм виконувати аплети на основі Java найостанніших версій , причому повну відповідність специфікаціям гарантується (спочатку продукт називався Java Activator і вперше був оголошений 10 грудня 1997 ) . На даний момент Microsoft то включає , то виключає Java зі своєї операційної системи Windows XP , мабуть, намагаючись знайти найвигідніший для себе варіант .

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

платформа Java

Отже , Java володіє довгою і непростою історією розвитку, однак настав час розглянути , що ж вийшло у творців , якими властивостями володіє дана технологія .

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

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

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

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

Багато розробники спочатку жорстко критикували сміливий гасло Sun " Write once , run everywhere " , виявляючи все більше і більше невідповідностей і нестиковок на різних платформах. Однак треба визнати , що вони просто були занадто нетерплячі. Java тільки з'явилася на світ , а перші версії специфікацій були недостатньо вичерпними.

Дуже скоро фахівці Sun дійшли висновку , що просто вільно публікувати специфікації ( що вже робилося задовго до Java) недостатньо. Необхідно ще й створювати спеціальні процедури перевірки нових продуктів на відповідність стандартам. Перший такий тест для JVM містив всього близько 600 перевірок , через рік їх число зросло до десяти тисяч і відтоді весь час збільшується (саме його свого часу не зміг пройти MS IE 4.0) . Безумовно , автори віртуальних машин весь час вдосконалювали їх , усуваючи помилки і оптимізуючи роботу. Все-таки будь-яка, навіть дуже добре задумана технологія вимагає часу для створення високоякісної реалізації . Аналогічний шлях розвитку зараз проходить Java 2 Micro Edition ( J2ME) , але про це пізніше.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]