В начале нынешнего года компания Sun Microsystems (http://www.sun.com) анонсировала целый ряд своих обновленных Java-технологий. В их число вошли среда разработки NetBeans 5.0, ознакомительная версия Java Platform, Enterprise Edition 5 (JEE5)*, а также очередная бета-версия Java Platform, Standard Edition 6 (JSE6).


*Отметим, что в наименовании Java-платформы исчезла цифра "2", обозначающая номер поколения системы.

Напомним, что разработки в области Java компания Sun ведет в сотрудничестве с сообществом Java Community Process (JCP), которое не только принимает участие в обсуждении предлагаемых спецификаций на самых ранних этапах создания, но и утверждает их. Ядро JCP составляют в настоящее время 14 компаний и организаций, включая Apache Software Foundation, BEA, IBM, Oracle и SAP AG.

NetBeans выходит из затмения

Главная интрига в развитии NetBeans (см. также "Средства разработки Java-приложений от Sun", "BYTE/Россия" № 7'2005), общедоступной интегрированной среды Java-разработки, заключается в том, что Sun решила заниматься этим практически в одиночку. Тем самым компания вступила в прямую конкуренцию с аналогичным проектом Eclipse, в котором IBM удалось объединить практически всех ведущих поставщиков Java-средств, за исключением как раз родоначальника и формального владельца Java.

На первых порах соперничество складывалось явно не в пользу Sun, что стало поводом для каламбура о том, что "кофе не вызревает в условиях солнечного затмения"**. Но с выходом в конце 2004 г. NetBeans 4.0 аналитики рынка средств разработки начали высказываться в том духе, что пора "затмения" прошла, а сейчас, с появлением версии 5.0, порой даже звучат задиристые прогнозы: как бы в зону затмения не попал Eclipse.


** Eclipse - затмение, Beans - бобы (в том числе кофейные).

В довольно длинном перечне новых возможностей NetBeans 5.0 наиболее заметным улучшением, наверное, можно считать конструктор пользовательского интерфейса NetBeans GUI Builder, известный ранее как Project Matisse. Отметим также усовершенствованные средства рефакторинга при разработке Web-сервисов.

Дополнительное достоинство продукта - его бесплатная поддержка в рамках программы Sun Developer Network. Кроме того, IDE, поставляемая в открытых кодах, выпускается в комплекте с NetBeans Mobility Pack 5, предназначенным для разработчиков мобильных приложений на базе Java ME. Sun остается главным создателем NetBeans, но поскольку эта система реализуется как открытый проект, то она дополняется за счет улучшений со стороны весьма широкого сообщества разработчиков. Именно это делает NetBeans IDE 5.0 серьезным конкурентом для Eclipse IDE. Одновременно Sun проводит большую работу, агитируя поставщиков коммерческих инструментов за переход на использование NetBeans в качестве интегрированной среды разработки и сама подавая при этом пример: именно эта IDE составляет основу линейки Sun Java Studio.

Естественное конкурентное преимущество NetBeans придает еще и то, что Sun, будучи создателем самой платформы Java, имеет возможность раньше других включать поддержку новых спецификаций в состав своих инструментов. Так, NetBeans 4.0 стал в свое время первым Java-инструментом, реализованным на базе новой тогда версии спецификаций JSE 5. А в представленном сейчас предварительном варианте NetBeans Enterprise Pack 5.5 уже имеется возможность работы с будущей Java EE 5. Важное новшество версии 5.5 состоит также в том, что в него включены средства, ранее доступные лишь в Sun Java Studio Enterprise. Речь идет, в частности, о поддержке UML и о солидном наборе инструментов проектирования для SOA. Кроме того, в состав комплекса входит Java Application Server 9, выпущенный пока тоже только в бета-версии.

Java масштаба предприятия

Новая серверная система Java представлена пока предварительным JEE 5 SDK, с которым уже начали знакомиться участники JCP. Как подчеркивают представители Sun, выпущенный набор ПО в целом соответствует спецификациям, формально объявленным еще на прошлогодней конференции JavaOne. В то же время версия JEE 5 SDK носит пока предварительный характер, поскольку комитет JCP еще не утвердил окончательно спецификации новой платформы. Такое решение было принято в мае.

По мнению Sun, сама будущая платформа нацелена в первую очередь на упрощение и повышение эффективности разработки Web- и Enterprise-приложений. Для этого в нее включены следующие высокопроизводительные технологии.

Enterprise JavaBeans (EJB) API 3.0. Здесь добавлена поддержка программирования с помощью Plain Old Java Objects (POJO), которые могут быть преобразованы в Web-сервисы с использованием аннотаций или Java Persistence API.

Java API for XML Web Services (JAX-WS) упрощают вызов Web-сервисов за счет автоматической генерации клиентского и серверного кода и поддержки последних стандартов SOAP и WSDL.

Технология JavaServer Faces 1.2 упрощает построение пользовательских интерфейсов для Web-приложений, предлагая готовые компоненты. С ее помощью можно также создавать Web-решения типа AJAX.

Аннотации позволяют уменьшить размер дескрипторов, необходимых для управления развертыванием ПО (в предыдущих версиях Java они достигали сотен строк).

Как заявляет Sun, эти новшества могут радикально повлиять на сокращение объема кода и описаний конфигураций, создаваемых собственно разработчиками. В ряде случаев речь может идти о снижении объема на 85% и даже более того.

"Мустанг" для настольных систем

Напомним, что нынешняя текущая версия Java Standard - J2SE 5.0 под именем Tiger - появилась на рынке осенью 2004 г., а первый предварительный бета-вариант JSE 6.0 под кодовым названием Mustang в закрытом режиме был выпущен в июле 2005 г. Как известно, стандартное издание Java ориентировано на создание клиентских настольных приложений. Поэтому новшества его 6-й версии можно условно разделить на две категории: улучшение ядра (повышение производительности труда разработчика и управление приложениями) и модернизация возможностей настольной системы (интерфейс пользователя и интеграция с клиентской ОС). Значительный шаг вперед сделан также в направлении поддержки Web-сервисов и безопасности. В целом можно сказать, что в JSE6 найдут что-то интересное для себя и разработчики приложений, и системные администраторы, и поставщики инструментов, и специалисты в области безопасности.

Поскольку эта система уже очень близка к выходу на рынок, мы рассмотрим нововведения в ней несколько подробнее.

Обновленные возможности ядра

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

В JSE 6 расширена поддержка скриптовых языков и Web-сервисов для создания приложений нового поколения Web 2.0. В систему включен новый механизм исполнения сценариев Scripting API (в соответствии со спецификациями Java Specification Request 223), обеспечивающий внутренний доступ к Java со стороны различных скриптовых языков, в том числе PHP и JavaScript. Имеется возможность подключить даже сразу несколько скриптовых движков, которые запускаются прямо во время исполнения Java-приложения. Кроме того, Web-контент можно генерировать на основе скриптового кода в среде Web Scripting Framework непосредственно в сервлет-контейнере.

Новый набор функций Java Compiler API позволяет компилировать исходный Java-код внутри приложения. Это полезно, например, для быстрого интерактивного формирования программного слоя доступа к источникам данных без перекомпилирования всей программы. Нужно также сказать о расширенных возможностях Java Platform Debugger Architecture (JPDA), которая теперь помогает выявлять ошибки типа взаимных блокировок и выдавать трассировку стека для наблюдения за блокируемыми объектами. Важно и то, что в Java SE 6 добавлена поддержка подключения внешних агентов к JVM (Java Virtual Machine) в целях диагностики.

Получили развитие средства диагностики, управления и мониторинга приложений. Например, появилось больше возможностей выявления и анализа утечек памяти с помощью полной трассировки стека (функция java.lang.OutOfMemory) и выдачи протокола о фатальных ошибках при переполнении динамической памяти. Кроме того, новая опция JVM позволяет запускать скрипты, когда эта область памяти полностью занята.

С помощью обновленного JMX Monitoring API приложение теперь может реагировать на выход значений передаваемых атрибутов (в том числе при использовании комплексных типов данных) за пороговые значения. Специально для ОС Solaris 10 в состав Java SE 6 включен механизм отладки и диагностики Solaris DTrace. С его помощью можно, например, остановить работу приложения в любом месте кода и посмотреть состав загруженных библиотек (не только Java, но и системных), а также состояние ядра Solaris.

Для поддержки Web-сервисов введены новые наборы API. Так, XML Digital Signatures API позволяет шифровать XML-данные, Java-XML Web Service (JAX-WS) 2.0 API заменил библиотеку JAX-RPC, а Java-XML Binding (JAXB) 2.0 реализует поддержку XML-схем, в том числе связывание с ними классов кода. И наконец, Streaming API for XML (StAX) представляет собой набор двунаправленных функций для чтения и записи XML в потоке данных, с возможностью пропуска секций и выборки только нужных фрагментов документов.

Что же касается безопасности, то в JSE6 реализованы интеграция с протоколами Generic Security Services/Kerberos, средства Java Authentication & Authorization Service (JAAS) для LDAP-аутентификации (Lightweight Directory Access Protocol), а также механизм запросов сертификатов безопасности, который дает возможность Java-приложениям использовать разные протоколы для получения нужных сертификатов.

Новшества настольной системы

Один из парадоксов Java заключается в том, что этот язык разрабатывался более 10 лет назад в первую очередь для применения на клиентских компьютерах, но почти сразу он переместился на серверную сторону и сегодня воспринимается именно в таком качестве. Создание "толстых" настольных приложений - это для Java задача не первого приоритета. Однако последние годы Sun активно работает над тем, чтобы изменить этот устоявшийся имидж Java, в том числе путем интеграции с настольными хостовыми ОС. JSE 6 - серьезный шаг именно в этом направлении.

Многие новые настольные функции JSE 6 реализованы в рамках проекта JDesktop Integration Components (JDIC), который подразумевает возможность прямого использования таких "родных" средств ОС, как браузер, редактор электронной почты, системные панели инструментов, привязка к типам файлов, печать и т. д. Отметим, что хотя Sun в своих материалах, касающихся JSE 6, предпочитает термин "настольная система", чаще всего речь идет о вполне конкретном семействе ОС - Windows. Впрочем, в анонсе новой JSE отдельно говорится, что она будет поддерживать работу в среде будущей Windows Vista.

Вот некоторые наиболее интересные инновации JSE 6:

  • поддержка заставок экрана, которые информируют пользователя о процессе запуска приложения (причем еще до старта JVM);
  • модернизация в Java Foundation Classes (JFC) и Swing;
  • повышено качество компилируемого кода для работы с Windows API, в том числе с учетом специфики различных версий Windows;
  • удобнее стало управление раскладкой пользовательского экрана и визуальными элементами управления;
  • технология двойного буферирования реализует наглядный и быстрый способ перемещения графики на экране;
  • поддержка области состояния: два новых класса, SystemTray и TrayIcon, позволяют добавлять иконки, советы для кнопок и ниспадающие меню к системным областям состояния Windows или Gnome Linux;
  • улучшенная поддержка печати для Jtable;
  • расширенные возможности Java 2D улучшают отображение текстовой информации, особенно на ЖК-мониторах;
  • новый набор java.awt.Desktop API позволяет создавать приложения с пользовательским интерфейсом, который можно смело отнести к категории первого класса. С помощью этого набора также можно запускать из Java-программы установленный по умолчанию браузер или почтовый клиент, выполнять интеграцию с общими настольными приложениями;
  • существенно улучшены возможности интернационализации ПО, в том числе использование различных региональных форматов и методов преобразования данных.

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

Шаги к open source

Java изначально строилась на принципах открытых стандартов с опорой на широкие круги разработчиков. И уже много лет развитие технологии идет на основе широкого отраслевого сотрудничества в рамках Java Community Process. Казалось бы, этот процесс уже давно должен был перерасти в настоящий проект open source, и последние пару лет дискуссии на эту тему сводятся лишь к вопросу, когда же Sun сделает очевидный для многих шаг - завтра или послезавтра. Уверенность именно в таком развитии событий усилилась в конце апреля, когда стало известно о смене руководства Sun - пост CEO компании занял Джонатан Шварц, известный своей приверженностью идеям open source.

В середине мая в Сан-Франциско прошла очередная ежегодная конференция JavaOne 2006, на которой многие ожидали решительных объявлений на этот счет. Но они не прозвучали: Sun сделала новые шаги к расширению использования модели open source в своем софтверном бизнесе, но проект Java сохранил прежний полузакрытый статус. Компания объявила на конференции об открытии исходных кодов многих своих приложений, написанных на Java, включая портальное и интеграционное ПО, а также инструментальные средства. Будет расширена и практика распространения продуктов по схеме Java Distribution License, что должно, в частности, упростить привязку настольной среды исполнения Java к Linux. Но все же сам исходный код языка программирования Java останется по-прежнему недоступен разработчикам. Хотя Sun пообещала, что в отношении некоторых компонентов Java перспектива их открытия реальна. Свое решение не открывать код Java компания объясняет опасениями того, что проект потеряет управляемость, и угрозой появления несовместимых версий платформы.

И все же, скорее всего, открытие кодов Java - дело времени. Так, выступая на JavaOne 2006, новый глава Sun Джонатан Шварц заявил: "Вопрос не в том, нужно ли открывать коды Java, а в том, как это сделать".

Между тем платформа Java продолжает развиваться: на конференции было объявлено об окончательном утверждении спецификаций Java Platform, Enterprise Edition 5.0 (которая представлена пока предварительной бета-версией), а также о лицензировании окончательного варианта Java Platform, Standard Edition 6.0 ряду ведущих производителей ПК, в том числе Dell и HP.

Еще одним событием, привлекшим внимание участников JavaOne, стало объявление о доступности технологии Web Services Interoperability Technology (WSIT), созданной совместно Sun и Microsoft. Она представляет собой набор WS-компонентов для взаимодействия платформ Java и .NET, решая при этом задачи безопасности, обмена сообщениями и поддержки метаданных. Со стороны Sun данная разработка - это часть проекта GlassFish по созданию сервера с открытыми кодами (http://glassfish.dev.java.net).

Поддержка WSIT будет включена в следующую версию Sun Java System Application Server, в Java EE SDK 5.0, а также в средства разработки Sun (для NetBeans 5.5 уже имеется соответствующий модуль расширения). Microsoft пообещала реализовать эту функциональность в рамках набора Windows Communication Foundation (WCF), который будет доступен для всех версий Windows начиная с XP.

"Папа" Java о своем детище

Photo

В конце апреля в Москве прошла двухдневная конференция Sun Tech Day, в работе которой принял участие Джеймс Гослинг, вице-президент Sun Microsystems и Sun Fellow, - создатель языка Java, уже более десяти лет отвечающий в Sun за развитие этой системы. Вот что он рассказал в интервью нашему журналу.

"BYTE/Россия": Складывается впечатление, что после первых пяти лет пребывания на рынке, которое было отмечено быстрым функциональным расширением платформы Java, система перешла в стадию более эволюционного развития. Что Вы можете сказать по этому поводу?

Джеймс Гослинг: В чем-то я согласен, в чем-то не согласен с такой оценкой. Первое время Java действительно быстро пополнялась новыми сопутствующими технологиями, что вполне естественно, так как платформа искала свое место на рынке (точнее, боролась за него). В последние годы внешне картина видится более спокойной, но на самом деле в каждой новой версии Java появляется много нового. Например, в текущем варианте JSE 5, вышедшем в 2004 г., было отмечено самое большое число новшеств по сравнению со всеми предыдущими выпусками. А в JSE 6, которая появится уже скоро, их будет еще больше.

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

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

"BYTE/Россия": А как быть на практике с главным лозунгом Java: Write Once - Run Anywhere ("Напиши один раз - запускай где угодно"). То, что уже давно есть три разных издания платформы - Enterprise, Standard и Micro, это вполне понятно. Но ведь о совместимости Java в области мобильных систем пока говорить не приходится. Будет ли здесь как-то исправляться ситуация?

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

"BYTE/Россия": На рынке средств Java-разработки идет совершенно очевидный процесс консолидации. Почему же Sun не подключается к проекту Eclipse, который стал одним из центров объединения всего Java-сообщества, и продолжает развитие собственной среды NetBeans? Не пойдет ли это во вред идее продвижения Java вообще и роли самой Sun в частности?

Дж. Г.: Правильная постановка вопроса была бы такой: почему IBM запустила свой проект Eclipse, когда уже существовал NetBeans, открытый для широкого сотрудничества Java-поставщиков? Ведь хронологически мы превратили NetBeans в открытый проект на год раньше, чем IBM сделала это с Eclipse.

"BYTE/Россия": Вы считаете, что эти две линии продолжат автономное развитие, или все же имеются шансы, что они сольются?

Дж. Г.: Скорее всего, будет первый вариант.

"BYTE/Россия": Периодически в Java-сообществе обсуждается возможность реализовать на базе ядра Java поддержку разных по синтаксису языков программирования (то, что делает Microsoft на своей платформе .NET). И в этой связи порой раздаются упреки в адрес Sun, которая якобы противодействует таким устремлениям. Каково Ваше мнение на этот счет?

Дж. Г.: Вообще-то в мире Java этим занимаются всю историю его существования, и я не вижу никаких препятствий этому со стороны Sun. Есть реализации таких языков, как Lisp, Perl, Fortran, ряд других. Другое дело, что эти реализации на базе Java не получили широкого применения, но тому есть объективные объяснения, никак не связанные с позицией Sun по данному вопросу. Это определяется отсутствием рыночного спроса на подобные инструменты.

Что касается Microsoft, то она по сути дела реализовала то, что мы уже сделали задолго до нее, но только превратив все это в мощную маркетинговую кампанию. Я в свое время искренне опасался, что Microsoft в ответ на нашу Java сделает что-то действительно новое и интересное, но они решили пойти по пути копирования наших идей. Кстати, несмотря на официальные декларации многоязыковой поддержки, в среде .NET также явное предпочтение отдается одному языку - C#, явному аналогу Java, а популярный ранее Visual Basic отходит на второй план. И это при том, что некоторые новые интересные идеи в области языков были как раз связаны с возможным развитием VB и получили в последние годы развитие в виде набирающих популярность скриптовых языков.

"BYTE/Россия": Получается, что сейчас наступила эпоха некоторого моноязыка (C# и Java можно считать в данном случае просто несколько отличающимися его версиями), которая пришла на смену многоязычию предыдущих десятилетий?

Дж. Г.: В какой-то степени это действительно так, и связана эта ситуация с общемировыми процессами глобализации, которые неминуемо требуют унификации применяемых технологий. Но при этом многие языки прочно удерживают свои нишевые позиции, как, например, Fortran в области математических вычислений. При этом нужно подчеркнуть, что противопоставление "старых" и "новых" языков (что порой встречается в публикациях) неверно. Все языки программирования связаны между собой, если так можно выразиться, на генетическом уровне. В Java вы найдете много от Ada, SmallTalk и ряда других систем. Так что языки не умирают, они передают все лучшее следующим поколениям. Кстати, нас порой упрекают, что мы постоянно модифицируем Java. Но как раз самое страшное будет, если через 30 лет Java останется такой же, как сегодня.

"BYTE/Россия": А вы не боитесь нарастающей конкуренции со стороны скриптовых языков - Perl, Python, PHP?

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

"BYTE/Россия": В последнем десятилетии прошлого века мы наблюдали четко выраженные взрывные моменты в развитии технологий разработки: Visual Basic, потом Java, потом .NET. Сейчас таких заметных явлений как будто нет. Можно ли ожидать в ближайшем будущем каких-то принципиально новых платформ, которые придут на смену сегодняшним?

Дж. Г.: Сейчас действительно идет достаточно стабильный этап развития ИТ, когда имеющиеся средства и технологии способны удовлетворить любые запросы рынка. На самом деле спрогнозировать развитие ситуации в долгосрочной перспективе - это очень сложно, может быть, даже нереально. Поэтому, возможно, лучшей стратегией будет ориентация на текущее положение дел и быстрое реагирование на их изменение. Например, еще недавно никто не ожидал, что полоса пропускания каналов связи будет расти так стремительно и повлечет за собой необходимость радикальной коррекции не только архитектурных решений, но и используемых моделей бизнеса.

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

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

Дж. Г.: Да, наступил этап освоения более сложных микропроцессорных решений, связанный с тем, что методы повышения производительности вычислений, применявшиеся последние 15-20 лет, сейчас перестают работать. Кстати, закон Мура по-прежнему остается жизнеспособным. Но он ведь говорит только об удвоении числа транзисторов на микросхеме каждые 1,5-2 года. Это происходит и сейчас, но уже не приводит к столь же значительному росту производительности, в том числе за счет тактовой частоты.

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

"BYTE/Россия": Будет ли происходить какое-то сближение платформ Java и .NET в плане повышения уровня их интероперабельности? Или эти вопросы будут решаться только на уровне технологий Web Services?

Дж. Г.: Думаю, что Web Services - это вполне достаточно для решения проблем межплатформенного взаимодействия. Кстати, сотрудничество в этой области ведущих ИТ-поставщиков - огромное достижение ИТ-индустрии, которая показала, что она может, несмотря на острую внутреннюю конкуренцию, совместно решать стоящие перед ней задачи.

"BYTE/Россия": Каковы отношения Sun с сообществом open source? Известно, что, наряду с явной близостью позиций, тут есть и заметные разногласия.

Дж. Г.: Идеология open source нам очень близка, многие наши программные продукты создаются как раз в соответствии с этой концепцией. Отличия позиций заключается по большому счету только в лицензировании открытого ПО: мы считаем, что, применяя чужое открытое ПО, разработчик должен провести тестирование своих продуктов на предмет совместимости с установленными стандартами.

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