Найти в Дзене
Электромозг

Почему с использованием открытого ПО наша IT-отрасль не станет передовой

Оглавление

Я долго думал, почему программисты в целом негативно воспринимают идею создания собственной отечественной операционной системы вместо форков устаревающего Линукса. Я написал ряд статей на эту тему, показывая, почему имеет смысл создавать новое, но тщетно. И мне кажется, я понял, в чём проблема.

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

Итак, в чём проблема недопонимания? Программисты — это очень конкретные ребята, технари. Они сами, как компьютеры. Поэтому они формулируют свои решения, принимая в расчёт только железную машинную логику. Если не выходить за рамки машинной логики, действительно становится непонятно, зачем писать больше, если можно писать меньше. Или зачем что-то делать самому, если можно купить... ну, вы поняли.

Есть свободное программное обеспечение, которое можно форкать (копировать исходный код себе) и дорабатывать его уже самостоятельно, чтобы минимальными усилиями достичь поставленной задачи. Эта философия является предельным абсолютом программистской логики. За минимум ресурсов достичь максимум пользы. Идея настолько великолепна, что овладела умами практически всех наших программистов. Многие выросли на этих идеях и все другие варианты воспринимаются, как заведомо ложные.

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

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

А ещё можно использовать более дешёвых программистов, которых за те же деньги можно взять больше. Тогда, тем более, без открытого ПО, которое можно взять за основу проекта, никуда. Среднестатистическому программисту вполне под силу отыскать уже готовые свободно распространяемые продукты и отвёрточной сборкой слепить из них нечто, подходящее под выданное ему ТЗ (техническое задание).

Правда, всё это очень логично? Ну прямо очень! А тут какой-то чудик постоянно предлагает писать какую-то новую операционную систему с нуля, софт под неё, а ещё и драйверы. И при этом твердит о каких-то непонятных и абсолютно не связанных с программированием вещах про устаревший Линукс и отрасль, которая на нём не взлетит.

Постараюсь объяснить свою точку зрения, используя более глубинные сущности. Я буду говорить о вещах, которые большинству оттрафареченных философией открытого ПО программистов будут не понятны. Но я всё равно попробую.

Эмоция

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

-2

Эмоция в данном виде деятельности часто является паразитной составляющей, но она всегда присутствует в той или иной степени. Поэтому для программиста тоже важны эмоциональные стимулы. Хорошим эмоциональным стимулом, например, может являться осознание получения зарплаты не ниже, чем у конкурента.

Но этот стимул далеко не единственный. Многие не осознают, но для человека всегда приятнее работать в проекте, результат которого уникален. Участвовать в разработке продукта, который будет являться достижением, показателем состоятельности твоей компании или даже твоей страны. Инстинкт соревновательности никто не отменял. Не сомневаюсь, что при прочих равных, в компании, объявившие о таких целях, потянется больше соискателей.

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

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

А вот с открытым ПО такого не случается. Такие проекты продолжают существовать, поддерживаться всё меньшим числом программистов, и фактически превращаются в зомби. Они существуют, хотя их развитие уже никому не нужно. В лучшем случае, они становятся донорами устаревшего кода, сопровождающегося немалым количеством так или иначе накопленных за долгую жизнь костылей.

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

Линукс

Теперь посмотрим на ещё один продукт. Продукт родился как открытый и свободный 30 лет назад, и уже в то время был реализован на принципах, стандартах и соглашениях, сформировавшихся в 70-е — 80-е годы прошлого века. Это был не выдающийся для того времени продукт, а просто некий упрощённый вариант, построенный на принципах, использующихся в более старых продуктах.

На первых этапах за счёт своей простоты, бесплатности и открытости продукт получил бурное распространение, хотя и не нёс ничего нового кроме этой самой открытости. За счёт неё он удовлетворил созидательную потребность энтузиастов и неплохо развился за счёт формирования вокруг себя модульного функционала, написанного широким кругом различных разработчиков.

Продукт прекрасно проявил себя среди профессионалов в консервативном функционале серверов, и за неимением более удобной и доступной альтернативы завоевал себе этот рынок. Да, этим продуктом был Линукс.

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

Линукс начал решать эту непосильную для себя задачу, и многим энтузиастам в 90-е и нулевые казалось, что цель уже близка. Но время шло, появлялись всякие красивые трёхмерные рабочие столы и прочие рюшечки, но принципиально ничего не менялось. Написанные для Линукса на начальном энтузиазме программы замерли в своём развитии. Нет, на таких подходах построить качественную ОС для ПК нельзя.

