Internet і поява мови Java

Наступним рівнем на сходах прогресу мов програмування стала мова Java, яка спочатку називалася Oak (у перекладі з англ. "дуб"). Робота над її створенням почалася в 1991 році в компанії Sun Microsystems. Основною рушійною силою розробки Java був Джеймс Гослінг (James Gosling).

Java - це структурна об'єктно-орієнтована мова програмування, синтаксис і принципи якої "родом" з C++. Своїми новаторськими аспектами Java зобов'язана не стільки прогресу в мистецтві програмування (хоча і це мало місце), скільки змінам в комп'ютерному середовищі. Ще до настання ери Internet більшість програм писалися, компілювалися і призначалися для виконання з використанням певного процесора і під управлінням конкретної операційної системи. Не дивлячись на те що програмісти завжди прагнули робити свої програми так, щоб їх можна було застосовувати неодноразово, можливість легко переносити програму з одного середовища в іншу не була ще досягнута, до того ж проблема переносимості постійно вікладалися, вирішувалися ж більш насущні проблеми. Проте з появою всесвітньої мережі Internet, в якій виявилися зв'язаними різні типи процесорів і операційних систем, стара проблема портативності заявила про себе вже в повний голос. Для її вирішення знадобилася нова мова програмування, і нею стала Java

Цікаво відзначити, що, хоча єдиним найбільш важливим аспектом Java (і причиною швидкого визнання) є можливість створювати на ній кросплатформений (сумісний з декількома операційними середовищами) переносимий програмний код, вихідним імпульсом для виникнення Java стала не мережа Internet, а наполеглива потреба у незалежній від платформи мові, яку можна було б використовувати в процесі створення програмного забезпечення для вбудованих контролерів. У 1993 році стало очевидним, що проблеми міжплатформеної переносимості, що чітко виявилися при створенні коду в вбудованих контролерів, також виявилися актуальними при спробі написати код для Internet. Адже Internet - це величезне комп'ютерне середовище, в якому "мешкає" безліч комп'ютерів різних типів. І виявилось, що одні і ті ж методи вирішення проблеми переносимості в малих масштабах можна успішно застосувати і до набагато більших, тобто в Internet У Java переносимість досягається за допомогою перетворення вихідного коду програми в проміжний код, що іменується байт-кодом), тобто машинно-незалежний код, що генерується Java-компілятором. Байт-код виконується віртуальною машиною Java (Java Virtual Machine - JVM) - спеціальною операційною системою. Отже, Java-программа могла б працювати в будь-якому середовищі, де доступна JVM. А оскільки JVM відносно проста для реалізації, вона швидко стала доступною для великої кількості середовищ.

Використання Java-програмами байт-коду радикально відрізняло їх від С- і С++-програм. Якщо С/С++-программу потрібно виконати в іншій системі, її необхідно перекомпілювати в машинний код, відповідний цьому середовищу. Отже, аби створити С/С++-програму, призначену для виконання в різних середовищах, необхідно мати декілька різних виконуваних (машинних) версій цієї програми. Це було непрактично і дорого. І навпаки, використання для виконання Java-программ проміжної мови було елегантним і рентабельним рішенням. Саме це рішення було адаптоване для мови С#.

СТВОРЕННЯ С#

Розробники Java успішно вирішили багато проблем, пов'язаних з переносимістю в середовищі Internet, але далеко не всі. Одна з них - міжмовна можливість взаємодії (cross-language interoperability) програмних і апаратних виробів різних постачальників, або багатомовне програмування (mixed-language programming). В разі вирішення цієї проблеми програми, написані на різних мовах, могли б успішно працювати одна з іншою. Така взаємодія необхідна для створення великих систем з розподіленим програмним забезпеченням (ПЗ), а також для програмування компонентів ПЗ, оскільки найціннішим є компонент, який можна використовувати у широкому діапазоні комп'ютерних мов і операційних середовищ.

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

Аби задовольнити ці потреби, Microsoft розробила мову С#, С# була створена в кінці 1990-х років і стала частиною спільної.NET-стратегії Microsoft. Вперше вона побачила світло як альфа-версія в середині 2000 року. Головним архітектором С# був Андерс Хейлсберг (Anders Hejlsberg) - один з провідних фахівців в області мов програмування, що отримав визнання у всьому світі. Досить сказати, що в 1980-х він був автором успішного продукту Turbo Pascal, витончена реалізація якого встановила стандарт для всіх майбутніх компіляторів.

Рис. 1. Розвиток мов програмування.

С# безпосередньо пов'язаний із С, C++ і Java. І це не випадково. Ці три мови - найпопулярніші і найулюбленіші мови програмування в світі. Більш того, майже всі професійні програмісти сьогодні знають С і C++, і більшість знає Java. Оскільки С# побудований на міцному, зрозумілому фундаменті, то перехід від цих "фундаментальних" мов до "надбудови" відбувається без особливих зусиль з боку програмістів. Оскільки Андерс Хейлсберг не збирався винаходити нову мову, він зосередився на введенні удосконалень.

Прамовою С# є мова С. Від С мова С# успадкувала синтаксис, багато ключових слів і оператори. Крім того, С# побудований на покращеній об'єктній моделі, визначеній в C++.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: