`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Что для вас является метрикой простоя серверной инфраструктуры?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Оды о Java

+11
голос

Невозможно четко определить момент когда над миром программного обеспечения безраздельно воцарилась Microsoft. Но с той поры не проходило и дня без разговоров о необходимости свержения компьютерного монарха и провозглашении республики. Распускались слухи о несостоятельности его продуктов (зачастую вполне достоверные). плелись интриги и сколачивались заговоры. И вот впервые за многие годы у компьютерной "фронды" появилось знамя — Java.

Я ПОМНЮ ЧУДНОЕ МГНОВЕНЬЕ,
ПЕРЕДО МНОЙ ЯВИЛАСЬ ТЫ...

Дело было в Sun Microsystems. Там вовсю велись работы над универсальной технологией для управления бытовыми устройствами и телеприставками. Не совсем понятно, зачем для этого было создавать могучий объектно-ориентированный язык программирования. Так или иначе, первая попытка тогда потерпела неудачу Может быть, все дело было в названии языка — Oak (дуб — англ ). Ну как заставить привередливых заказчиков поверить в будущее этого языка, если это даже «дубом» в их головы не вобьешь?

Рабочая группа практически распалась, заказчики откланялись. Остались фанаты своего дела, которые продолжали разработки в свободное время. Час был поздний, и рука утомленного программиста то и дело тянулась к кофейной чашке.. Так родилось новое название — Java (известный сорт кофе). По крайней мере, так гласит красивая корпоративная легенда.

Как нельзя кстати пришелся бурный рост Web-технологий. Позиционировав Java как средство украшения, а затем и интерактивности Web-страниц, разработчики получили долгожданное признание и даже славу. Быстрорастущая компания Netscape первой встроила Java в свой броузер. Впервые Java был применен при создании простенькой анимации, которая и сейчас пользуется заслуженной популярностью. Постепенно возрос интерес к интерактивным возможностям языка: с помощью Java стали формировать динамические страницы, появились Java-игры и даже проекты серьезных программных пакетов, сопоставимых по возможностям с Microsoft Office.

Java

И наконец, пробил золотой час Java. В Sun Microsystems создали дочернюю компанию JavaSoft, которая отныне занимается всем, что связано с Java. Так. компания Sun, специализирующаяся исключительно на производстве оборудования, совершила масштабный прорыв в сферу программного обеспечения. Неудачные попытки перетащить весь компьютерный мир под Unix остались в прошлом — вторая волна Sun накрыла всех с головой!

Сегодня разработано огромное количество средств анимации для Java, а фирма Corel даже предлагает сделать его стандартом векторной графики в Internet. Эта технология, получившая название Barista, генерирует Java-апплет воспроизводящий на экране векторное изображение. Эго значительно экономнее, чем использовать растровую графику, ведь при загрузке файлов из Internet пользователь очень тонко «чувствует» лишние килобайты.

Я JAVA БЫ ВЫУЧИЛ ТОЛЬКО ЗА ТО...

В основе Java-технологии лежит новый язык программирования, который обладает двумя уникальными свойствами.

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

Второе — было сказано категорическое «нет» работе с компьютерной периферией напрямую, минуя специально разработанные для этого интерфейсы. Подобная практика процветала в эпоху DOS, породив множество проблем совместимости программ. Вот почему фраза «IBM-совместимый компьютер» постепенно сошла на нет: из-за ориентации программы на какое-либо специфическое оборудование подобный логотип не является гарантией переносимости программы с компьютера А на компьютер Б. Windows слегка исправила положение, но подход Java несравненно более универсален.

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

Еще одно очень важное свойство Java — насыщенность языка стандартными библиотеками. Java часто норовят сравнить с C++, а это в корне неверно! А впрочем никто особенно и не скрывает, что Java — это в чем-то упрощенный, а в чем-то и усовершенствованный С++. Но это касается только управляющих конструкций, реализации объектно-ориентированного подхода Дальше — пропасть.

Ведь в свое время популярность С и его потомка C++ была основана на их открытости, доведенной до последней черты, — ведь даже средств ввода/вывода в языках нет! Все реализовано через внешние библиотеки, некоторые из них являются стандартными, а подавляющее большинство — продукт свободного творчества и фантазии миллионов программистов. В итоге, высказывание «Я программирую на C++» никому ни о чем не говорит — важно знать, под какую платформу, для каких целей и использованием каких дополнительных средств. А высказывание «Я программирую на C++ только стандартными средствами» может принадлежать разве что студенту первокурснику — настолько скудны эти самые средства.

Создатели нового языка свято верят, что люди, знающие Java, станут программистской элитой будущего. Единственное, что им нужно будет знать, — это один великий язык, который будет делать все. Эта грандиозная идея не нова: был ведь PL/1, был трагически не понятый в свое время SmallTalk. Если язык действительно призван контролировать все важные сферы программирования, а не остаться историческим курьезом, нужна титаническая работа по интеграции в него все новых и новых библиотечных функций (это я по старинке, теперь вместо функций — классы, интерфейсы и прочее). Это понимают и в JavaSoft и дописывают все новые и новые пакеты функций, которые уже сегодня выглядят весьма внушительно: тут и пользовательский интерфейс, и графика, и работа с базами данных, и, разумеется, Internet. Планы по расширению этих интерфейсов строятся просто наполеоновские.

ОТКРЫЛАСЬ JAVA ЗВЕЗД ПОЛНА,
ЗВЕЗДАМ ЧИСЛА НЕТ, JAVA — ДНА!

Что привлекает в Java современного программиста, кроме богатства библиотек классов? Во-первых, Java — язык новый и потому свободный от груза ненужных возможностей, Java поддерживает исключительно объектно-ориентированный стиль программирования, и поэтому программисту исповедующему этот стиль, никогда не придется встраивать в свою программу сторонние модули, написанные по-иному.

Во-вторых, весьма удобно реализовано подключение модулей достаточно просто указать имя импортируемого класса. Каждый класс компилируется в отдельных Файл байт-кода с именем, соответствующим имени класса. Правда, это требует файловой системы, поддерживающей длинные имена файлов, впрочем, «последней из могикан» такого рода осталась DOS, и с заменой ее на Windows 95 эти неудобства исчезнут.

И наконец, в-третьих, интерпретация На сегодняшний день Java- самый мощный (в смысле выразительных средств) язык, который допускает интерпретацию, в сочетании с обьектно-ориентированным подходом это позволяет работать в стиле экспериментального программирования, поэтапно, класс за классом создавая системы любой сложности. После создания класса не представляет труда произвести его отладку Когда небольшое количество программистов трудятся над серьезным проектом, метод работы «снизу вверх», т. е, от небольших модулей до сборки всей системы, всегда предпочтительнее. Кроме того, можно использовать хорошо стандартизированные классы, которыми щедро усеяны Java-сайты Internet.

Мир Java-программирования свободный мир Почти все программы доступны с исходными текстами, причем последние хорошо прокомментированы. Многие опытные разработчики охотно делятся с новичками хитростями программирования.

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

Главная проблема Java сегодня не ошибки, а скорость работы Причин несколько: бескомпромиссная кросс-платформенность, интерпретация вместо компиляции и игнорирование индивидуальных особенностей различного оборудования.

Сегодня неплохим способом повышения производительности является технология JIT (Just-In-Time — в нужный момент) Так, при загрузке апплета виртуальная машина переводит его байт-код во внутренний язык процессора. Но если в программе повторяется одна и та же фраза, то переводить ее приходится каждый раз заново. JIT-компилятор делает это лишь когда фраза попадается в первый раз (отсюда и название). В результате работает апплет ничуть не хуже традиционно скомпилированного приложения, слегка задерживается только его загрузка.

Хотите верьте, хотите нет, а спрос на Java-программистов в США сегодня огромен. Когда в Sun решили провести их сертификацию, то многие продемонстрировали весьма поверхностные знания этого языка и никакого сертификата не получили. А ничего, работают...

ЭТУ JAVA НЕ ЗАДУШИШЬ, НЕ УБЬЕШЬ...

В Microsoft давным-давно отработана единственно верная тактика реакции на успехи конкурентов — их просто игнорируют. Надо же такому случиться, чтобы эта в высшей степени верная тактика дала осечку! Java игнорировать уже нельзя Когда Netscape стала делать бешеные деньги на броузерах Internet, создавать конкурирующий продукт без поддержки Java было просто немыслимо. И, о ужас! Пришлось купить у JavaSoft лицензию на Java. Злые языки сразу отметили, что это первый для Microsoft случай, когда лицензия-то куплена, но вместе с ней не приобретена фирма, ее выпустившая!

Пришлось срочно пересматривать свое отношение к Java. Если движение нельзя задавить в зародыше, значит его нужно возглавить. И вот создается одна из самых лучших и быстрых виртуальных машин Java: которая встраивается в Internet Explorer, разрабатываются альтернативные пакеты классов, которые максимально используют преимущества платформы Windows и работают в несколько раз быстрее стандартного пакета AWT (Abstract Windowing Toolkit).

Однако перестаралась свита короля: на одно конструктивное предложение во имя Java следуют несколько залпов тяжелой программистской артиллерии против нее же, Java стала хорошим инструментом для построения Web-апплетов? — Microsoft агрессивно продвигает конкурирующую технологию ActiveX, основанную на OLE2 и Visual Basic Вот тебе и раз! На Java удобно делать динамические Web-страницы? — Билл Гейтс немедленно выступаете предложением о разработке единого стандарта на «динамический HTML», чтобы полностью избежать программирования в подобных задачах. Вот тебе и два! А тем временем миллионы программистов привыкли спрашивать у Гейтса, на какую технологию им ориентироваться в будущем. Представляете, в какой они сейчас растерянности?

А тут еще эта лицензия, будь она неладна! Оказывается, за лицензирование Java мало заплатить, надо еще взять на себя определенные обязательства. А разработка собственных, никак не согласованных с разработчиком стандартов, классов для работы в Windows и, соответственно, отказ от поддержки аналогичных стандартных средств автоматически лишает Microsoft права заявлять о Java-совместимости своих продуктов Судебный иск против Microsoft со стороны Sun оказался весьма некстати, так как Министерство юстиции США почти синхронно с этим начало судебные антимонопольные разборки с империей Билла Гейтса.

Если дымовая завеса не помогает, нужно просто «разгромить» их всех, Гейтс выступает с трибун и критикует Java как вздорную и ничего не стоящую идею. «Они предлагают выбросить все существующее программное обеспечение и создать все с нуля», — с благородным гневом говорит он. Не действует! Разве главная идея Windows не состояла в том. чтобы выбросить старое программное обеспечение и переписать все программы с нуля? И разве идея Windows 95 не состояла в том, чтобы в обмен на более красивые картинки напичкать компьютер дополнительной оперативной памятью и оснастить новыми процессорами (чтобы никто не догадался, насколько медленнее все стало работать)? Сделал сам — не мешай другим!

Осенью прошлого года Билл Гейтс приезжал в Москву. На вопрос о Java бросил вскользь: вот мол просто очередной язык программирования, сколько их уже было, сколько еще будет. А ведь еще совсем недавно подписал нашумевшее «письмо четырех», в котором упрекал Sun: как же так, ведь «Java слишком важен для отрасли, чтобы доверять его разработку одной компании», что нужно сделать Java независимым стандартом и т.п. Так вот, интересно, что же такое Java — то ли он действительно так важен для отрасли или просто очередной язык программирования?

Впрочем, «письмо четырех» для Microsoft было шансом избежать судебного преследования — если сделать Java независимым стандартом, все лицензионные грехи спишутся. Снова неудача: комитет W3C (World Wide Web Consortium) уже почти отказал Sun в праве монопольно разрабатывать Java, как вдруг в момент решающего голосования против подается всего четыре голоса из более чем сорока! Теперь в праве Sun диктовать свое видение Java никто не сомневается.

Любой язык, в принципе, обладает кросс-платфоменностью — напоминает Гейтс. Может быть, это относится к Visual Basic? Пока он «проживает» исключительно под Windows, в будущем перекочует на Macintosh благодаря недавним кросс-лицензионным соглашениям Microsoft и Apple (фактически в Apple пошли на это под давлением обстоятельств). И все: кросс-платформенность не возникает из ничего, нужен интерес широких кругов компьютерной индустрии к новому стандарту. Можно поступить по-другому: подмять рынок под себя и навязать ему некий стандарт, но и называться это будет по-другому, по крайней мере, не кросс-платформенностью.

Опыт продвижения Windows 95, которая стала триумфом Microsoft, поражением конкурентов и вызвала смешанные чувства у пользователей — от робкой надежды на то, что ошибки будут исправлены в следующей версии, до мрачной уверенности, что их количество в будущем будет только нарастать, так вот. этот самый опыт показал: не критикуй конкурента и его продукты, какими бы сырыми и неудачными они ни были Тогда, в 1996 г., конкуренты Microsoft забыли эту прописную истину и проиграли Сейчас ее, похоже, забыл сам Билл [ейтс, но ведь он все-таки Король! Подождем результатов.

Апплеты во сне и на Java’y

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

Можно ли написать плохую программу на Java? Разумеется, апплет может работать медленно и с ошибками — ни один язык программирования от этого не спасает. Но часто встречаются плохие программы другого рода: непонятные, плохо структурированные, оставляющие возможность внесения «сверхтонких» ошибок при их модификации (а возможно, уже содержащие!). Качество Java-программы, с этой точки зрения, будет вполне приемлемым независимо от квалификации программиста. Почему? Чтобы ответить на этот вопрос, следует сравнить Java с его предшественником C++.

ВОЗМОЖЕН ЛИ JAVA-КОНЕЦ ЯЗЫКА C++?

Вопреки распространенному заблуждению, Java не является ни подмножеством, ни надмножеством C++. Эти языки очень похожи, однако в Java есть то. чего нет в C++, и наоборот. Главное отличие — в Java отсутствует возможность работы с произвольной областью памяти. В С, а затем и в C++ эта возможность реализована с помощью указателей, которые из Java попросту убрали. Теперь программист может работать с памятью только как с хранилищем того, что он сам лично создал. Указатели же позволяли залезть в те адреса памяти, в которых хранились данные операционной системы или других программ. Это влекло за собой массу проблем. Например, появлялась возможность умышленно или случайно навредить работе других программ. Но получение информации с «черного хода» не особенно надежно, поскольку в следующей версии ОС он может оказаться закрытым. Но, как оказалось, достоинства указателей весьма скромны — при использовании Java ностальгия по ним появляется крайне редко. То, что в Java-программах не будет тонких и трудно обнаруживаемых ошибок с указателями, — большое достижение.

К хорошему быстро привыкаешь, но, к сожалению, не так быстро отвыкаешь от плохого. Создатели Java решили покончить с теми средствами языка C++, которые портят внешний вид программы. Пресловутый оператор goto «приказал долго жить». Кроме того, объектно-ориентированный стиль программирования стал единственно возможным — написать программу по старинке, в терминах функций и переменных, а не методов и классов, теперь нельзя.

Явным пережитком С в языке C++ является препроцессор. И хотя создатели C++ агитируют его не использовать, в реальных библиотеках он применяется довольно часто. С отказом от препроцессора в Java программы становятся менее запутанными.

Нет в Java и понятия заголовочных файлов, которые сильно замедляют компиляцию в C++. Вместо этого дополнительные классы Java можно легко объединять в пакеты и подключать к своей программе одной командой Кроме того, не нужно следить за порядком, в котором объявляются классы. Вовсе необязательно. например, описывать класс перед первой ссылкой на него. Большой исходный код Java легко разбить на более мелкие элементы, для этого достаточно каждый класс создавать в отдельном файле, имя которого должно совпадать с именем класса. Программы на C++ не очень хорошо поддаются такому дроблению, так как заголовочные файлы приходится корректировать каждый раз при создании новых классов или функций.

Java — язык, жестко контролирующий не только типы классов и функций, но и чрезвычайные ситуации. Если конкретный фрагмент программы может вызвать исключительную ситуацию, программиста заставляют на нее отреагировать. Поскольку написание обработчика нестандартных ситуаций необходимо, не лучше ли это сделать хорошо и. главное, вовремя? Совсем другое дело в C++: если программа скомпилируется и так, то написание обработчика можно перенести на завтра затем на послезавтра, а к концу сдачи проекта об этом и вовсе можно забыть

Оценить выразительную силу и наглядность Java можно сопоставив исходные тексты нескольких простых программ с аналогичными им на языке C++, Последний оказывается в проигрыше только потому что в Java имеется огромное количество встроенных библиотечных функций, а в C++ по-настоящему стандартными являются очень немногие. При программировании на C++ под Windows возникает проблема: есть много стандартных функций, но программы получаются скорее в стиле языка С, сложные и запуганные. Несложные программы на Java запросто вмещаются на один экран, в то время как их Windows-аналоги на С при всей своей «игрушечнос- ти» отпугивают своим размером.

ЯРКОЕ СОЗВЕЗДИЕ ПРЕИМУЩЕСТВ

Следующий положительный момент — работа со свободной памятью. Она поддерживается в полном объеме, но с элементами автоматизации: память можно зарезервировать, но нельзя освободить вручную. Занятая память освобождается автоматически в соответствии с концепцией «сборки мусора», иными словами, столь важная работа не доверяется человеку В других языках многие начинающие программисты в своих «опусах» вообще не заботятся об освобождении памяти. В результате несколько запусков подобных программ — и компьютер смело можно перезагружать С опытом приходит осознание того, что работа со свободной памятью — главный вопрос при программировании в среде Windows и ей подобных системах, для которых это «больное» место. Но все равно, даже профессионально написанные программы потихоньку ее «транжирят» одни быстрее, другие медленнее. Таким образом, автоматическая «сборка мусора» в Java освобождает программиста от целого пласта рутинной работы.

Программы на Java могут быть самодокументирующимися После добавления в исходный текст специальных комментариев его можно обработать предназначенной для этого утилитой и на выходе получить исчерпывающую и хорошо отформатированную документацию в формате HTML (HyperText Markup Language), которую удобно просматривать броузером. Совсем неплохо для крупных проектов!

Java используется не только для создания апплетов, но и для полноценных программ, которым для исполнения не нужен броузер. И все-таки, сегодня главное внимание уделяется апплетам, Java-апплет — это одна из многих конкурирующих Internet-технологий, правда, пожалуй, самая популярная. И в этом не последнюю роль играют надежность и безопасность. Судите сами. Во-первых, Java-апплет может работать с файлами только того Web-сервера, с которого его загружают. Таким образом, бояться последствий может только тот кто этот апплет и написал. Во-вторых, с помощью Java-апплета нельзя обойти брандмауэр. Это стало бы возможным, если бы апплет, например, открывал два сетевых соединения: одно между пользователем и удаленным Web-сервером, а другое, скажем, с компьютером соседа. Останется организовать банальную ретрансляцию пакетов, и защита будет обойдена. Но предусмотрительные разработчики запретили апплету открывать более одного соединения. И наконец, в-третьих, отсутствует возможность обращения к произвольной области памяти — благодаря этому можно обойти любые ограничения. Правда, хакеры уже разработали весьма сложный способ «пробоя» адресного пространства Java, что позволяет все- таки получить доступ к произвольной области памяти. Но на исправленной версии Java-машины этот трюк не сработает.

Такая конкурирующая технология, как ActiveX не имеет никаких серьезных средств обеспечения безопасности, и ничегоо противопоставить этому нельзя. Единственный способ обезопасить себя — пользоваться только сертифицированными сайтами и отказаться от загрузки страницы, если на ней есть что-нибудь подозрительное. Несмотря на богатые функциональные возможности ActiveX, их можно безопасно использовать разве что в закрытой intranet-сети. Что и подтверждает практика: элементы ActiveX в Internet встречаются гораздо реже, чем Java.

«РЕАНИМАЦИЯ» АНИМАЦИИ

Потенциальная область применения технологии Java весьма разнообразна. Internet-анимацией дело далеко не ограничивается В принципе, Java — это идеальная среда для создания ресурсов Internet, которые предназначены для просмотра. Сегодняшние Web-технологии поддерживают, в основном, текст и растровую графику. А как насчет векторной графики, диаграмм, презентаций? Для воспроизведения векторной графики Java подходит идеально: любое векторное изображение сводится, в конце концов, к совокупности линий, дуг и закрашенных областей. Наиболее известная технология, которая создает по векторному изображению Java- апплет, воспроизводящий его, — Corel Barrista. Векторная графика очень важна для Web: она загружается быстрее растровой, но в то же время точно воспроизводит все детали изображения. Например, если в художественных целях заголовок Web-страницы должен быть написан специфическим шрифтом, то вместо текстового заголовка можно использовать векторную графику. Растровая графика дала бы тот же эффект но это привело бы к катастрофическому замедлению загрузки.

Для трехмерной графики используется VRML (Virtual Reality Markup Language) — текстовый язык описания трехмерных изображений. требующий специального plug-in к броузеру. Когда большинство броузеров начнет поддерживать новую версию Java с интерфейсом Java3D, апплеты могут стать серьезными конкурентами VRML. Они будут работать гораздо быстрее VRML за счет большей оптимизации, а них будет неограниченная интерактивность, а количество потенциальных пользователей будет намного больше.

То, что в скомпилированный Java-апплет нельзя (или. по крайней мере, крайне трудно) внести изменения, — не недостаток, а достоинство, ведь заодно защищаются авторские права. Дело остается за малым — инструментальными средствами, которые по имеющейся диаграмме, презентации или трехмерной схеме сгенерируют воспроизводящую их Java- программу или создадут апплет. Возможен и альтернативный путь: на сегодняшний день в Internet полно готовых апплетов, внешний вид которых на странице будет зависеть от переданных им параметров.

СОВРЕМЕННОЕ И БУДУЩЕЕ ПРИМЕНЕНИЕ JAVA

Довольно важная ниша, которую Java может занять сегодня, — это так называемое «бросовое» программирование. Потребность в простых программах, которые пишутся за очень короткий срок и выполняют некоторую очень простую функцию, остается довольно большой. Пакетные файлы разных операционных систем, макроязыки прикладных программ языки сценариев — типичная среда для такого рода поделок. Все это совершенно несовместимо между собой и имеет тенденцию к неконтролируемому усложнению. Среди макроязыков сегодня господствуют диалекты Basic, но макросы, скажем, двух разных текстовых редакторов не являются переносимыми даже «в первом приближении». Здесь весьма пригодился бы подход Java, основанный на стандартизации всех библиотек классов.

Неожиданно хорошие результаты дает Java при реализации открытых систем. Скомпилированный класс Java помещается в отдельный файл и может рассматриваться как модуль. Эти классы-модули можно использовать динамически, т е. добавив к приложению новый класс в виде файла мы не обязаны перекомпилировать приложение а тем более вносить в него изменения. Это дает возможность реализовывать «умеренно открытые» системы, функциональность которых можно наращивать в направлениях, предусмотренных разработчиком. С одной стороны, не приходится раздавать свои исходные тексты, а с другой — пользователи получают дополнительную степень свободы. Ценно и то, что сам механизм динамической загрузки классов встроен в язык Java и, следовательно, не зависит от операционной системы. В Windows, например, для создания чего-либо подобного используются библиотеки DLL (Dynamic Link Library). Помимо более сложной реализации самого процесса загрузки, такие дополнительные модули будут работать только в Windows — если есть версия программы для другой ОС, значит, нужна и другая версия модуля. Кроме того, для разработки таких модулей почти всегда нужны специальные средства, предоставляемые производителем программы. При использовании Java средства разработки бесплатны и доступны каждому. В принципе, даже документация не нужна, так как имеется утилита для получения интерфейса нужного класса

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

Это роднит Java с языком Паскаль — он тоже хорошо подходил для целей обучения, поскольку именно для этого и создавался. После того как число изучивших Паскаль достигло критической отметки, он вдруг стал весьма популярным в реальном мире программирования. В срочном порядке стали создаваться компиляторы, инструментарий и т.п., хотя до тех пор он использовался только в академических целях. Как видим, использование языка программирования для обучения обеспечивает ему очень мощную «раскрутку» в будущем. Ну что ж, подождем!

Сергей Галушка
Аромат Java в Украине

Уже прошло почти четыре года с той поры, как в обстановке общей неудовлетворенности существующими языками программирования мировая «компьютерная общественность» с энтузиазмом взяла на вооружение Java. Совершенствуется инструментарий, «взрослеет» технология, но не прекращаются споры вокруг нее, сталкиваются в ожесточенных боях конкуренты, И несмотря на то что всемирная Сеть крепко связала Украину с мировым сообществом, кажется, что это происходит где-то там, на Западе, а нас практически не касается. Когда впервые в редакции еженедельника зашла речь о том, что мы собираемся посвятить рубрику «Тема недели» языку Java, я даже не подозревал, что в Украине имеются организации, а не отдельные программисты-любители, которые активно ведут разработки в этой области.

Так, например, в своем интервью коммерческий директор киевской компании «Мегалит» Евгений Михайлов отметил: «Вот уже более года мы занимаемся разработкой продуктов на Java по заказу концерна KonaSoft — участвуем в написании драйверов и средств администрирования баз данных». Здесь необходимо дать некоторые пояснения.

Семейство продуктов KonaSoft является полномасштабной технологической базой для построения распределенных систем различного уровня сложности с бизнес-логикой на основе Internet-технологий и реляционных СУБД. Все продукты KonaSoft разрабатываются на Java, однако сегодня на украинском рынке они практически не представлены.

Как известно, среди Java-программ различают апплеты и сервлеты. Апплеты — небольшие Java-программы, которые работают на клиентском месте в среде броузера, выполняя лишь функции отображения, и которые можно загружать по глобальной или локальной сети. Сервлеты работают на сервере, основная задача которых поначалу состояла в генерации HTML- страниц. «Становление Java как технологии. — утверждает Евгений Михайлов, — произошло во время разработки стандарта JDBC (Java DataBase Connectivity), который оказался более простым, чем ODBC (Open DataBase Connectivity). Это позволило Java-программам работать с базами данных В KonaSoft разработаны новые технологические элементы Java — струментарий для визуальной разработки приложений на Java, включая и Microsoft Visual J++, еще далеко не совершенен. Подобные «лепипш» обычно используются для разработки автоматизированных рабочих мест под конкретного заказчика, а серьезные тиражируемые продукты не делаются с помощью таких инструментов. Потому и в «Мегалите» многое делают вручную, здесь привыкли надеяться на собственный профессионализм и опыт.

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

Отчаянные попытки представить на непредсказуемом отечественном рынке Java-технологии предпринимает концерн Inkosoft. В начале этого года в ряде украинских коммерческих банков Inkosoft ввел в эксплуатацию новую версию своей информационной банковской системы на основе технологий Java, Internet и архитектуры сетевых вычислений TOTALBank З О. В интервью председатель правления концерна Вадим Литвинов отметил, что в качестве клиентского приложения в системе используются Java-апплеты, загружаемые с помощью Web-броузера. «Такой подход, — подчеркнул он, — позволяет сократить затраты на развертывание и сопровождение системы, поскольку, кроме операционной системы и броузера, на рабочих местах ничего не используется».

+11
голос

Напечатать Отправить другу

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

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT