`

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

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

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

Человек года

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

Продукт года

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

 

Андрей Зубинский

Сверхзадача. И где же она?

+1515
голосов

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

Мало кто замечает один вполне очевидный факт - одновременный успех Android, активность Microsoft с Windows 8, и, наконец, противостояние Oracle - Google проявляются в изменении роли платформы Java SE. Той самой Java, которую принято условно называть "клиентской". Пока не очень ярком изменении, но не заметить его уже трудно. При этом на фоне непрерывных завываний :) о мобильности, таблетах, насыщенных web-приложениях и прочем сиюминутном, судьба одной из самых развитых программных платформ окружена чуть ли не полной тишиной.

Серьёзная модификация JavaFX в версии 2.0 (фреймворка для построения графического интерфейса "модных" пользовательских приложений), произведенная в Oracle, ожидаемый и обещаемый в будущем перевод JavaFX в категорию open source, и, наконец, уже объявленная программа интеграции OpenJDK и JavaFX, - это большие события на самом деле. Очень большие.

И вот почему (естественно, это "я так думаю" ©).

Во-первых, происходящее сейчас ничем иным как "федальными войнами за будущую массовую клиентскую операционную систему" назвать нельзя. Почему феодальными? Потому что слишком много участников в этих войнах, и уж ещё больше желающих поучаствовать в них. Одна история трансформации LiMo - MeeGo - Tizen является прекрасной иллюстрацией этого неофеодализма: за буквально три года три организации и фонда трижды пытались объединить усилия разработчиков для создания клиентской ОС нового поколения. Результатом первых двух попыток фактически стала третья :)

Во-вторых, архитектура клиентской ОС, основанная на виртуализации userspace, иными словами - архитектура ОС Android, убедительно доказала свою принципиальную работоспособность даже при использовании весьма скромных по нынешним меркам вычислительных ресурсов. Это очень важный факт, потому что виртуализация и здравый скептицизм с давних времён мирно сосуществуют. Кто думает, что виртуализация - явление новое, тех могу успокоить, работающая система виртуальных машин весьма бодро чувствовала себя в 1972 году на мэйнфреймах IBM 370. И с тех пор является, как и любое техническое решение, компромиссным. Посему тот факт, что в клиентской ОС виртуализация как системный принцип, работоспособна и обеспечивает нужное пользователю, исключительно важен. Больше того, ключевой элемент виртуализации в Android, виртуальная машина Dalvik, не является "сверхпроизводительным чудом", вы можете криво усмехнуться от доменного имени этого сравнения, но поводов обвинить автора в "грубой джинсе" я лично не вижу, потому что кроме производительности в прикладной области Android (мобильные терминалы) есть ещё исключительно важные критерии (энергопотребление, например).

В-третьих, "клиентская Java", Java SE, как платформа на сегодняшний день одновременно не страдает гигантизмом, свойственным Java EE (а последняя ещё как им страдает, иначе проект Jigsaw уже давно выпилил бы из неё что-то куда более красивое, но мы этого ждём только в Java 8), и располагает фактически "сверхразвитым всем" - от доступных качественных библиотек и фреймворков чуть ли не любого назначения, от широкого спектра языков программирования (на все вкусы - от самого Java до Scala, Clojure и Бог весть чего) до самых вычурных технологических средств, практически недоступных для других платформ (не буду перечислять, их бесчисленное количество, включая отладчики с возможностью реверсивного движения против поотока исполнения кода etc).

Ничего не складывается из этих трёх вполне очевидных вещей и факта повышения активности Oracle на "клиентской стороне Java"?

У меня складывается.

Но.

Есть одно "но".

Java SE сейчас - совершенно уникальный продукт, инфраструктура, набор технологических средств и ещё много всего. С довеском в виде JavaFX 2.0 и старше - фактически идеальная инфраструктура для создания пользовательской ОС нового поколения. С учётом огромной работающей системы регенерации профессиональных кадров (посчитайте навскидку, сколько книг и на каких языках посвящены Java, прикиньте количество переизданий их, редакций и проч. - по-моему, трудно найти аналог этому громадному механизму), с учётом наличия огромного количества уже подготовленных программистов, на фоне очередного всплеска интереса среди разработчиков к Java-технологии (здесь даже при разногласиях и судебных процессах Oracle не просто должна благодарить Google за "свежую кровь" в клиентской Java, но и использовать это явление в интересах Java-сообщества, что, думаю, произойдёт обязательно), ситуацию с клиентской Java можно назвать идеальной. Причём, пожалуй, впервые в истории Java такая ситуация сложилась. Не использовать её будет непростительной ошибкой.

Так вот теперь это самое "но".

Когда-то давно Sun вынашивала планы создания пользовательского уровня ОС на базе клиентской Java - Java Desktop System. Попытка была странной, если говорить серьёзно. Что-то было понятным - например, стремление сделать "настольное" пользовательское окружение похожим на Microsoft Windows. В те годы это было вроде как нужно даже. В 2011 году, когда сама Microsoft меняет Windows до неузнаваемости, это уже никому не нужно вообще. Что-то было непонятным и тогда - например, интеграция стороннего огромного "настольного" окружения Gnome в проект. Очень странное решение. Потому что Gnome совершенно неподвластен создателям проекта, а из-за размеров и функциональности являлся как бы системоопределяющим в составе проекта. Ну, такое дело, тогда ещё было очень модно делать большие ставки на open source "настольные" проекты, сейчас к этому относятся разумнее.

Java Desktop System оказался неудачным. Но предпосылки-то никуда не делись. И даже дополнились доказательством возможности успеха. И новым крайне недостающим технологическим (JavaFX).

Иными словами, - пора Java-сообществу ставить перед собой сверхзадачу для клиентской Java. Нужна (и ведь реально нужна) клиентская виртуализированная среда, с современным GUI, слабо зависящая от лежащей ниже её системной платформы. Это не прихоть на самом деле - ослабление зависимости клиентского окружения от системного уровня, - это уже техническое требование. Посмотрите на зависимости в любом менеджере пакетов любого дистрибутива Linux. Там много ужасного на самом деле. И главное ужасное - полная асинхронность и непредсказуемость изменений во всей цепочке зависимостей. Что означает на деле труды Сизифа в условиях хаотично изменяющейся геометрии горы при наличии отсутствия пропитанных шпал вечного двигателя.

Проще говоря - технологии и условия созрели для новой Java Desktop System. Совершенно новой. Для этого есть почти всё. Есть отработанная системная "подставка" - та же ОС Linux, даже с учётом всех сложностей её как платформы, в первую очередь, - с рациональной, эффективной и управляемой на продолжительном этапе утилизацией возможностей современных аппаратных средств, особенно видеоакселераторов, JavaFX 2.0 не случайно пока не доделана для Linux :( .Есть прекрасные технологические средства, равные которым найти трудно. Есть море вылизанного, проверенного open source кода, очень качественного. Есть языки программирования на все вкусы и для всех задач. Есть архитектурные решения широчайшего диапазона - от компонетных сред до работающей модели актёров, механизмов взаимодействия на уровне Java-машин, всех мыслимых решений поддержки многопоточного программирования etc. Нет только одного - явно поставленной сверхзадачи. Которая, кстати, стимулирует (всегда стимулирует) новые идеи. А они тоже нужны как воздух. Пользовательская база 2011-го года сильно отличается от своего аналога, например, в начале 2000-х годов. Разнообразие доступных персональных вычислителей её подготовили к принятию нового. И подстегнуло это новое требовать.

Не знаю сколько ещё времени понадобится тому же Linux-сообществу, чтобы понять - дистрибутивный подход, "ведро, наполняемое каким-то дядей чужими болтами", себя исчерпал. Это уже поняли в Ubuntu, и постепенно переводят в подконтрольную себе область пользовательское окружение. Но и тут есть одно "но". Разнобой технологических средств (а разве его нет?), всевозможных тулкитов и прочего, на пользовательском уровне Linux огромен. И, понимаете, это прекрасно, конечно, что для хакерского подхода к проектированию это даёт пресловутую "свободу". Но вот пользователь хочет другой свободы - выбора качественных прикладных программ и их использования (речь идёт даже не о бесплатности, а о затратах другого рода, в первую очередь - затратах времени, бесплатная утилита, осваивать которую нужно пару лет, становится очень дорогой, для многих умных и способных людей, занятых в какой-то любой области, не связанной с хакингом - непозволительно дорогой).

Даже не знаю, в куда я всё это написал :)

Но мало ли.

Вдруг кого-то проймёт.

Уже немало.

За сим откланиваюсь.

 

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

+1515
голосов

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

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

Добрый день!

Оффтопом: несколько раз за сегодня заглядывал на сайт в ожидании Вашей колонки в связи с этим: https://twitter.com/#!/wendyg/status/128554733714669568 Вы ведь обычно реагируете на такие печальные новости.

Но до чего кучно вдруг стали уходить классики IT! Как-то даже не по себе становится...

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

уходит поколение, что сделать :(

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

А никто не пытался создавать системную базу открытую в обе стороны, железа и пользовательского ПО и тем самым определявшую бы логику развития обеих? да и себя самой, вероятно, то же?

Проняло. Спасибо. Действительно, почему при на порядок более высоких вычислительных мощностях компьютера и в несколько раз более слабых требованиях к энергопотреблению (а для десктопов так вообще) нельзя сделать полностью виртуализированную десктопную ОС? Кому это выгодно? )

На ЛОРе надо было писать, там бы школота и пенсионеры разобрали на еду :)

Достаточно вспомнить истерию о net-pc, java-pc.
Нужно ли это ораклам? Нужно ли это еще кому-нибудь?

Линукс на дескопе пока что больше себя дискредитирует , чем набирает популярность. Особенно если учесть все то плохое, что случилось с Гномом. не знаю кто там бабло через их команду стирает, но явно что-то давно идет не так. Их мокают в их же косяки, а они упорно продолжают лепить непонятную и пугающую ересь.

Вопрос скорее чисто политический, о кооперации между конкурентами. Та же Ява_МЕ для мобилок, была успешно затоптана Бадой, Андроидом и еще кучей лисапетов, хотя был шанс стать полноценной ОС.

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT