Эта заметка — печальное резюме моего трёхлетнего опыта работы над настольными дистрибутивами Linux и общих наблюдений за ситуацией в стране в ИТ-сфере в целом. Не претендуя на истину, выскажу лишь свои субъективные замечания, которые у меня сформулировались к текущему моменту. Я буду очень рад ошибиться в написанном, но сейчас я вижу ситуацию именно таким образом. Ещё раз напоминаю, что тут я говорю только о настолькном применении. Сервер и embedded — это совершенно другая стихия, здесь я их не затрагиваю.
Во-первых, он банально никому не нужен, потому что линукс-сообществу нечего предложить. За десятилетия существования системы никаких серьёзных инноваций за исключением серверного сегмента и некоторых техник из области программирования сделано не было. Но для конечного пользователя не было сделано ровным счётом… ничего. Даже фишки вроде менеджеров пакетов и те куда успешнее и лучше используются прямыми конкурентами. Тут я заодно процитирую своего бывшего коллегу Сашу Казанцева aka akdengi:
«Десктопный Линукс как был мифом так и остался. Окромя Гугла по сути никому не удалось что-то внятное на ядре сделать, да и тот "мутит" уже свое проприетарное. Лозунги про свободу, равенство и безопасность хомячков не прельщают…».
Единственное место, где кое-как подобные системы будут жить — защищённые дистрибутивы. Но это крайне узкоспециальная ниша, кроме особо секретных госов и военки нигде не будет востребована. Если говорить про Россию, теоретически, тема с импортозамещением может взлететь, особенно на почве текущих валютных колебаний. Но я в этом крайне сильно сомневаюсь. Профессиональное сообщество отнюдь не линукс-теоретиков уже успело крепко разочароваться итогами ряда проектов. Как итог, все, кто что-то знает и умеет, скрепя сердце расходятся в другие места. В том числе обратно в мир MacOS и Windows и на гораздо большие зарплаты.
Вторая причина была хорошо сформулирована уважаемым
Третья причина вытекает из второй. Юзабилити и вообще отсутствие людей понимающих, что реально важно для пользователя. Если с юзабилити и так давно всё ясно. В 99,9% опенсорсного софта оно попросту отсутствует. И если консольные программы действительно почти достаточно неплохо отлажены и имеют более-менее унифицированный подход к работе (хотя, например, особенности работы find не в первый раз ставят в тупик даже подготовленных айтишников), то с графическими приложениями, несмотря на явный и заметный прогресс, дела обстоят всё ещё ОЧЕНЬ плохо.
С работой над важными для пользователя вещами всё ещё печальнее. Фактически, единственной ОС, которая хоть как-то пыталась решить эти проблемы, являлась всё та же ROSA. Но опять же, т.н. «продвинутое международное опенсорсное сообщество» (в реальности же дико косное, не желающее перемен и всё ещё боготворящее технологии и подходы тридцатилетней давности, отягчённых вдобавок NIH-синдромом) даже не поняло постановки вопроса. Какие-то очень скромные наработки в эту сторону есть у openSUSE и Ubuntu, но там это реализовано настолько топорно, что хочется плакать. С Ubuntu ситуация к тому же крайне плачевная. За столько лет жизни Canonical, Марк Шаттлворт так и не нашёл как это можно монетизировать и дистрибутив медленно, но верно идёт ко дну. Один из таких звоночков, Ubuntu с большим трудом смогла устранить проблему с LightDM после ухода Мартина Питта и сокращение штата компании в целом. Кругом сплошные стратеги, концентрирующихся на глобальных вещах, но начисто игнорирующие всё остальное. В итоге дистрибутивы релизятся с такими проблемами, что не знаешь плакать или смеяться.
Почему такое происходит? Да всё то же самое, о чём говорили многие и не по одному разу хоть сколько-нибудь вменяемые специалисты. У технарей работа юзабилистов и дизайнеров вызывает непонимание и нередко презрение. А зря. И проблема осложняется тем, что, например, юзабилисты — класс специалистов, который just for fun не работает в принципе. За крайне редкими исключениями. Не говоря уже о том, что юзабилити-тестирования «по науке» требуют недешёвого оборудования, студий и массу людей (которым тоже надо заплатить). Одним лаптопом или системником для работы здесь не обойдёшься.
Усугубляет проблему тот факт, что нет единого стандарта на интерфейс и в целом отсутствуют хоть какие-то гайдлайны. К настоящему моменту у нас имеется адская куча фреймворков и тулкитов, в которых одна и та же программа не то, что отрисовывается — ведёт себя по-разному! Вот что мне навскидку вспомнилось: Qt всех версий, GTK+ всех версий, wxWidgets, EFL… Корпоративный софт вообще до сих пор нередко сидит на давно забытом ПО. К примеру, GUI клиента для Cintrix XenApp под Linux, отвязалось от древнего Motif только в прошлом или позапрошлом году! И добавьте к этому кошмарный зоопарк из WM и DE. Те кто считают, что ничего сложного в поддержке такого нет, рекомендую в качестве практического упражнения сесть на первую линию техподдержки какого-нибудь провайдера и попробовать настроить Интернет (скажем, PPPoE) по телефону без всяких там Radmin и TeamViewer не разбирающимся в технике лиентам с: Windows XP, Vista, Windows 7, Windows 8, Windows 8.1 и немножечко MacOS разных версий. А есть ещё люди установившие себе всякие ZverDVD… После недельки работы там, быстро мнение о простоте работы поменяете.
О тестировании всего этого зоопарка я просто помолчу, как о покойнике.
Последняя и самая серьёзная проблема в Linux, заключается в его собственной природе. Не существует такой ОС как Linux. Linux — это ядро. Вместо этого есть горка разрозненных операционных систем, нередко тотально несовместимых между собой это самое ядро использующих. Почти три года назад я уже вскользь упомянул об этом. На сей раз, я скажу более прямо — надо закапывать почти все дистрибутивы и оставлять не больше четырёх-шести. Причём оставшиеся должны быть максимально совместимы между собой. Опыт Android, ChromeOS, да что там говорить, даже MacOS, говорит за то, что единая платформа — благо для подавляющего большинства. А что до остальных… Ну, есть же тематические формы посвящённые ОС на ассемблере там. Пусть живут, но про них будут знать считанные единицы и хоть сколько-нибудь всерьёз про них не говорят.
Безусловно, причин провала Linux на десктопе существенно больше, я затронул лишь самую очевидную верхушку. Начиная от крайне узкотехнических проблем вроде отсутствия поддержки криптоконтейнеров через pkcs#11 в GnuPG или проблемах линковки библиотек в разных системах, кошмарное количество уже написанного legacy, которое набило оскомину абсолютно всем (собственно, на одном из проектов над которым работал, видел реально рабочий и до сих пор активно эксплуатирующийся софт, написанный на Oracle Forms 6i, например). Или если уж совсем энтерпрайзно — SLA. Точнее, его отсутствие.
А почему Linux не пошёл в госсекторе, писал добрых семь лет назад. И за эти годы ситуация практически не изменилась. Если не сказать — стало хуже.
Дискасс.