Преображение Java

Язык программирования и технология Java покидают колыбель. Поносившись в воздухе в виде идеи, став для некоторых религией, Java наконец готовится к реальному воплощению. Исследования, ведущиеся многими компаниями, свидетельствуют об интересе к Java со стороны тех, кто действительно может что-то сделать, и прочат неплохое будущее.

Разрабатывается аппаратура Java. Так, Sun Microsystems опубликовала спецификации ядра picoJava, которое ляжет в основу ее первого специализированного Java-процессора. Реализация JVM (виртуальной машины Java) на аппаратном уровне увеличит скорость работы Java раз в десять. Параллельно Sun работает над включением в JVM приобретенной вместе с фирмой Longview Technologies технологией HotSpot, которая профилирует Java-программу и компилирует критичные по скорости фрагменты, интерпретируя все остальное.

В исследовательской лаборатории Т.Дж.Томпсона под крышей IBM готовится прототип VLIW-микропроцессора, исполняющего Java-код. Архитектура VLIW (Very Long Instruction Word) предусматривает распараллеливание вычислений не на этапе выполнения, как это делается в сложных модулях конвейеризации и предсказания в традиционных процессорах CISC и RISC, а во время составления кода. Это позволяет значительно упростить устройство процессора за счет усложнения разработки компиляторов. Разрабатываемый в IBM чип будет компилировать байт-код Java в архитектуру VLIW, что позволит программистам разрабатывать на объектно-ориентированном языке высокого уровня программы, работающие со скоростью написанных на ассемблере.

С другой стороны, компании Symantec и Microsoft работают над компиляторами Java для процессоров X86. Компилятор Symantec уже готов, он будет включен в состав сред разработки Visual Cafe 2.0 и Cafe Pro 2.0 для Java. По словам представителей компании, компилятор будет выдавать готовые к запуску под Windows-программы, скорость работы которых будет на 25-30% выше скорости, предлагаемой JIT-компиляторами. Компиляторы JIT (just-in-time) преобразуют программы на Java в собственный код процессора на лету, позволяя добиться ускорения по сравнению с традиционной интерпретацией, при этом, однако, увеличивая требования программы к памяти.

Microsoft пока не открыла своих планов в данной области, сообщив только, что завела группу, разрабатывающую оптимизирующий компилятор Java для X86. Похоже, не слишком успешно, и уж точно не быстро.

 

Все эти компиляторы и специализированные процессоры сводят демократичность Java к цитате из "Скотного двора" Дж.Оруэлла: "Все животные равны, но некоторые равнее". Шумиха, раздутая вокруг кросс-платформности Java, позволяющей писать приложения один раз для запуска на любом компьютере, затихает. Приходит время признать, что Java - всего лишь очередная технология, предлагающая определенные преимущества и налагающая свои ограничения.

Java - хороший язык программирования, проще C++ и мощнее Бейсика. При этом стандартные библиотеки Java, которые в свое время были так важны для Си и от отсутствия которых так пострадал Паскаль, еще до конца не проработаны, то есть попросту недоделаны.

Байт-код Java - элегантный промежуточный слой между компиляцией и интерпретацией, позволяющий создавать действительно переносимые программы. Ходят слухи о разработке компиляторов таких специфических языков, как Лисп и Оберон, на Java-код - заманчивая перспектива для языковых меньшинств вроде программистов искусственного интеллекта или фанатов Форта.

Идеи, использованные в Java, не были революционными на момент его создания, они просто были лучшими, результатами новейших исследований в области программного обеспечения. Революционным было признание, которое получили все эти технологии, собранные вместе. Агитация, развернутая парнями из JavaSoft, упала на благодатную почву - после взрыва под названием Internet мир был готов принимать перемены, а профессора искали замену устаревшему, но все еще популярному Си. Я не думаю, что Java войдет в каждый утюг, но мир с этой технологией выглядит лучше, чем без нее.

Дмитрий БОРОДАЕНКО

Версия для печатиВерсия для печати

Номер: 

41 за 1997 год

Рубрика: 

Технологии программирования
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!