Информационные технологииStfw.Ru 🔍

Моя первая Java-программа

🕛 27.10.2006, 12:26
по материалам еженедельника "Софтмаркет".

Моя первая Java-программа

Учебные курсы

Совсем недавно мне представилась счастливая возможность поближе познакомиться с языком и технологией Java, той самой, которая, судя по заявлениям фирмы Sun Microsystems, может в ближайшие годы произвести форменный переворот в мире ПО. 2 апреля фирма REDLAB специально для прессы организовала небольшие (несколько часов) курсы по Java, приуроченные к началу их чтения в учебном центре фирмы. Как заверил Игорь Терехов, коммерческий директор REDLAB, журналисты стали первыми слушателями этих курсов.

Собственно, курсов по Java два:

  • "Введение в язык Java" (был нам предложен в сокращенном варианте) и
  • "Углубленное изучение языка Java"

Оба они авторизованы фирмой Sun Microsystems и слушатели, успешно закончившие обучение, по окончании курсов будут получать ее сертификаты.

Компьютерная пресса уже довольно много писала о языке Java (например, в "SM" N 11/1996) и я позволю себе не останавливаться на общем описании языка и технологии Java, остановившись главным образом на концепции программирования на этом языке и на том новом, что удалось узнать в ходе семинара.

Java-программирование

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

Так, одной из центральных идей 70-х - начала 80-х годов была идея переносимого интерпретируемого кода, названная концепцией P-System. Она была реализована, но в силу низкой эффективности интерпретации не получила широкого распространения. Создатели языка Java решили вернуться к ней, основываясь на более эффективном, как они считают, кодировании и на базе нынешних высокопроизводительных аппаратных платформ. Их "детище", интерпретатор языка Java, получило название Java Virtual Machine ("виртуальная Java-машина").

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

Думается, производительность Java-интерпретаторов можно будет существенно повысить, если удастся уменьшить число уровней вложенности. Правда, для этого, по всей видимости, потребуется смена концепции сетевого ПО, которая, вероятно, коснется отхода от ОС UNIX и/или идеологии программ просмотра WWW (ввиду популярности WWW и судорожных поисков концепции сетевого компьютера последнее видится менее вероятным) в пользу систем, целиком основанных на идеологии Java.

Пока же идеология программирования на языке Java выглядит следующим образом. В распоряжении разработчика имеется инструментальный пакет Java Developer's Kit (JDK), разработанный специалистами Sun Microsystems для платформ Solaris, AIX, Irix, Linux, OS/2, Windows 95, Windows NT и Macintosh. Свои средства разработки программ на языке Java недавно анонсировали фирмы Borland, Symantec и Silicon Graphics.

Отсутствие Java-инструментария для Windows 3.x, вероятно, огорчит поклонников этой операционной оболочки. Насколько мне известно, Java-интерпретаторов для Windows 3.x пока вообще нет - главным образом из-за применяемой в ней сегментированной модели памяти и неразвитости средств асинхронного ввода/вывода в Windows 3.x, которые делают реализацию многопоточности и сборки мусора крайне затруднительной.

В распоряжении собравшихся на первые пробные курсы по Java был инструментарий JDK для ОС Solaris. Следуя рекомендациям нашего заботливого инструктора, мы набрали в текстовом редакторе традиционную для изучающих новый язык программу "Hello, World!". Вот как она выглядела:


class HelloWorldApp { // название класса public static void main( String args[] ) { // метод класса System.out.println( "Hello, World!" ); }
}

Код получился намного меньше, чем потребовала бы, скажем, Windows, но, хочу еще раз заметить, благодарить за это преимущество следует не столько язык Java, сколько Java-технологию. Если технология виртуальных машин изменится, то объем кода также может сильно измениться.

Итак, мы набрали программу, записали ее в файл с именем, совпадающим с названием класса, и с расширением .java (еще одна прихоть технологии: в файле следует хранить всего один класс). Затем мы запустили компилятор javac, который создал для нас файл с байт-кодом HelloWorldApp.class, после чего с помощью программы java мы запустили его на выполнение и, как и следовало ожидать, на стандартном потоке вывода получили желаемое приветствие.

Затем Игорь Виноградов предложил нам написать более интересную программу, которая могла бы использовать возможности графики. Мы модифицировали программу, дополнив ее вызовами из соответствующих библиотек:


import java.applet.*;
import java.awt.*;

public class HelloWorld extends Applet { Font font; // объявление переменных-объектов Color color; public void init() { // создание и инициализация объектов font = new Font("TimesRoman", Font.BOLD + Font.ITALIC, 24 ); color = new Color( 16, 120, 0 ); } public void paint( Graphics g ) { // реальные действия g.setFont( font ); g.setColor( color ); g.drawString( "Hello, World!", 20, 30 ); }
}

Для запуска этой программы потребовался небольшой файл на языке HTML:

A Simple Program
Here is the output of my program:

Наиболее существенной частью этого файла был вызов Java-приложения на исполнение. Внутри операторных скобок мы указали имя файла, содержащего код приложения, и размер графического окна на гипертекстовой странице. После этого мы запустили программу HotJava, служащую для просмотра WWW и интерпретации байт-кода Java, и получили приветствие, начертанное красивым шрифтом внутри гипертекстовой cтраницы.

Сразу оговорюсь: простота этих программ - это свойство той части айсберга, которую довелось увидеть. Мы не рассматривали особенностей построения интерактивных приложений, поэтому оценить трудоемкость их создания пока что не было возможности.

Мое первое впечатление относительно Java таково: язык является довольно простым, возможно, несколько проще, чем C, C++ или объектный Pascal, причем простота программирования на этом языке во многом обусловлена особенностями нынешней среды Java-интерпретатора, для которой и пишутся Java-программы. Вероятно, разработчикам программ на языке Java станет полегче, когда ведущие производители инструментального ПО предложат средства визуального программирования. В том, что такие работы уже ведутся, думаю, можно не сомневаться.

Михаил Зырянов

Java   Теги:

Читать IT-новости в Telegram

Читайте также:

.NET vs. Java

Java

Мой первый Java-скрипт

Информационные технологии
Мы в соцсетях ✉