Свободное или отечественное ПО. Стандартное или свободное обучение

    В начале февраля в Переславль-Залесском прошла пятнадцатая конференция “Свободное программное обеспечение в высшей школе” организованная компанией “Базальт СПО”. В данной статье я хочу поднять несколько вопросов, которые мне показались наиболее важными, а именно, какое ПО лучше: свободное или отечественное, и, что важнее при обучении специалистов в IT области: следование стандартам или развитие самостоятельности.

    Свободное ПО vs Отечественное ПО


    Начну с вопроса, свободное ПО или ПО из реестра отечественного ПО. Я не случайно написал не отечественное ПО, а ПО из реестра отечественного ПО, поскольку вопрос, что считать отечественным, а что нет, часто поднимался на конференции, например, в совместной (МТУСИ и СиСС) серии докладов о “Типовом Отечественном Модуле Изучения Интернет-Технологий” (ТОМИИТ). Отечественным являлись аппаратные части, в частности, ПК на базе процессоров Эльбрус. Но исследовались обычные, протоколы маршрутизации RIPv2, OSPF, BGP, OSPFv3, RIPng. В итоге я не выдержал и задал вопрос докладчикам, а чем же ваш отечественный модуль отличается от обычного? Но давайте по порядку.

    Проблема различия отечественного и свободного ПО ярко проявилась в докладе Рената Лашина, исполнительного директора АРПП «Отечественный софт» под названием “О деятельности Ассоциации АРПП по обеспечению совместимости отечественных решений и образованию”. В докладе было отмечено, что ассоциация АРПП занимается поддержкой отечественного ПО, уже выделено более миллиарда рублей на поддержку отечественного системного ПО и ведутся работы по выделению десятков миллиардов. Доклад был настолько сильно ориентирован на отечественное ПО, что естественно вызвал вопрос от участника конференции: “мы же на конференции по Свободному Программному Обеспечению, а Вы говорите об отечественном, как Вы и ассоциация, которую Вы представляете, относится к свободному ПО?”. Суть ответа была следующей: мы в ассоциации конечно любим СПО и раньше считали СПО вполне отечественным, но выяснилось, что за СПО может никто не отвечать, следовательно могут возникнуть сложности с качественной поддержкой и сопровождением. Другое дело, когда коммерческая компания помещает свои продукты в реестр, независимо от модели разработки и распространения, эта компания и будет оказывать услуги по поддержке.

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

    На конференции был доклад, который представила активистка СПО (да, оказывается есть и такие) Софья Зверева ”Органайзинг в сфере СПО. Привлечение студентов к разработке и использованию СПО.“. Доклад показал, что сомнения в качестве СПО вполне обоснованны. На одном из слайдов был показан скриншот, на котором в мобильном приложении была произведена “русификация”. В меню надпись на английском (латинице) заменили на надпись на русском (кириллице) commit message был приблизительно такого содержания “Привет от юриста”. Слайд должен был показать, что любой может внести код в понравившийся проект и тем самым происходит улучшение продукта. Но поскольку в зале присутствовали разработчики, похвалив за прекрасный порыв, они все таки отметили, что возможно разработку стоит оставить профессионалам, ведь в проекте не предусмотрена локализация, то есть замена проводилась прямо в коде. А что будет если кому-то не понравилась предложенная надпись, и он сменит ее на другую, которая нравится лично ему, на башкирском (ничего не имею против этого или какого-то другого языка). Кто отвечает за ПО, которое устанавливается конечному пользователю? Получается, что просто большое количество народу вряд-ли может улучшить продукт, а вот ухудшить может. Ну или другими словами, интернет опроверг идею о том, что если дать большому количеству обезьян пишущие машинки, то они рано или поздно напишут “Войну и мир” ( теорема о бесконечных обезьянах).

    Казалось бы все верно, идея о создании реестра отечественного ПО, решает проблему с качеством ПО, и поддерживать стоит участников включенных в этот список. Но посмотрим на эту проблему с другой стороны. В этом же докладе был приведен закон диалектики о переходе количества в качество, вот он и раскрывает преимущества СПО. Иными словами, программный продукт, если он распространен только на локальном рынке всегда будет проигрывать аналогичному на глобальном рынке. Я конечно не имею в виду локализацию и какие то узкоспециализированные вещи. Но согласитесь, чем больше используется продукт, тем лучше он протестирован причем в самых разных условиях. А если продукт мало используется, то он может обладать только очень ограниченной качественной функциональностью. Ведь при добавлении новой функциональности, неизбежно возникают ошибки! Эту проблему не удается преодолеть с помощью современных средств разработки: анализаторов кода, современных языков программирования, систем интеграционного и непрерывного тестирования и так далее. Просто потому, что современное ПО, настолько разрослось по размеру (функциональности, количеству строк кода и так далее), что трудно даже обеспечить приличное покрытие тестами.

    В докладе Стаса Фомина под названием “Udaff — русский пиктографический Python. От элементарных алгоритмов до гомоморфного шифрования” , автор прекрасно показал проблемы отечественности на примере создания сред программирования. Очень многие из подобных попыток (создание русскоязычных сред программирования) оправдываются улучшением обучения. В результате создаются непонятные языки, “русский Си”, “русский Питон” и так далее. Данные языки в лучшем случае используются только самими создателями, а в особых случаях, их в приказном порядке внедряют в образовательный процесс. Автор же предложил, если действительно требуется русскоязычный язык программирования, путем относительно простых манипуляций (замены ключевых слов на кириллические) использовать оригинальный python, для которого уже есть куча прекрасных и удобных сред разработки, отлаженных библиотек и всего, что только нужно разработчику, ведь язык широко распространен в мире. Рассказав о преимуществах подхода, автор предложил заинтересованным лицам продолжить проект совместно с последующей коммерческой поддержкой, то есть в полном соответствии с идеями СПО.

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

    Но вернемся, к предложенному в докладе про “русского змея” подходу. Точнее, порассуждаем к чему может привести противоположный подход, создание собственного проприетарного языка с нуля. Компания (или организация) выпустила некий проприетарный программный продукт и внесла его в реестр отечественного ПО. Для примера вернемся к языкам программирования, “русский Паскаль”. Понятно, что с оригинальным Паскалем у этого языка общим будет только название. Часть госкомпаний в обязательном порядке переходит на эту технологию. На нем начинается разработка, разработать нужно в том числе и все библиотеки, на это из государства выделяются деньги, Проходит 5 лет и компания разработчик этого языка, становится монополистом и может оказывать услуги не надлежащего качества за несуразные деньги. Ведь понятно, что компания не сильно заинтересована в развитие технологии и продукта, деньги получаются не за качество ПО, а за то что никто не может предложить аналог. В модели же СПО, ни одна компания, даже создатель русскоязычного языка, не может стать монополистом, ведь другая компания сразу предложит альтернативное решение по поддержке и развитию продукта.

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

    За примером успешной реализации подхода основанного на СПО и локализации (коммерческой поддержке) далеко ходить не нужно. Конференция была многолюдная, присутствовали много представителей различных учебных заведений, которые очень хорошо отзывались о поддержке ОС Альт различных требований со стороны МинОбразования (или как там оно сейчас называется). Так в дистрибутивы “Альт-Образование” по умолчанию входят различные пакеты, которые требуются в учебной программе. Конечно высказывались и недостатки, но нужно понимать, что если бы Базальт-СПО не прислушивался к своим пользователям, не происходило бы улучшение продукта, и эту нишу легко могла бы занять какая-то другая компания.

    Для иллюстрации преимуществ открытости ненадолго вернусь к “Типовому Отечественному Интернету”. Как я уже говорил, основной упор делался на то, что использовались “отечественные” элементы: ПК на процессорах Эльбрус и ОС Альт из реестра отечественного ПО. К ОС Альт вопросов в плане открытости и качества ПО нет, и любой желающий может проверить заявленные характеристики или использовать альтернативные решения. А вот у архитектуры Эльбрус (e2k) такой возможности нет. Производитель, компания МЦСТ, не раскрывает деталей реализации, и является по сути дела монополистом при разработке ключевых программных компонентов экосистемы: кросс-компилятора и ядра Linux, что сильно тормозит развитие этой архитектуры. На конференции доклад делал представитель другой компании производителя процессоров “Байкал-Электроникс” Роман Ставцев. Доклад назывался “Отечественные аппаратные платформы «Байкал» для СПО”. В нем рассказывалось о моделях процессоров этой компании Байкал-Т1 и Байкал-М, оба они основаны на ядрах с открытой (описанной) архитектурой (mips32, aarch64) соответственно, все средства разработки есть в открытом доступе, и любой может предложить альтернативу. Что конечно сильно увеличивает привлекательность платформы, ведь удешевляет решения на ней и снижает риски при ее использовании. На самом деле в МЦСТ, также понимают проблему закрытости архитектуры и недавно выпустили описание команд.

    Моя позиция по данному вопросу наверное понятна, достигнуть технологической независимости можно только развивая ПО, а не просто покупая его. Включение же в реестр отечественного ПО, относится именно к продажам. Нет, конечно поддержка отечественного производителя очень важна, и очень важно, что есть поддержка со стороны государства и таких ассоциаций как АРПП. Но также важно, чтобы это ПО было мирового уровня (или становилось таким в будущем), а это легче достичь с помощью модели СПО. И я надеюсь описанное в статье “Личный опыт: как я подавал заявку в реестр отечественного ПО, и обнаружил запрет для всех версий Linux” сильно преувеличино.

    Образование по стандартам vs Свободное образование


    Еще одним важным вопросом вынесенный в заголовок является “Так какое же нам IT образование нужно: стандартное или свободное?” На мой взгляд, этот вопрос сильно пересекается с вопросом с одной из предыдущих конференций, описанным мной в статье “Как поймать программиста на списывании и стоит ли этим заниматься”, но в более общей форме.

    Для того чтобы начать рассматривать разные подходы нужно сформулировать проблему (или проблемы), которую мы пытаемся решать. Так в докладе Владимира Сухомлина “Концепция навыков информационного века и принципы ее реализации в системе развития цифровых навыков ВМК МГУ и Базальт СПО“ , автор, сформулировал проблему следующим образом. Грядет цифровая экономика, отрасль бурно развивается, появляется большое количество новых специализаций, образовательные стандарты устаревают, но специалисты в области цифровых технологий требуются экономике, а соответственно, их нужно обучать необходимым для их рабочего места навыкам. Автор предложил два пути решения проблемы улучшения IT образования. Во-первых, использовать не российские стандарты, а “стандарты навыков информационной эпохи SFIA” или аналогичные, поскольку это уже разработанные методики, по которым работают в мире. Во-вторых, использовать платформу, которая позволяет формализовать описание навыков для конкретных специалистов. Иными словами, создать карту навыков и умений для любого специалиста. Например, какой-то компании требуются специалист, компания может посмотреть в классификаторе, какой именно специалист ей необходим, или дополнить классификатор новой строчкой указав какие навыки для новой специализации требуются.

    Во время вопросов прозвучали сомнения в обоих подходах. Ведь по сути одни стандарты заменяются на другие, которые также устаревают, а с подбором специалистов в IT компании с успехом справляются и HR специалисты, без всяких карт и классификаторов навыков.

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

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

    Ну взять, например, удаленное обучение, в начале февраля никто не мог представить, что все ВУЗ-ы будут вынуждены перейти на удаленку и одним из основный инструментов станет Zoom. Да, дистанционное обучение набирает обороты, было несколько докладов посвященной данной теме, например, доклад Льва Чернышова “Система онлайн-тестирования с открытым кодом” или доклад Ивана Хахаева “Снова об оценке электронных образовательных ресурсов”.

    Но до пандемии и резкого перехода на удаленку дистанционное обучение рассматривалось скорее как вспомогательное. А с приходом коронавируса все изменилось, и пришлось срочно искать выход.

    То есть проблема гораздо шире, чем просто выявление и формальное описание требуемых навыков. В Embox предлагается другой подход, ему был посвящен доклад Антона Бондарева (мой) “Embox — путь от студенческой забавы до проекта с открытым кодом”. Суть нашего подхода заключается не в предоставлении конкретных знаний студенту, а в развитии у него способности самому получать знания, и, что очень важно, в умении самостоятельно выбирать какие знания и направления развития ему нужны.

    Конечно, никто не отменял базовые знания: математика, логика, алгоритмы и структуры данных остаются неизменными, и, что самое главное, они заставляют учиться думать определенным образом. Так, на конференции был доклад Сергея Абрамова “Haskell, как первый язык программирования”, данный язык заставляет думать в функциональной парадигме, что очень полезно. Но, например, изучение конкретного языка, среды разработки или базы данных, кто может сказать, какая технология будет востребована? К тому же, высшее образование подразумевает, именно способность создавать эти самые несуществующие технологии. Как такому научить? Сложный вопрос, но мне почему-то кажется, что загон студентов в рамки зачетов и оценок вряд ли этому способствует. Отсюда и подход Embox — студент делает то, что ему интересно, а мы выступаем старшими товарищами (менторами, наставниками) и помогаем ему в этом начинании. К тому же, мы вовлекаем студентов в мир СПО, в котором существует множество других проектов и направления кроме Embox. И конечно нужно учитывать что участие в подобных проектах гораздо более эффективно чем выполнение стандартных учебных заданий, ведь эти проекты являются промышленными и в них приняты промышленные процессы разработки.

    В этом году Embox участвует в качестве менторской организации в “Google Summer of Code” (GSoC). Замечательная инициатива, которая позволяет студентам со всего мира пройти стажировку в проекте, которые его интересует. То есть, компания Google не заботится о стандартах, но умудряется выращивать (помогает это делать) IT-специалистов очень высокого уровня. Процесс не содержит получение конкретных знаний, это отдано ВУЗ-ам, ведь только студенты ВУЗ-ов могут принять участие в программе. Процесс не требует участия только в проектах компании Google (или американских), но процесс работает, основан на СПО, и позволяет относительно небольшими затратами во взаимодействии с сообществами получить качественных специалистов, способных и дальше развивать технологии и строить цифровую экономику.

    Конечно это далеко не полный перечень докладов с конференции, посмотреть остальные вместе с презентациями и тезисами их можно на 0x1.tv .

    Правда живое общение на конференции трудно заменить, и можно посетить следующую конференцию, к тому же в Переславль-Залесском есть много интересного, например, компьютреный музей расположенный в том же здании где проходит конференция, немного фоток из него у нас в группе.
    Embox
    Открытая и свободная ОС для встроенных систем

    Похожие публикации

    Комментарии 6

      0
      Пожалуйста, укажите лицензию, по которой можно свободно использовать эту статью.

      Спасибо!
      0
      Ну или другими словами, интернет опроверг идею о том, что если дать большому количеству обезьян пишущие машинки, то они рано или поздно напишут “Войну и мир”

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

        0
        Прошу всё же не забывать, что вы являетесь таким же обществом обезьян, которые собрались вместе друг друга почесать.

        Безусловно.

        Люди способны к сотрудничеству и не стараются ухудшить софт.

        Безусловно, СПО, википедия и многие другие вещи это доказало.

        Я в статье об этом и говорю, В рассуждениях про конкретный коммит, речь шла о понимании проблемы, что за продукт должен кто то отвечать. Ну а органазинг в СПО, прекрассная инициатива, как и вовлечение пользователей в процесс разработки, В этом вовлечении как минимум можно научится разрабатывать ПО и управлять (организовывать) проектами. Именно по этому пути и шел Embox :)

        К тому же, вовлечение пользователей в процесс влияния на разработку, это как раз лежит в основе идей СПО!
          0
          Разве коммиты принимаются автоматически, без проверки?
            0
            Куда?
            Если Вы имете в виду тот слайд с коммит меседжем, то думаю он был проверен, и кто то его включил в проект. И это с точки зрения обоих участников улучшило продукт, но я привел аргументы почему это не всегда так. С другой стороны как я написал в предыдущем коментарии участие и осознание ошибкок это и есть процесс обучения.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое