Поиск по базе сайта:
Історія створення icon

Історія створення

Реклама:



Скачати 146.12 Kb.
НазваІсторія створення
Дата конвертації22.11.2012
Розмір146.12 Kb.
ТипДокументи

Мова JAVA.

Створення мови Java — це дійсно один із самих значних кроків вперед в області розробки середовищ програмування за останні 20 років. Мова HTML (Hypertext Markup Language — мова розмітки гіпертексту) була необхідна для статичного розміщення сторінок у "Всесвітній павутині" WWW (World Wide Web). Мова Java потрібна була для якісного стрибка в створенні інтерактивних продуктів для мережі Internet.

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

• Java надає для широкого використання свої аплети (applets) — невеликі, надійні, динамічні, що не залежать від платформи активні мережеві програми, що вбудовуються в сторінки Web. Аплети Java можуть надбудовуватися і поширюватися споживачам з такою ж легкістю, як будь-які документи HTML

• Java вивільняє міць об'єктно-орієнтованої розробки програм сполучаючи простий і знайомий синтаксис з надійним і зручним у роботі середовищем розробки. Це дозволяє широкому колу програмістів швидко створювати нові програми і нові аплети.

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

Давайте ближче познайомимося з усіма цими трьома аспектами, але спочатку - історія створення.

Історія створення

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

Народженню мови Java передувала досить цікава історія V !990 році розроблювач 110 компанії Sun Microsystems Патрік Нотон {Patrick Naughton) зрозумів, що йому набридло підтримувати сотні різних інтерфейсів програм, використовуваних у компанії, і повідомив виконавчому директору Sim Microsystems і своєму другу Скоттові Макнілі (Scott McNeaty) про свій намір перейти працювати в компанію NeXT. Макнілі, у свою чергу, попросив Нотона скласти список причин свого невдоволення і висунути таке рішення проблем, як якби він був Богом і міг виконати усе, що завгодно .

Нотон, хоча і не розраховував на те, що хтось зверне увагу на його лист, усе-таки виклав свої претензії, нещадно розкритикувавши недоліки Sun Microsystems, зокрема, розроблювальну в той момент архітектуру ПО NeWS. До подиву Нотона, його лист мав : успіх він був розісланий всім провідним інженерам Sun Microsystems, що не забарились відгукнутися і висловити гарячу підтримку своєму колезі і схвалення його поглядів на ситуацію в Sun Microsystems. Звертання викликало схвалення й у вищого керівництва компанії, а саме, у Білла Джоя (ВШ Joy), засновника Sun Microsystems, і Джеймса Гослінга {James Gosling), начальника Нотона.

У той день, коли Нотон повинний був піти з компанії, було прийняте рішення про створення команди ведучих розроблювачів для того, щоб вони робили що завгодно, але створили щось незвичайне. Команда із шести чоловік приступила до розробки нового об’єктно-орієнтованої мови програмування, що була названа Oak (дуб), на честь дерева, що росло під вікном Гослінга.

Незабаром компанія Sun Microsystems перетворила команду Green у компанію First Person. Нова компанія мала найцікавішу концепцію, але не могла знайти їй придатного застосування Після ряду невдач зненацька ситуація для компанії різко змінилася: був анонсований браузер Mosaic - так народився World Wide Web, з якого почався бурхливий розвиток Internet. Нотон запропонував використовувати Oak у створенні Internet додатків. Так Oak став самостійним продуктом, незабаром був написаний Oak-компілятор і Oak-браузер "WebRunner". У 1995 році компанія Sun Microsystems прийняла рішення оголосити про новий продукт, перейменувавши його в Java (єдине розумне пояснення назві - любов програмістів до кави). Коли Java виявилася в руках Internet, стало необхідним запускати Java-аплети - невеликі програми, що завантажуються через Internet. WebRunner був перейменований у HotJava, і компанія Netscape стала на підтримку Java-продуктів.

Безпечність.

