дружественная ява ЕВГЕНИЙ AKA SATURN Спецвыпуск: Хакер, номер #065, стр. 065-038-1 (SATURN@LINKIN-PARK.RU; ICQ 587692) ЗАВОЮЕТ ЛИ JAVA МИР ПЕРСОНАЛЬНЫЕ КОМПЬЮТЕРЫ И ТЕЛЕВИЗОРЫ, МОБИЛЬНЫЕ ТЕЛЕФОНЫ И ПРОМЫШЛЕННЫЕ СЕРВЕРЫ, ГЕОСТАЦИОНАРНЫЕ СПУТНИКИ И СМАРТ-КАРТЫ… РАЗНООБРАЗИЕ УСТРОЙСТВ ОГРОМНО. ЕДИНСТВЕННОЕ, ЧТО ОБЪЕДИНЯЕТ ИХ — ТО, ЧТО ОНИ ОТНОСЯТСЯ К СФЕРЕ ПРИМЕНЕНИЯ JAVA Почему же язык Java стал завоевывать мир с такой потрясающей скоростью? Если десять лет назад со словом «Java» ассоциировалось в первую очередь слово «остров», то сейчас с «Java» ассоциируется, конечно, платформа от Sun Microsystems. Что же произошло за последние десять лет в сфере ИТ и что может измениться в будущем, если эта технология продолжит развиваться так же бурно? Случилось то, что люди описывают емкой фразой «Мир изменился». Сетевые технологии распространились повсеместно. Сегодня мы не можем представить себе компьютер без Сети так же, как и жизнь без компьютера. Интернет добрался до мобильных телефонов, телевизоров и улиц города. Чтобы понять, почему Java распространилась настолько широко, переместимся в 1994 год. Компьютеры уже достаточно мощные, но еще нет интернета в его современном виде, привычном для нас. Есть несколько операционных систем, и каждая из них представляет собой замкнутую систему в смысле прикладного программирования. Есть широкий выбор бытовой электроники, но каждая модель построена на собственной архитектуре и элементной базе. В Sun Microsystems возникает проект создания программного обеспечения для различных бытовых приборов. Начав реализацию на C++, компания столкнулась с проблемой несовместимости архитектур. В рамках традиционных языков программирования приходилось компилировать программы отдельно под каждую архитектуру, причем если производитель выпускал новую модель с небольшими изменениями по сравнению с предшествующими продуктами, приходилось переписывать приложение заново. Кроме того, поддержка сотен различных интерфейсов — очень трудоемкое и дорогое занятие. Чтобы преодолеть подобные трудности, специалисты Sun пошли по пути создания нового языка программирования. В него были заложены принципы платформонезависимости, многопоточности, объектной ориентации. «Написано однажды — работает везде», — вот девиз Java. Как известно, программа, написанная на одном из языков высокого уровня (так называемый исходный модуль), не может быть выполнена сразу. Сначала производится процесс компиляции, то есть перевод в последовательность машинных команд — объектный модуль, и часто конечный результат получают даже не на этом этапе. Далее необходимо скомпоновать полученный кусок машинных кодов с библиотеками функций, используемых в модуле, и разрешить перекрестные ссылки между секциями. В результате мы получаем загрузочный модуль — готовую к выполнению программу. Поскольку Java является языком высокого уровня, ему не чуждо ничто из названного мной. Однако для реализации принципа многоплатформенности в языке применяется элемент, отсутствующий в «классических» языках, — виртуальная машина. [виртуальная машина Java (JVM)] — это краеугольный камень Java, это компонент, отвечающий за межплатформенную доставку, малый размер компилированного кода и возможность Java защитить пользователей от вредоносных программ. Это абстрактная вычислительная машина, она имеет набор инструкций и использует различные области памяти. Итак, JVM выполняет функцию «промежуточного слоя» между пользовательской программой и аппаратной платформой. |