На создание больших и качественных программных продуктов сообщества энтузиастов уже не хватает Для всего этого нужна воля мощного материально заинтересованного руководителя, а философия открытого и свободного ПО такого руководства не предусматривает.

Отдельной болью Линукса стали его многочисленные графические интерфейсы с пользователем. Казалось бы, должна быть конкуренция в битве за лучший интерфейс операционной системы и фреймворков приложений. Но на настоящих дизайнеров, видимо, ресурсов уже не хватало ни у кого, да и программистов, судя по скорости разработки, явно тоже не хватало. Даже KDE, выглядящий великолепно на фоне остальных рабочих столов, выглядит топорно по сравнению с интерфейсом, например, Windows 7 (потом пошла деградация в угоду планшетам).

Надо признать, что примерно так же выглядела и операционная система OS/2 по сравнению с Windows 95. Но та хотя бы работала без неожиданностей, интерфейсных слётов и тормозов, а также прекрасно настраивалась, в то время как настройка Линукса — задача не для пользователей, а для системных администраторов.

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

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

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

Кстати, как показало исследование Linux Foundation 2008-го года, «ни одна из финансирующих разработку Линукс компаний не оказывает поддержку в порядке благотворительности; каждая из них считает, что совершенствование ядра поможет им повысить свою конкурентоспособность на соответствующем рынке».

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

Дырки заткнёт, да. Но строя свою IT-отрасль вокруг Линукса мы получим не самостоятельную, бурно развивающуюся отрасль, а унылый, бесперспективный, не окупающийся бесплатный придаток для таких транснациональных корпораций, как IBM, Intel, Red Hat, Novell и т.п., которые и являются его основными бенефициарами.

А что сделает отрасль лидирующей?

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

Кроме того, в таких делах очень важна эмоциональная составляющая. Отрасль не будет лидировать на чужом коде и чужих идеях. Чтобы программистское и пользовательское сообщество толкали IT вперёд, им нужно почувствовать воодушевление, гордость за свой продукт. А для этого он должен быть своим, от идеи и архитектуры до кода большинства модулей. Размножение клонов Опен Офиса нужного воодушевления не даст. Цель мелковата.

Я не говорю о том, чтобы абсолютно каждый байт писать с нуля. Конечно, можно и нужно использовать готовые, хорошо отлаженные, эффективные и зарекомендовавшие себя компоненты. Но они не должны представлять собой большую часть ядра приложения! Это как с микроэлектроникой, элементная база, чёрт с ним, может быть и китайская, но платы разрабатывать и паять нужно самим!

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

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

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

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

Многие боятся проблемы отсутствия драйверов. Ну вообще-то, открытые драйверы как раз можно портировать из Линукса. Ну или никто не запрещает сделать новую систему совместимой с драйверами Линукса или даже Windows.

Слава богу, хоть отпала тема стоимости написания ОС и базового комплекта ПО. В своих статьях я показывал, что даже для такого количества во многом избыточного кода, которое есть в Windows, сумма оказывается вполне приемлемой, некоторые самолёты дороже стоят. Не говоря уже о том, что для первой версии нужно существенно меньше кода, а далее система уже будет сама зарабатывать и окупаться. А время — да, времени нужно много, но именно поэтому нужно начинать уже сейчас. Сейчас вообще самое удобное время — Windows перестала быть конкурентом.

Заключение

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

Только бабло — это унылый тупиковый путь. Бабло необходимо, но обязательна и большАя общая цель. А она не может быть унылой, она должна заражать и воодушевлять. Линукс, увы, уже на это не способен. Нужно заканчивать с инфантилизмом опенсорса и начинать большой отечественный проект!

Кстати, даже если новая ОС не сможет стать достаточно популярной, а такая вероятность есть, если, как у нас принято, за проектом постоянно не следить и не пинать его, то, по крайней мере, он научит большое количество наших программистов думать шире философии «опенсорса», и даже уже под тем же Линуксом реализовывать свои собственные идеи, а не форкать и допиливать чужие.

В отрасли нужно сломать тупиковую философию тотального свободного программного обеспечения. Наряду с открытым ПО должен существовать и мощный проприетарный сектор, который и будет двигать программистскую мысль вперёд, а не замыливать её копипастой, как это зачастую провоцирует «опенсорс»..

Сильно тапками не бейте ))) На сегодня всё. Ставьте нравлики, подписывайтесь на канал и делитесь своими мнениями в комментариях. Дискуссии приветствуются. Пока!