World Wide Web висунула Java на передній край програмування, і Java, в свою чергу, сильно вплинула і навіть змінила обличчя Internet, розширивши спектр об'єктів, які можуть розповсюджуватись у кіберпросторі. Програми нової форми - аплети - завантажуються з віддаленого сервера і можуть запускатися динамічно, тобто без участі користувача. До появи Java такий підхід був неприпустимий з міркувань безпеки та переносимості. В архітектурі аплетів зроблено ряд штучних обмежень, які роблять їх цілком безпечними. Перш за все, Java є інтерпретованою мовою і простір ресурсів Java-програми обмежений так званою віртуальною Java-машиною (VJM), яка може контролювати поведінку програми і захищати систему від побічних ефектів, які можуть виникати з вини аплета. Крім того, в мові Java є додаткові обмеження, які не дозволять аплету стати «троянським конем». Зокрема, Java-аплет не може отримати доступ до локального жорсткого диску. При такій спробі генерується виключна ситуація.

Ефективність.

Оскільки аплети Java інтерпретуються, а не компілюються, то їх виконання на різних платформах значно полегшується. В цьому випадку достатньо створити для кожної платформи виконуючу Java-систему. Якщо існує така система для даної операційної системи, то будь-яка Java-програма може виконуватись в даному середовищі без додаткової компіляції на цій платформі. Проте Java не є інтерпретованою мовою в чистому розумінні. Програма на Java компілюється. Результатом роботи компілятора Java є байткод (bytecode). Байткод - це оптимізований набір команд, призначений для виконання уявним пристроєм - віртуальною Java-машиною. В такий спосіб витрати на інтерпретацію зводяться до мінімуму, оскільки байткод вже є оптимізованим, і досягається досить висока продуктивність Java-програм. Наведені вище особливості дають підставу розглядати Java не як ще одну мову програмування, а як окрему інформаційну технологію. Таким чином інтерпретація - це найлегший шлях до перенесення програм реалізований в Java технології. Незважаючи на те, що мова Java була розроблена в розрахунку на інтерпретацію, технічно немає нічого такого, що б перешкоджало компіляції байткоду в виконуваний код. До байткоду, який пересилається по мережі, застосовується динамічна компіляція, але це ніяк не впливає на переносимість та безпеку, оскільки роботу програми все ще контролює виконуюча система. Такий підхід застосовано в багатьох виконуючих система Java, що забезпечує продуктивність на рівні оптимізованого коду C++.

Мова Java є однією з наймолодших в сімействі мов програмування і була розроблена з розрахунку на те, щоб професійний програміст міг легко її опанувати та ефективно використовувати. За основу Java взятий синтаксис С++ - безсумнівно однієї з найбільш популярних мов програмування сучасності. Проте, Java - це цілком самостійна мова програмування, і при її створенні не шилося про будь-яку сумісність з C++. Тому деякі механізми реалізовані в Java інакше, а деякі зовсім відсутні. Ідеологічно ж Java побудована дещо інакше ніж C++. Розробники Java ґрунтувалися на досвіді розробки програм на C++ і прагнули позбутися можливостей, які зарекомендували себе непевними. Так, в Java відсутнє перевантаження операторів а також автоматичне приведення несумісних типів - конструкції, які при неуважному використанні е джерелом важких для виявлення помилок. Взагалі, інтерфейси Java більш прості та прозорі для розуміння. Написати на Java програму з графічним інтерфейсом значно легше. Звичайно, простота інтерфейсів компенсується меншою гнучкістю, бібліотека Java не така багата, як стандартні бібліотеки C/C++. Але згадаймо, що Java задуманий для використання на різних платформах і тому реалізує в собі найбільш стандартні можливості задля легшої адаптації під конкретне середовище.

^ Об'ектно-орієнтована спрямованість.

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


^ Доступність Інструментарію та ефективність розробок.

Зазначена вище простота програмування на Java є причиною того, що розробки на Java коштуватимуть дешевше аналогічних на більш потужних мовах програмування. Цьому ж сприяє і переносимість програм на Java, оскільки ліквідуються витрати пов'язані з адаптацією програми на конкретній платформі До того ж інтегровані програми-оболонки для розробки Java програм коштують набагато дешевше ( 70-100$ ) ніж аналогічні продукти C++, Delphi ( 1000$). А набір інструментарію для пакетної компіляції Java програм JDK. (Java Development Kit) є взагалі freeware. Тому платформу Java можна рекомендувати як ідеальну для створення некомерційних програмних продуктів, зокрема для галузі освіти.

^ Багате об'єктне середовище

