Найти тему
Электромозг

Что не так с российскими программистами?

Оглавление

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

Для предупреждения глупых комментариев из серии «автор не в теме» или «автор не представляет себе программирования», замечу, что первое моё знакомство с программированием произошло в 1984 году, когда у меня появился советский программируемый микрокалькулятор МК-54 (функциональный аналог советского же Б3-34). Затем, после службы в Советской Армии, с 1992 по 1994 годы я программировал на ассемблере на советском бытовом компьютере БК 0010-01 (архитектура DEC PDP-11 — да, тогда СССР зачем-то копировал западные архитектуры и системы команд, хотя никакой выгоды это так и не дало), а с 1994 по 2000 — тоже писал на ассемблере, но уже для компьютеров архитектуры x86. После 2000 года, когда понадобилось писать коммерческие проекты, а, стало быть, писать много и быстро, я перешёл на Delphi. Затем немного был C, C++, а позже Java и Kotlin для программирования смартфонов. Ну и, конечно, языки для создания web-сайтов типа perl, php я тоже использую.
Микросхемы, использующиеся для расчётов и управления в калькуляторе Б3-34
Микросхемы, использующиеся для расчётов и управления в калькуляторе Б3-34
Так почему же я качу бочку на своих же? Почему у меня иной взгляд на пути развития отечественной IT-отрасли, отличающийся от взгляда большинства программистов? Всё просто. Во-первых, я начинал программировать ещё при СССР, и у меня не привита привычка постоянно смотреть на запад и ощущать себя его частью. Во-вторых, мне 51 год, а это тот краткий миг, когда мудрость уже пришла, а маразма ещё нет (шутка). Другими словами, в моём возрасте уже можно правильно оценивать глобальную ситуацию не только сиюминутно и тактически, но и в долгую, и стратегически. Да, к сожалению, мозг получает такую физиологическую возможность лишь с возрастом. Ещё лет 15-20 назад я был готов ходить с флагами за открытое западное ПО, не понимая очевидных сейчас уже вещей.

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

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

Так почему же открытое ПО — это плохо?

  1. Из-за формы использования открытого программного кода. Очень часто программист берёт готовый открытый проект, немного его дорабатывает, и потом проект объявляется российским — цинизм этой ситуации вызывает негативную реакцию в обществе. Тошно уже от «российских» Линуксов.
  2. Когда основной проект-первоисточник дорабатывается и меняет свою версию, нашим программистам приходится вдогонку вносить изменения и в свой проект, чтобы базироваться на более свежей основе. Это напрочь убивает желание да и возможности активно развивать проект самостоятельно. Зачем, если можно подождать внешних изменений, лениво порисовать условные «нескучные обои», и потом, когда первоисточник обновится, соответствующим образом обновить и свой проект. Да и у первоисточников весь процесс развития, как правило, довольно вялотекущий, и часто там вообще не просматривается никакого желания реального развития.
  3. Прививается привычка не создавать, а копировать. Как привыкли, видимо, делать это в школе. А значит, в экосистеме Линукса нет и больше не появится ничего нового в глобальном смысле этого слова. Работа будет медленно продолжаться, но не приведёт ни к каким видимым пользователю результатам, как не приводила в течение всех последних лет.

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

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

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

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

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

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

Кстати, я не удивлюсь, если 90% программистов в России оппозиционно настроены к собственному государству. Вот и Беларусь недавно именно программисты, похоже, чуть и не погромили. В общем, несознательный они народ ))) Ненадёжный элемент, так сказать...

Где-то с год назад я уже доказывал, что вполне реально написать и свою операционку общего назначения и свой парк основного ПО для неё. И для этого не нужно больших средств (я приблизительно подсчитывал, на строительство инфраструктуры к олимпиаде 2014-го года ушло на порядок, а то и на полтора порядка больше). Нужно лишь время, чтобы нагнать по функционалу конкурентов, а это около 10 лет. Это немного, учитывая, что первые рабочие версии могут появиться уже года через 2-3. Да и, между нами говоря, такой функционал, который есть у современной Windows уже и не нужен. Она перегружена дублирующими технологиями и хвостом совместимости со старым кодом.

С драйверами тоже никаких проблем нет, как нет проблем с айфонами, в которые уже около 10 лет, как встроен ГЛОНАСС. Все производители, которые не захотят потерять рынок, как миленькие напишут драйверы для своего оборудования под любую массовую ось, стоит только ей захватить ощутимую часть рынка. Написать драйвер — для производителя копейки по сравнению с разработкой железа.

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

А что даст разработка и написание собственной ОС?

  1. Мёртвые деньги, лежащие в ФНБ, начнут работать в экономике. У программистов зарплаты станут ещё выше, поскольку на них вырастет спрос. И не только на программистов. Начинать нужно с математиков. ОС не пишется просто так. Сначала нужно провести НИРы по алгоритмам, архитектуре и т.п. Посмотреть, как лучше построить ОС, чтобы она одинаково хорошо работала и на Эльбрусах, и на Байкалах, и на SyntaCoRe. И исходя из этих потребностей а также потребностей пользователей разработать проект. И только потом привлекать программистов, дизайнеров и других специалистов для его реализации.
  2. У программистов появится азарт, ибо работа над полностью новым, отечественным проектом такого ключевого продукта, как операционная система общего назначения, воодушевит людей. Может быть, тогда программисты станут и более патриотично настроенными, прикладывая совместные усилия для создания отечественного продукта, и не будут прыгать по иностранным фирмам, как это происходит сегодня.
  3. Отечественной операционной системе нечего делать на международном рынке. IT-рынок России достаточно большой, чтобы даже путём прямой бухгалтерии окупить все расходы, не говоря уже о потенциальной прибыли от более эффективной архитектуры ОС и, как следствие, увеличения производительности вычислительных комплексов, заточенной под наши процессоры. Но это не отменяет возможности экспорта этой ОС вместе с экспортом российских процессоров. Но это, как говориться, вопрос опциональный. В случае железного занавеса, который над нами завис, про экспорт в «демократические» страны как процессоров, так и ОС, можно забыть. Но всегда остаются другие рынки, на которых вполне можно конкурировать.

А вот чего не стоит делать?

  1. Разумеется, не стоит отказываться от участие в проектах открытого ПО. Пока своя ОС будет разрабатываться, да и потом, после её создания, нужно продолжать разрабатывать и собственные дистрибутивы Линукса. Нужно также стараться максимально участвовать в проектах с открытым кодом. Это тоже будет весьма полезно.
  2. Не нужно дискредитировать сторонников написания собственной ОС предложениями писать её код на русском языке. Ребят, это уже перебор. Во-первых, англоязычные лексемы заменить на русскоязычные вообще не проблема в любом языке, но в реальности это даст только усложнение визуализации исходника. Русские слова длиннее английских, а при сокращении превращаются в нечитаемые аббревиатуры. Такое могут предлагать только люди, никогда не программировавшие.
  3. Не нужно требовать как обязательное условие — написание ОС на отечественном языке программирования. Отечественный язык Котлин вряд ли подойдёт для системного программирования, а разработка специального языка, хотя и весьма заманчива, но отнимет лишние год-два от времени написания ОС. В конце концов, производство средств производства и на заводах начинается с зарубежных станков. Но если инициатива по написанию современного языка для системного программирования от реальных разработчиков поступит, я буду только за. Но этот язык должен стать ощутимо удобнее существующих для выполнения поставленной задачи, иначе смысла в его написании будет не так много, как могло бы быть.

Заключение

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

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

Ставьте лайки, пишите комментарии и подписывайтесь на мой канал. Пока!