Середовище Java — це щось набагато більше, ніж просто мова програмування. У неї убудований набір ключових класів, що містять основні абстракції реального світу, з яким прийдеться мати справа вашим програмам. Основою популярності Java є убудовані класи-абстракції, що зробили його мовою, дійсно незалежним від платформи. Бібліотеки, подібні MFC/COM, OWL, VCL, NeXTStep, Motif і OpenDoc прекрасно працюють на своїх платформах, однак сьогодні головною платформою стає Internet.

^ Стійкість до помилок.

Багатоплатформеність середовища Web висуває надзвичайно високі вимоги до надійності програм. Як наслідок, при розробці Java пріоритет був відданий можливості створення стійких до помилок програм. Java звільняє програміста від хвилювань з приводу багатьох поширених причин, які викликають помилки програмування. Як вже згадувалося, Java є строго типізованою мовою програмування. Ще виконуюча система Java бере на себе «прибирання сміття», тобто автоматично звільняє пам'ять, яка була розподілена динамічно. Звичайно, це дещо знижує ефективність коду, але запобігає типових помилок, коли програміст забуває звільнити виділену пам'ять, або, навпаки, звільняє пам'ять, яка ще використовується. Java підтримує об'єктно-орієнтовану обробку виключних ситуацій подібно до С++. Але на відміну від С++ в Java обробка виключних ситуацій є обов'язковою. Тобто неможливо скомпілювати програму, яка відкриває файл, не обробивши можливі помилки типу «файл не знайдено», які виникають при цьому7. Добре написана Java-програма може сама обробляти всі помилки часу виконання.

^ Підтримка багатопоточності.

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

^ Незалежність від архітектури.


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

^ Переваги інтерпретованості в поєднанні з високою продуктивністю.

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

Розподіленість.


Мова Java призначена для створення програм, які працюють в розподіленому середовищі Internet на базі протоколів TCP/IP. Насправді доступ до ресурсів за допомогою L1RL відрізняється від доступу к файлу. Крім того в Java наявний засіб передачі повідомлень в межах внутрішнього адресного простору. Це дозволяє забезпечити віддалене виконання процедур. Ці інтерфейси включені у пакет RMI (remote metod invocation). Цей засіб привносить високий рівень абстракції в програмування для середовища клієнт/сервер.

Java-програми несуть у собі значний обсяг інформації про типи часу виконання (run-time type information), яка використовується для дозволу доступу до об'єктів під час роботи програми. Це дозволяє забезпечити безпечну та оптимальну динамічну компоновку. В такий спосіб досягається захищеність середовища виконання аплетів.

У реалізації Java 1.1.6 знаходиться 23 пакета (у Java 1.0.2 їх було 8), а кількість класів - 503 (211).

^ Таблиця 1

Пакети Java API


Ім'я пакета

Вміст

java.applet

Класи для реалізації аплетів

java.awt

Класи для роботи з графікою, текстом, вікнами і GUI

java.awt.datatransfer

Класи для забезпечення передачі інформації (Copy/Paste)

java.awt.event

Класи й інтерфейси для обробки подій

java.awt.image

Класи для обробки зображень

java.awt.peer

GUI для забезпечення незалежності від платформи

java.beans

API для моделі компонентів JavaBeans

java.io

Класи для різних типів уведення-висновку

java.lang

Класи ядра мови (пати, робота з рядками, тригонометричні функції, обробка виключень, легковаї і процеси)

java.lang.reflect

Класи Reflection API

java.math

Класи для арифметичних операцій довільної точності

java.net

Класи для роботи в мережі Інтернет (сокети, протоколи, URL)

java.rmi

Класи, зв'язані з RMI (вилучений виклик процедур)

java.rmi.dgc

Класи, зв'язані з RMI




java.security

Класи для забезпечення безпеки


java.security.асl

Класи для забезпечення безпеки

java.security.interfaces

Класи для забезпечення безпеки

java.sql




java.text

Класи для забезпечення багатомовної підтримки

java.text.resources

Класи для забезпечення багатомовної підтримки

java.util

Різноманітні корисні типи даних (стеки, словники, хеш-таблиці, дати, генератор випадкових чисел)

java.util.zip

Класи для забезпечення архівації



Реклама:

Схожі:




База даних захищена авторським правом ©lib.exdat.com
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації