Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

История развития программирования в России(Теоретические аспекты программирования, его история)

Содержание:

ВВЕДЕНИЕ

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

Однако, помимо лидерства на сырьевом рынке, Россия занимает первое место в мире по количеству технических специалистов. Согласно отчету World Bank/UNESCO, более миллиона человек в стране работает в области научных исследований. У России есть все предпосылки для того, чтобы стать заметной силой на международном рынке программирования.

Новые технологии появляются крайне быстро. Если еще двадцать назад, в среднем, революционные разработки появлялись раз в 10 лет, то сегодня эта цифра составляет приблизительно один календарный год.Много идет разговоров о том, что некоторые профессии перестанут существовать, как таковые, из-за автоматизации процессов искусственным интеллектом.

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

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

Технология программирования в СССР и России как отдельная дисциплина начала складываться уже к середине 60-х годов. Первоначально вопросы технологического подхода к созданию программ и программных продуктов рассматривались исключительно в аспекте «автоматизации программирования» и создания «программирующих программ», прежде всего компиляторов с основных языков программирования того времени – автокод, Фортран, Алгол-60, Лисп. Параллельно с этим развивался структурный подход, связанный с изучением схем программ и формальным доказательством их свойств. Важными практическими результатами в этом направлении стали работы А.Л. Фуксмана, В.В. Липаева и И.В. Вельбицкого и созданных ими школ, специально рассматривавших процесс создания программных продуктов. Однако их подходы базировались на модели крупных вычислительных центров, впоследствии выросших в центры коллективного пользования с системой разделения времени на одной или нескольких больших ЭВМ.

Объект исследования: Этапы развития программирования в России.

Предмет исследования: Современное состояние программирования в России.

Цель работы: Исследовать основные этапы программирования в России.

Задачи работы:

  • Рассмотреть сущность и роль программирования в современном мире;
  • Изучить становление дисциплины программирования в России;
  • Исследовать историю языков программирования в 1970-е;
  • Провести сравнительный анализ системных программ первых ЭВМ в СССР;
  • Охарактеризовать российскую индустрию программирования;
  • Выявить проблемы и перспективы программирования в России.

В работе использованы труды таких авторов как: Ашарина, И.В. Основы программирования на языках С и С++, Баженова, И.Ю. Языки программирования, Баранов С.Н. Становление дисциплины программирования в России, Бурняшов Б.А. Проблемы программного обеспечения профессионального образования России и др.

  1. Теоретические аспекты программирования, его история

1.1. Сущность и роль программирования в современном мире

Программирование — это процесс и искусство создания компьютерных программ. Сюда входят написание кода и сценария, составление алгоритма, разработка программного обеспечения, вёрстка, дизайн и многое другое. Основа программирования — специальные языки, на которых записываются исходные тексты программ [2, с. 177].

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

Формирование феномена в поле науки – новой дисциплины (от лат. disciplina – учение), или субполя науки по П. Бурдье, – одно из актуальных направлений науковедения [7, с. 58]. И.Т. Касавин утверждает, что «дисциплина и наука – понятия не тождественные, хотя в современном науковедении они нередко не различаются. Первичность науки или дисциплины – дискуссионный вопрос [14, с. 8].

Есть основания полагать, что зрелое теоретическое знание существует, как правило, в особой организационной форме дисциплинарности, обеспечивающей его аккумуляцию, трансляцию и модификацию».

По определению Э.М. Мирского научная дисциплина – это «базовая форма организации профессиональной науки, объединяющая на предметно-содержательном основании области научного знания, сообщество, занятое его производством, обработкой и трансляцией, а также механизмы развития и воспроизводства соответствующей отрасли науки как профессии [20, с. 65].

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

В общем виде определение науки как социально-когнитивного института, а дисциплины как ее структурной единицы дано М.К. Петровым. Из данных контекстов следует, что «наука» и «дисциплина» соотносятся как общее и особенное [23, с. 112].

Термин «дисциплина» ассоциируется и с преподаванием, отличие дисциплины-науки от дисциплины-курса в вузе или предмета в школе – в объеме информации, предложенной обучающемуся, хотя основание останется единым. М.К. Петров рассматривает этот феномен в качестве дисциплинарных «тылов», которые требуют постоянной деятельности по «сжатию» накапливаемого дисциплиной знания до «курса», который транслируется индивиду ради его приобщения к дисциплинарной деятельности (подготовка кадров) [23, с. 114].

Опираясь на исследование М.К. Петрова, И.Т. Касавин предложил восемь составляющих всякой дисциплины: совокупность мыслящих индивидов, массив наличных результатов-вкладов, механизм их социализации-признания, механизм подготовки кадров, дисциплинарная деятельность и ее проявление в четырех основных ролях – исследователя, историка, теоретика и учителя; наличие теоретика-лидера, формирование сети цитирования, и последнее – предмет исследования [14, с. 10].

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

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

Наше время диктует новые условия буквально в каждой области деятельности. Если компания хочет облегчить жизнь себе и своим клиентам, обойти конкурентов, то будет внедрять компьютерные технологии. Музыкальная индустрия и кино, мультипликация и игры, мобильная связь, банковское дело, дизайн и журналистика — все области тесно переплетены с программированием и используют специальные программы на разных этапах работы [2, с. 180].

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

Мнения о количестве существующих языков программирования расходятся. Каждый день не только совершенствуются старые языки, но и разрабатываются новые, поэтому выбор для изучения велик. Однако наиболее востребованные, популярные и высокооплачиваемые последние несколько лет неизменны. По данным Github, это [3, с. 211]:

Javascript; Java; Python; PHP; C++; C#; Shell; C; Ruby; Objective C.

Стоит также обратить внимание на старый добрый язык разметки HTML, вырвавшегося в 2020 году в десятку лидеров TypeScript в рейтинге PYPL, и на перспективных новичков Kotlin, HCL и Go.

Некоторые из них используются для фронтенд-разработки, это HTML, CSS и Javascript. Другие применяются в бэкенде: PHP, Python, Go, Ruby [24].

https://avatars.mds.yandex.net/get-zen_doc/242954/pub_5ebd1ebc007045124bbc33ef_5ebd299fdcf6b713c6e2d34c/scale_1200

Рисунок 1 – Соотношение языка и подходящей области его применения [22, с. 155]

Изучение языков программирования открывает новые возможности и перспективы для каждого человека. Развитие навыков поможет найти работу мечты в каждой стране мира или же работать удалённо.

Работа программиста высоко оплачивается и будет востребована ещё много лет. Бюро статистики труда прогнозирует к 2026 году 30-процентный рост занятости в области разработки программного обеспечения. Некоторые компании охотно берут способных новичков, в других требуется опыт работы или сертификат об окончании обучения [18, с. 55].

Обучение программированию не проблема в нынешних реалиях. Существуют обучающие программы, интенсивы, онлайн-курсы, которые помогут новичку легко вникнуть в суть, и с нуля изучить программирование до того уровня, который позволит работать в интересующей компании [2, с. 179].

Согласно исследованиям, Python, HTML и Javascript доступнее всего для изучения и имеют низкий порог вхождения новичков. Они же, по данным исследований TIOBE и PYPL, самые востребованные. Однако не все компании отдают предпочтения традиционному подходу к разработке программного обеспечения, интерес к новым языкам растёт. Знать базовые языки, следить за тенденциями развития новых и по возможности изучать их особенности и есть задача грамотного программиста, смотрящего в будущее [18, с. 71].

Программирование занимает одну из значительных ниш в современном мире. Это не просто способ заставить работать «железяки», но и поставить себя на путь развития своих способностей. Но, прежде чем мы разберём все полезные свойства, следовало бы разобраться с терминологией. Программирование — область деятельности, направленная на разработку программного обеспечения, которое, в свою очередь, направлено на улучшение и облегчение человеческого быта, промышленной деятельности, сферы услуг и технологического прогресса [2, с. 181].

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

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

Стоит отметить, что на самом деле программирование представляет собой далеко не такой простой предмет, как это многим кажется на первый взгляд, хотя некоторые и вовсе воспринимают его в качестве хобби. Его сложность проявляется в том, что нужно обеспечивать серьезную умственную отдачу, что тренирует мышление, а также способствует развитию логики [18, с. 75].

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

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

В наше время компьютеры стали настолько распространенными, что используются практически везде в современной экономике, начиная от стадии производства товара из заканчивая его продажей. Без использования компьютеров и специализированных программ достаточно сложно уже представить, как бы все это могло функционировать. Задумываясь над этим, человек начинает осознавать, что по сути, в современной жизни программирование – это все, и даже если мы не имеем каких-то навыков в этой области, программирование так или иначе нас затрагивает [22, с. 160].

Разбираясь в программировании, можно создавать абсолютно любые веб-сайты, начиная от небольших одностраничек и заканчивая огромными интернет-магазинами, форумами и любыми другими форматами. Таким образом, программисты заработают себе всегда и везде – достаточно просто иметь доступ к компьютеру [2, с. 187].

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

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

1.2. Становление дисциплины программирования в России

По мнению ряда исследователей «импорто-внедрение» в ИТ-сфере началось ещё в СССР полвека назад, когда вместо выбора базовых направлений развития отрасли и ведущих разработчиков для основных классов ЭВМ (мейнфреймы, мини-ЭВМ и технологические ЭВМ) из числа отечественных конструкторов, было принято решение базироваться на образцах зарубежного производства, получивших широкое распространение в западных странах. На момент принятия этого решения некоторые отечественные ЭВМ (например, БЭСМ-6) по своим характеристикам опережали западные образцы [6, с. 51].

С крушением Советского Союза транснациональные корпорации под американской юрисдикцией IBM, Microsoft и Apple, оказавшиеся в силу объективных обстоятельств более мощными, чем бывшие советские предприятия информационно-технологической индустрии, получили неограниченный доступ к рынку информационных систем, компьютерного оборудования и программного обеспечения на постсоветском пространстве, в частности к рынку российскому. Российские школы и вузы вместо отечественных компьютеров «Агат» стали получать компьютеры с предустановленной операционной системой Windows и компьютеры Мас от Apple [10, с. 144].

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

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

Начало использования программно-целевых методов связано со сферой государственного регулирования и было характерно для индустриально развитых стран Европы в период с начала 1930-х гг. В середине 1960-х гг. данный метод относительно широко, особенно в США, применялся для целенаправленного формирования бюджетной политики и рассматривался как элемент непрерывного планирования. Также большой опыт разработки и реализации государственных программ, в том числе и научно-технических, накоплен в нашей стране [6, с. 53].

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

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

В 1990-е гг. большое количество принятых целевых программ, в том числе и касающихся развития исследовательской деятельности, не было подкреплено соответствующим финансированием из федерального бюджета [10, с. 151].

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

В 1984 г. в США был создан Институт технологии программирования (SEI – Software Engineering Institute) как научно-исследовательский центр с государственным финансированием из бюджета США при университете Карнеги-Меллон (г. Питтсбург, США), ориентированный на нужды Минобороны США [6, с. 55].

Он объединил ученых и практиков в области разработки программного обеспечения, задачей которых было дать обоснованную модель для предсказуемого процесса разработки программных продуктов для улучшения качества систем, зависящих от программного обеспечения. Основным достижением первой законченной модели CMM (1986) с последующим ее уточнением CMM for Software V1.1, (1993) можно считать определение 18 ключевых областей процесса – взаимосвязанных групп деятельностей, которые должны исполняться при создании программного продукта [6, с. 57].

Многие из этих деятельностей выполнялись и ранее на интуитивном уровне; модель CMM их точно определила и, что особенно важно, дала единую «мета-модель» для всех этих областей. Каждая ключевая область процесса характеризуется своими 3–4 целями, которые должны достигаться в процессе выполнения ее деятельностей, рекомендуемым перечнем самих этих деятельностей, обязательствами и возможностями по их исполнению, измерением, анализом и постоянным контролем хода и результата их исполнения [6, с. 58].

Последовавшее крупномасштабное внедрение этой модели в промышленном программировании при создании программных продуктов подтвердили ее высокую практическую значимость и реальное повышение качества конечного продукта при снижении затрат на его разработку и сопровождение, а главное – высокую предсказуемость самого процесса производства программного продукта. Настольной книгой разработчиков стала монография тогдашнего директора SEI У.С. Хэмфри «Управление процессом разработки программного обеспечения» [9, с. 134].

Кризис продолжался до начала 90-х годов. В процессе перехода на рыночную экономику большинство существовавших структур рухнуло, что привело, в частности, к радикальной смене преобладающей аппаратной платформы. В течение нескольких лет мэйнфреймы были потеснены мощным потоком персональных компьютеров; так, согласно оценке IDC, в 1997 году в России было продано 1,4 млн. компьютеров.

Переход на новую платформу создал потребность в целом ряде новых услуг, например, в разработке программ и системной интеграции, которые стали предоставлять молодые частные компании. Большинство современных лидеров в компьютерном бизнесе России — представители этой «новой волны»; сегодня такие компании вполне могут считать себя ветеранами рынка, несмотря на возраст от 8 до 12 лет [11, с. 177].

В России первые применения модели CMM состоялись в Санкт-Петербурге, затем в Москве, Нижнем Новгороде, Великом Новгороде и других городах. Автор участвовал в постановке процесса в компании ИДУ, созданной в 1993 г. на базе СПИИРАН для выполнения программных разработок по заказам компаний IBM и затем Motorola. Благодаря помощи специалистов Моторолы, процесс по модели CMM был поставлен в течение 1 года и уже в 1995 г. был официально сертифицирован на 3-й уровень зрелости, а накопленный опыт был впоследствии отражен в – первой отечественной монографии по данному вопросу [11, с. 180].

Процесс сертификации или оценивания уровня зрелости состоял в том, что сертифицированные специалисты в течение 4-х дней изучали предоставленную им документацию по уже выполненным проектам и проектам, находящимся в разработке. Кроме того, проводились собеседования с группами разработчиков и руководством компании, на которых участники рассказывали о том, как именно ведется работа в проектах, подтверждая сказанное документами из архива проекта. Важным аспектом было то, что оценщики вопросов, как правило, не задавали, а основывали свои выводы исключительно на той информации, которая им предоставлялась [6, с. 59].

В четвертый день оценивания были оглашены предварительные результаты, которые могли быть изменены, если разработчики представят новые документы, меняющие восприятие сложившейся у оценщиков картины, после чего в течение дня готовилось окончательное заключение, оглашенное на 5-й день оценивания. Наряду с вердиктом об установленном уровне зрелости, комиссия экспертов предлагала ряд рекомендаций по улучшению отдельный аспектов проектной деятельности [9, с. 136].

Компьютерный рынок быстро увеличивался вплоть до кризиса 1998 года. Отечественная компьютерная индустрия была одной из наиболее пострадавших из-за своей зависимости от западного рынка; лишь совсем недавно Россия снова вышла на уровень 1997 года по количеству продаваемых компьютеров. Тем не менее, сегодня перспективы компьютерного рынка в России выглядят очень хорошими; страна демонстрирует очень быстрый рост темпов продаж компьютеров, при том, что рынок еще ненасыщен: на 100 человек в России приходится всего лишь около 5 компьютеров (в США - 62).

1.3. История языков программирования: 1970-е

В 60-х годах 20 века программирование развивалось благодаря комитетам. В 70-х ситуация кардинально изменилась – теперь новые языки придумывали небольшие группы людей. Это произошло благодаря доступности компьютера – теперь заполучить ЭВМ мог буквально любой человек. Именно в 70-х берёт своё начало история языков Pascal и C [4, с. 110].

Dartmouth BASIC. Но прежде всего 70-е в программировании ознаменовались подъёмом BASIC. Он был создан в 60-х Джоном Кемени и Томасом Курцем в Дартмутском колледже в США, и должен был выполнить две основные функции [5, с. 207]:

Разработать систему и язык, который был бы дружелюбным, простым в освоении и использовании.

Сделать программирование общедоступным курсом. Однако мгновенного отклика BASIC не нашёл. Комитеты, отвечавшие за разработку Фортрана, Алгола и Кобола, преследовали совершенно иные цели, а потому на высших уровнях до образовательного языка долгое время не было никакого дела. В первой версии BASIC было несколько ограничений:

Оперировать можно было только функциями LET, PRINT, END, FOR, NEXT, GOTO, IF THEN, DEF, READ, DATA, DIM, GOSUB, RETURN и REM [4, с. 112].

Не было различия между целыми и действительными числами.

Имя переменной было ограничено одной буквой или одной буквой и цифрой.

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

Первые массовые ПК имели не более 4 Кбайта памяти, позднее – 16 Кбайт. В определённой степени это было возвращение на 20 лет назад, ведь компиляторы языка высокого уровня занимали сотни килобайт, поэтому часто приходилось работать с машинными командами и кодами. Но было одно исключение – BASIC [4, с. 115].

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

Altair-8800. ПК, который изменил мир. Первым совместным проектом Пола Аллена и Билла Гейтса был как раз интерпретатор BASIC для PDP 8 (мини-ПК). Они учились в средней школе, когда свет увидел компьютер Altair из MITS. Юные изобретатели увидели в этом уникальную возможность, урезали свой интерпретатор до 4 Кбайт так, чтобы он позволял системе запустить небольшую программу [5, с. 210].

Билл Гейтс утверждает, что им потребовалось три с половиной недели, чтобы подготовить первую версию и около восьми недель, чтобы отполировать ее. Чтобы вы лучше представляли, как сложно уместить интерпретатор в 4 Кбайт: им пришлось урезать традиционное READY до OK, чтобы выиграть три байта памяти [4, с. 129].

Продукт получил название «4K BASIC» – первая версия Microsoft BASIC. Было много других реализаций языка для Altair и не только - Tiny BASIC Ли Чен Вана, TRS-80 BASIC Стива Лэйнинера, EBASIC и CBASIC Гордона Эубэнкса, 6800 BASIC Роберта Уиттеркика, целая серия интерпретаторов BASIC для Apple от Стива Возняка. Но именно Microsoft BASIC Билла Гейтса оказал наибольшее влияние на программирование и ПО в целом.

Всё дело в его деловой хватке и даре убеждения – даже японцы купили Microsoft BASIC. Вишенкой на торте стало включение детища Гейтса и Аллена в IBM PC. Microsoft продолжала разрабатывать BASIC вплоть до 90-х годов, а окончательной версией стал Quick BASIC – полностью структурированный язык, который сохранил свою простоту и понятность [4, с. 130].

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

Взяв за основу Algol, в 1972 году Вирт создал язык Pascal, названный в честь французского математика XVII века Блеза Паскаля. Упрощение коснулось не только синтаксиса, но и компиляции. Например, функции и процедуры должны быть определены в начале программы, это позволяло использовать однопроходный компилятор [5, с. 214].

Pascal стал очередной революцией в программировании.

Несмотря на критику, Pascal был очень быстро принят компьютерным сообществом. Причиной стал умный способ сделать его доступным для большинства машин без необходимости писать для каждой компиляторы с нуля. Вирт создал компилятор, который переводил код Pascal в пи-код (язык ассемблера). Далее всё, что нужно было сделать для работы на конечном устройстве – написать простой интерпретатор пи-кода, что намного проще, чем каждый раз писать компилятор Pascal [9, с. 142].

Именно так до бытового уровня дошла идея использования виртуальной машины – концепции программирования, которая особенно прославится в конце века благодаря языку Java и машине JVM.

Точкой же взлёта Pascal стало появление UCSD Pascal. Кеннет Боулс создал не просто ещё один компилятор, но и операционную систему с утилитами в пи-коде. Система UCSD появилась в 1976 году, а статья в журнале Byte в следующем году принесла ей известность и востребованность на рынке ПК. Популярность была такой большой, что USCD была представлена на презентации очередного IBM PC как альтернативная ОС [5, с. 216].

Войны BASIC и Pascal. Неудивительно, что всё это привело к настоящей битве за доминирование между BASIC и Pascal. В каком-то роде это было продолжение противостояния из прошлого десятилетия – Algol против Fortran или Cobol. Однако, если тогда это было просто идеологическое противостояние на уровне комитетов, теперь появилась новая реальная сила – мнение простых людей. И уже тогда было понятно, что именно здесь лежит будущее программирования.

Основная битва за доминирование между Pascal и BASIC развернётся в следующем десятилетии, и приведёт к созданию почти совершенных диалектов этих языков qBasic и Turbo Pascal. Именно им будут обучать в российских школах, именно их многие из нас заложат в фундамент программистского образования [4, с. 132].

В пользу BASIC была поддержка крупных корпораций. Он по умолчанию использовался на всех известных ПК. Однако здесь был и скрыт аргумент в пользу Pascal – скорость. При нехватке памяти ПК BASIC запускался через интерпретатор, который работает медленнее компилятора. Таким образом, возник миф, что Pascal быстрее, хотя непосредственно к языкам эта версия не имеет никакого отношения [21, с. 177].  

C. Пока BASIC и Pascal боролись за умы начинающих программистов, многие корпорации были озабочены разработкой мощного универсального языка высокого уровня, который бы был производительнее и удобнее тех, над которыми трудились комитеты. Больше всего в этом преуспела компания Bell Labs – именно здесь увидели свет операционная система Unix и язык программирования C.

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

В результате в Великобритании появились сначала системный язык CPL, а потом его урезанный младший брат – BCPL (базовый CPL). Его слава добралась до другой стороны Атлантики, где Кен Томпсон, сотрудник Bell Labs, выпустил еще более упрощённую версию BCPL – B. В то время Unix разрабатывался на ассемблере, поэтому B стал настоящим панацеей для компании [15, с. 35].

Позднее Деннис Ритчи переработал некоторые идеи Томпсона, и создал C (просто следующая буква алфавита). Язык сочетал в себе функции низкого уровня со структурой Algol. Таким образом, вначале C получил известность как структурированный язык ассемблера [4, с. 135].

Самым ярким доказательством качества языка являлось то, что основная часть Unix, кроме небольшого ядра, была полностью переписана на C. Именно так, рука об руку, язык и ОС Unix существовали первые годы. Но слава распространялась, и в конечном итоге С начал использоваться в других операционных системах, и как итог – получил славу языка общего назначения.

Тем не менее, 70-е годы – это лишь время, когда было посажено семя С. Настоящий успех язык обрёл в следующем десятилетии. Такой, о каком создатели могли только мечтать [5, с. 220].

Комитетские языки. Для Fortran и Cobol 70-е годы были временем перезапуска. Первый в 77 версии обзавёлся строковым типом, освоил блочную конструкцию if-else, расширил возможности по работе с файлами. Cobol-74 стал более статичным и ещё больше расширил синтаксис в угоду финансовым структурам.

А вот для Algol десятилетие выдалось плохим. В США к концу 70-х его почти вытеснил Pascal, его спасала лишь востребованность среди европейских и советских разработчиков, которые очень настороженно относились к новым языкам [5, с. 221].

В СССР лишь в 1978 году появляется первый стандарт на комитетский язык – им стал Фортран. Разумеется, речь шла о базисном языке, а не его свежем диалекте. ГОСТ на Алгол-68 вышел спустя 10 лет, и, если вы его откроете, то узнаете причину задержки – синтаксис языка был полностью переведён на русский язык. Именно поэтому сложилось впечатление, что Фортран в СССР был больше востребован. На самом деле так было только в образовании. В науке и обороне Алгол был востребован ничуть не меньше [21, с. 182].

Итак, в 1970-х в программировании наконец возникла главная движущая сила – мнение простых людей. Они уже не просто пользовались деятельностью «больших» учёных, любой желающий мог создать свой язык, написать компилятор или интерпретатор. Кто-то благодаря этому обрёл вечную славу, а кто-то построил миллиардную империю. Для того, чтобы сделать следующий качественный скачок, необходимо было вновь изменить подход к программированию, увеличив возможности и усложнив структуру. Совсем скоро в моду войдёт объектно-ориентированное программирование. Но об этом в следующей части.

2. Особенности программирования в России на современном этапе

2.1. Сравнительный анализ системных программ первых ЭВМ в СССР

В исторической литературе много информации о технике первых компьютеров и людях их создававших, а о программах, какие работали на них, написано значительно меньше. К тому же компьютеры и программы в первые годы использования были в работе в основном у военных и засекречены. К тому же описания программных работ того времени в каждой стране отдельные. А между западными странами и СССР в то время был «железный занавес» мешающий контактам, в том числе научным. Поэтому сравнительных работ почти нет, а историки техники редко разбираются в особенностях работы первых компьютеров [19, с. 368].

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

70 лет назад в 6 ноября 1950 года в СССР был запущен первый компьютер, называемый модель МЭСМ.

Это была 16 разрядная 3х адресная машина на примерно 3000 электронных лампах, а та МЭСМ которая была принята в эксплуатацию позже (25 декабря 1951 года) была 26-разрядная 3х адресная машина на примерно 6000 электронных лампах. Это были машины с хранимой программой и были «полными то Тьюрингу» (Turing complete) [19, с. 368].

Однако они не были машинами по фон Нейману, так как не имели выделенной не регистровой оперативной памяти. Макет МЭСМ в 1950 осуществлял ввод данных и программ с панели переключателей двоичных чисел. Вывод результата в двоичном виде на панель из лампочек. Первая программа была упрощенной задачей баллистики. Программировали ее С. Авраменко и С. Крейн. Что же было в других странах. В 1950 году электронные компьютеры с хранимой программой были только в Британии и США. Даже во Франции, где была фирма Bull Мachines выпускавшая перфорационные вычислительные комплексы, электронных компьютеров не было. Они появились только в 1955 году, да и то как аналог IBM. В Германии не смотря на наличие фирм, выпускающих вычислители DEHOMAG и Zuse, электронных компьютеров тоже не было до 1955 года.

В США, если не считать не работающий на тот момент BINAC, были компьютеры SEAC и SWAC которые были запущены на несколько месяцев раньше модели МЭСМ и будучи аналогами Британской ACE, так же находились в стадии эксперимента и программировались в это время в двоичном виде в ручную с пульта. В Британии в 1950 году работали 3 компьютера АСЕ, MADM, EDSAC и это не считая манческирскую SSEM (Small Scale Experimental Machine), которая выполнила первую программу в 21 июня 1948 года и была первым работающим компьютером с хранимой программой в мире. SSEM была разобрана на детали в конце октября 1948 года. В место нее в апреле 1949 года была установлена более совершенная MADM (вначале MUC), Манчестерский университетский компьютер [19, с. 369]

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

Программа АСЕ –VII (1947г.) выглядела так:

1101001101110111011100001110110110101101010101

1001101101110111011100001110110110101100010111 [19, с. 369]

А вот на компьютерах MADM и EDSAC, которые были запущены на полтора года раньше советской «модель МЭСМ», британские программисты осуществили несколько научных переворотов. Первый переворот в системном программировании совершил А. Тьюринг (A. Turing). Он стал осуществлять загрузку в память программы с перфоленты 5 битными латинскими символами, с помощью специальной программы загрузки. Эту загрузку он продемонстрировал уже в октябре 1948 года на компьютере SSEM. Однако для MADM это было доработано к апрелю 1949 года.

При загрузке 5 битной ленты получалась более компактная запись, по сравнению с двоичной и восьмеричной. И как Тьюринг считал, лучше читается и запоминается. Было даже мнемоническое слово для лучшего запоминания каждого символа команды из 31 команды MADM. Такой стиль записи можно назвать первым символьным языком программирования, назывался «AbbreviationInstructioncode».

Например, три команды MADM, прочитать, сложить и записать я память результат, выглядело на бланке программы и распечатке на телетайпе так [19, с. 370]:

Н//0 М/@DD/@@

Также с перфоленты загружалась специальная библиотека системных функций. После загрузки с помощью библиотеки можно было преобразовать нужные данные в рабочей программе в двоичный вид. После преобразования-трансляции можно было выгрузить готовую рабочую программу на перфоленту. Это системное программное обеспечение было названо SchemeA.

Она состояла из резидентного монитора и служебных программ.

В ее функции входило:

Загрузка программ а память (O, K)

Редактирование ячеек памяти (J)

Преобразование 10х чисел в 2-е (“)

Выполнение команды (X) Например: Х//L — запустить с адреса 0.

Выгрузка данных из памяти (T, Q)

Выполнять команды можно было как с перфоленты, так и клавиатуры телетайпа (с октября 1948г.) [19, с. 370].

М. Уилкс (M. Wilkes), руководитель проекта EDSAC, переняв, по возможности, одно адресную структуру Манчестерского компьютера, посчитал представление программы А.Тьюринга очень неудобным, тем более что из-за отсутствия переключений регистров у Тьюринга среди символов отсутствовали цифры. Уилкс попросил конструктора EDSAC Ренвика (B. Renwick) сделать код команды более мнемоническим, чем у MADM.

В месте с программистом Уиллером (D. Wheeler) было разработано июне 1949 года системное обеспечение Initorder, которое сразу и загружало более понятную текстовую программу и преобразовывало в двоичный вид нужные цифры.

Как утверждал Уилкс, это более понятно и студентам, и аспирантам. Сложение с записью выглядело так [12, с. 162];

26 A 25 S

27 A 4 Sn+1 ton

28 U 25 S

В 1949 Weeler написал программу Compilator которая настраивала адреса вызовов библиотечных подпрограмм необходимых только для этой программы.

В последствии многие программные системы стали использовать этот метод. В сентябре 1949 года Мочли в первые на электронном компьютере стал использовать восьмеричные 3х битные символы и назвал это “Short code”.

При этом символы набивались специальной клавиатурой на магнитную ленту и с нее вводились в компьютер. Вывод на печать то же восьмеричный [12, с. 164].

BINAC 9/1949

20010 03027

70610 08274

В 1951 Мочли уже на компьютере UNIVAC начал использовать шести битные символы с этим же названием.

В 1951 году система программирования EDSAC была переработана программистом Гилмором (J. Gilmore) из Массачусетского института технологии (MIT) для компьютера Whirlwind.

Г. Хоппер (G. Hopper) в развитие библиотечного ассемблера Уиллера для UNIVAC структурировала большую библиотеку UNIVAC а, создав систему А0 в 1952 году [12, с. 167].

В 1954 добавив выгрузку готовой к запуску программ на магнитную ленту, назвала это компилятором А-2.

В ЭВМ М-1 в декабре 1951 года в первые в СССР начали программировать восьмеричными символами их набивали на обычном телетайпе, потом вводили с перфоленты, в отличии от магнитной ленты в BINAC.

На примере ниже напечатана тестовая программа печати квадратов чисел [19, с. 371].

М-1 (1951) 10000000

20030060 40080061 40011061 20010030 20051031

30010030 30002031 20010070 00050071 00000050

Программирование БЭСМ в 1952 году производилось перфокартами, как показано ниже.

10 1010 1010 101

10 1010 1010 101

Glennie в Манчестерском университете в 1952 создал Autocode в котором реализовал трансляцию алгебраических формул ограниченного размера, для Манчестерского компьютера FERRANTI.

Autocode Glennie 1952

INTEGERS +5 +7 →c # Put 5 plus 7 into c

+t -x →y [19, с. 371]

Тут необходимо уточнить как мог возникнуть подобный транслятор. В дополнение к символьному кодированию и трансляции цифр впервые появляется трансляция формул и трансляция кодов команд. Явно что до трансляции формул была просто трансляция кодов команд. Вероятно, был и предшествующий Autocode Glennie [15, с. 37].

Вероятно, это мог быть кросс транслятор с ассемблера EDSAC на «AbbreviationInstructioncode» MADM мк1. Глени работал на обоих компьютерах, но MADM мк1 разобрали в декабре 1950 года. В фирме IBM в 1953 Backus используя наработки Wilkes и Glennie создал Speedcode [19, с. 372].

SpeedcodeIBM 1953 Backus

RAD 25

RAD 04

RST 25

В 1953 в СССР была запущена серийная ЭВМ СТРЕЛА-1 ввод программ был аналогично БЭСМ. Однако вскоре были разработаны программы автоматизации программирования. В начале была разработана «Программа Автоматического Присвоения Адресов/ПАПА» (Т. А. Тросман, В. В. Мартынюк). Вероятно, была аналогична компилирующей программе А0 Грейс Хоппер.

Выглядела как обычная программа Стрелы-1, однако сокращала работу программистам [12, с. 170].

0000 0000 0000 0

01 0001 0001 0001 0 03

В 1954 Подобный подход был усовершенствован (С. С. Камынин, Э. З. Любимский)условными блоками и выгрузкой загружаемой программы на перфокарты и была названа «Программирующей программой» / ПП-1, так как из заготовки программы формировала набор рабочих запускаемых карт.

В 1955 Ершов разработал ПП-БЭСМ с символьными кодами операций. В 1954 году Бруккер (Brooker) довел до практического использования Autocode А. Глени с алгебраической записью.

Autocode Brooker 1954 [12, с. 172]

1 vn1 = Ireads input into v [n [1]]

n1 = n1 + 1

j1,11 ≥ n1 jumps to 1 if n [1] ≤ 11

И усовершенствовал «Schema A» в Интерпретирующую систему Autocode. Запуск программы выглядела так: $ prog1. Бекус (J. Backus) в IBM используя наработки предшественников Autocode, в 1956 году начинает обкатывать FORTRAN, создав для него операционную систему пакетной обработки FMS.

Пример вызова программы [16, с. 118]:

JOB START

А в 1958 году Интерпретирующую систему для М-20 написал Шура-бура. ИС-2 в начале для М-20. ИС разрабатывалась для работы с библиотечными программами с перфокарточного считывателя.

Программа просто выполняла команду, считанную с перфокарточного ввода. Однако в купе с хорошо подобранной системой команд ЭВМ М-20 позволяла просто выполнять большое количество функций [10, c. 30] без обращения к пульту управления ЭВМ. Чтобы загрузить и выполнить программу в штатном режиме, нужно было безошибочно набрать больше 100 двоичных тумблеров на инженерной панели [16, с. 119].

При запущенной ИС-2, достаточно было положить колоду перфокарт с программой и с подготовленными перфокартами загрузки и запуска, виде машинной команды в 15 восьмеричных цифр. А если при отладке требовалось изменить информацию в памяти, то достаточно было набить на клавиатуре перфоратора команду записи в память в восьмеричном формате и положить эту карту в считыватель. Использовалась до 1970 года. Выводы из описанного можно сделать такие, что начиная с 1946 года шел непрерывный процесс совершенствования системного ПО, в котором лидировали британские программисты. Программисты СССР создавая оригинальные программные продукты шли на третьем месте.

Германоязычные программисты себя серьезно проявили только в 1958 гору в разработке Алгола. Практически с 1960 года начался современный этап развития программирования.

2.2. Российская индустрия программирования

Индустрия программного обеспечения — это одна из немногих современных отечественных отраслей, которая способна предотвратить утечку мозгов из России и воспрепятствовать размыванию научно-технического потенциала страны. Отрасль ПО дает десятки тысяч рабочих мест с зарплатой, которая существенно превышает средние по стране. Индустрия производства ПО — это экологически чистая отрасль, которая, в отличие от добывающего комплекса, имеет неистощимые ресурсы [13, с. 228].

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

Государство продолжает усиливать влияние на экономику России, в том числе и на рынок ИТ. Оно является и крупнейшим потребителем информационных технологий, и, в лице госкорпораций, одним из крупнейших игроков. На самом высоком уровне принимаются концепции развития ИТ в нашей стране и меры по поддержки отечественного сектора высоких технологий, однако «Цифровая экономика», с которой многие связывали экспоненциальный рост спроса на ИТ, застыла на низком старте. Шансов на то, что программа взлетит в этом году, практически нет — в руководство страны обсуждает с рынком меры по поддержке отрасли, а ИТ-компании ждут какой-то определенности в экономической политике.

Таблица 1 - CNews100: Крупнейшие ИТ-компании России 2019 [24]

№ 2019

Название компании

Совокупная выручка компании в 2019 г., c НДС, ₽тыс.

Рост выручки 2019/2018, в %

Штатная численность сотрудников в компании на 31.12.2018

1

НКК

215 674 290

3,7%

4 371

2

Ланит

173 767 327

5,8%

8 630

3

EPAM Systems

148 477 544,54

28,8%

32 560

4

Softline

108 834 000

14,8%

4 700

5

Марвел КТ

97 517 347

13,9%

880

https://filearchive.cnews.ru/img/reviews/2020/06/09/picture_7.png

Рисунок 2 - Динамика совокупной выручки CNews100 [24]

Выручка топ-100 ИТ-компаний в 2019 г. выросла на 22%. В 2019 г. совокупная выручка участников CNews100 выросла на 22% и достигла ₽1566 млрд. В долларах она увеличилась на 17,6%. Порог входа в CNews100 составил ₽1470 млн, что на 42% больше, чем годом ранее. 78% выручки компаний, вошедших в рейтинг, приходится на ИТ-услуги. Крупнейшие заказчики — госструктуры, финансовый сектор и телеком.

Рынок ИТ: умеренный рост может смениться резким падением

В январе 2020 г. компания Gartner поделилась предварительными итогами развития мирового рынка ИКТ в 2019 г. и дала прогноз на 2020-2021 гг. По данным аналитиков, в 2019 г. его объем составил $3,74 трлн, что на 0,5% больше, чем годом ранее. В компании отметили, что мир находится в ожидании рецессии, но пока она не началась, так что ИКТ-расходы будут расти и в 2020 г. увеличатся на 3,4% до $3,87 трлн, а в 2021 г. могут вырасти еще на 3,7% и превысить $4 трлн. Однако мировая пандемия заставила аналитиков пересмотреть прогнозы. И теперь предполагается, что в 2020 г. мировые ИТ-расходы сократятся относительно 2019 г. на 8% до $3,4 трлн. Аналогично, аналитики IDC заявили, что в 2020 г. российский ИТ-рынок может сократиться более чем на 30% при условии стабильного курса рубля и падения ВВП на 3-6%.

Таблица 2 - Прогноз развития мирового ИКТ-рынка [24]

Объем рынка 2019 г., $ млрд.

Рост 2019/2018, %

Объем рынка 2020, $ млрд. (прогноз на май 2020 г.)

Рост 2020/2019, % (прогноз на май 2020 г.)

Дата-центры

211,63

0,7%

191,12

-9,7%

Корпоративное ПО

458,13

8,8%

426,26

-6,9%

Устройства

698,09

-2,2%

589,88

-15,5%

ИТ-сервисы

1031,58

3,8%

952,46

-7,7%

Коммуникационные сервисы

1357,43

-1,6%

1296,63

-4,5%

Итого

3756,86

1,0%

3456,34

-8,0%

https://filearchive.cnews.ru/img/reviews/2020/05/29/po_sektoram4-crop_947-400.png

Рисунок 3 - Сегментация выручки участников CNews100 по направлениям деятельности [24]

Доля ИТ-услуг в бизнесе российских ИТ-компаний постоянно растет. В 2018 г. на нее приходилось 63% выручки CNews100, а в 2019 г. - уже 78%. Продолжает снижаться доля разработки программного обеспечения - в 2019 г. она составила 10% против 14% в 2018 г. Причина, отчасти, чисто техническая — отсутствие в рейтинге топового разработчика, «Лаборатории Касперского». Сократилась также и доля доходов от поставок аппаратной обеспечения, в том числе и в рамках реализации проектов, с 15% в 2018 г. до 7% в 2019 г.

Самые быстрорастущие компании. В 2019 г. порог входа в рейтинг самых быстрорастущих ИТ-компаний CNewsFast составил 41%, что несколько ниже, чем годом ранее (47%). Место прошлогоднего лидера компании «Талмер», чьи показатели теперь включены в данные «ИКС Холдинг», заняла «АМДтехнологии» с показателем 348%. Как уже писал CNews, компании удалось выиграть огромные контракты ФНС на строительство ЦОДов. На втором месте НИИ «Восход», чья выручка в 2019 г. увеличилась на 177%. В 2019 г. подведомственный Минкомсвязи ФГУП заключил контракты на создание «Гособлака», начал работу над созданием электронного паспорта, развернул постоянно действующий стенд для тестирования различных конфигураций отечественного ПО для госслужащих, занялся цифровизацией Генпрокуратуры. На третьем — упоминавшаяся выше группа компаний «ИКС Холдинг», чья выручка увеличилась на 144%.

Таблица 3 - CNewsFast: Самые быстрорастущие ИТ-компании 2019 [24]

Название компании

Основные сферы деятельности

Совокупная выручка компании в 2019 г., c НДС, ₽тыс.

Рост выручки 2019/2018, в %

1

АМДтехнологии

ИТ-услуги

4 484 667

347,7%

2

НИИ "Восход"

Разработка ПО, ИТ-услуги

7 341 951

177,4%

3

ИКС Холдинг

Группа компаний

82 231 000

143,6%

4

Май

ИТ-услуги

1 528 044

106,9%

5

Рамакс Груп

Разработка ПО, ИТ-услуги

5 984 090

86,8%

Таблица 4 - Крупнейшие ИТ-разработчики России в 2019 году [24]

Название компании

Совокупная выручка компании в 2019 г., c НДС, ₽тыс.

Выручка от продажи продуктов собственной разработки в 2019 г., с НДС, ₽тыс.

Доля выручки от продажи продуктов собственной разработки, %

1

54 300 000

54 300 000

100,0%

2

ИКС Холдинг

82 231 000

44 404 740

54,0%

3

Центр Финансовых Технологий

27 854 902

18 098 099

65,0%

4

СКБ Контур

15 400 000

15 400 000

100,0%

5

Код Безопасности

6 507 000

5 856 300

90,0%

Российские разработчики растут опережающими темпами

Порог входа в рейтинг российских разработчиков аппаратного и программного обеспечения, в том числе продуктов, поставляемых по модели SaaS, в 2019 г. составил ₽940 млн, что на 60% больше, чем в 2018 г. (₽580 млн). На первом месте в рейтинге традиционно «1С» с выручкой ₽54 трлн. На втором новый участник рейтинга, группа компаний «ИКС Холдинг», в которой на производство оборудования и разработку ПО приходится 54% выручки или ₽44 трлн. На третьем месте Центр финансовых технологий (₽18 трлн, 65%). На 4 и 5 местах «СКБ Контур» и «Код Безопасности», основу бизнеса которых составляют продукция собственной разработки.

Согласно оценке консалтинговой компании Brunswick Warburg, в 1999 году объем российского рынка программного обеспечения составлял 560-580 млн. долл. — всего 0,1% от валового национального продукта (при том, что весь ИТ-рынок страны в 2001 году составлял по оценке газеты «Коммерсант» 3,5-4 млрд. долл. при темпах роста 15-20% в год). И все же программирование имеет огромный потенциал [24].

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

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

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

3. Проблемы и перспективы программирования в России

Российский поначалу бесплатный, не уступавший иностранным аналогам по функциональности текстовый процессор «Лексикон» был повсеместно вытеснен редактором Word от Microsoft. Через осуществлявшиеся Министерством образования и науки закупки компьютерной техники и программного обеспечения деньги российских налогоплательщиков были перенаправлены на развитие американских информационных продуктов.

Пренебрежение национальными интересами привело к печальным последствиям: на сегодняшний день в сфере информационных технологий (далее - ИТ) на мировой арене оказались конкурентоспособными лишь несколько российских фирм, полноценной замены импортным процессорам - базовой комплектующей деталью для компьютерной техники - до сих пор нет [8, с. 119].

За два десятилетия грамотно выстроенной экспансии зарубежных инфо-продуктов (бесплатная поставка техники и ПО российским образовательным учреждениям по грантам фонда Сороса, солидные скидки на массовую закупку для школ и вузов, льготное (Microsoft) и даже бесплатное (Google) предоставление учреждениям образования облачных сервисов) обеспечение основных элементов учебного процесса школ, учреждений профессионального образования попало в полную зависимость от иностранных проприетарных компьютерных программ: операционной системы Windows, пакета офисных программ Microsoft Office, продуктов фирм Apple и Google [8, с. 120].

Печальный результат этой зависимости уже ощутили на себе учащиеся и студенты Крыма: на полуострове не работают сервисы «корпорации добра» Google, реализующей введённые США антироссийские санкции.

В связи с санкционными ограничениями против нашей страны правообладатель шрифтов Times New Roman, Verdana, Tahoma, Arial, Courier New американская корпорация Monotype Imaging в 2016 году отказалась продать лицензию на эти шрифты разработчику российской операционной системы Astra Linux, то есть эти шрифты не могут использоваться и в других российских операционных системах. Между тем, до сих пор шрифт Times New Roman являлся стандартным для оформления организационно-распорядительной документации российских государственных организаций, в т. ч. организаций образовательных.

Правительство России с запозданием, но отреагировало, - с 1 июля 2019 года введён в действие новый госстандарт «Система стандартов по информации, библиотечному и издательскому делу. Организационно-распорядительная документация. Требования к оформлению документов» [8, с. 121].

Пунктом 3.3 стандарта указывается необходимость применения при составлении организационно-распорядительных документов свободно распространяемых бесплатных шрифтов. В постановлении рекомендованы шрифты ПТ Сериф и Liberation Serif.

23 июня 2019 г. министерство торговли США ввело санкции против пяти ИТ-организаций Китая, в частности против Цзяннаньского университета компьютерных технологий в городе Уси 2.

Следует отметить, что использование американского программного обеспечения приносит проблемы не только геополитическим конкурентам, но и союзникам США. Так, осенью 2018 года в результате проведённых по заданию Федерального управления информационной безопасности Германии исследований было установлено, что операционная система Windows 10 передаёт множество данных телеметрии в фирму-разработчик операционной системы Microsoft, сервера которой находятся на территориях вне юрисдикции ФРГ. Несмотря на неоднократные запросы немецких чиновников в Microsoft объёмы и содержание передаваемой информации окончательно не были выяснены [8, с. 122].

В июне 2019 г. опубликовано заявление комиссара земли Гессен по защите данных и свободе информации о запрете на использование в гессенских школах облачного пакета офисных программ Microsoft Office 365, поскольку при использовании облачных сервисов, входящих в пакет: текстового редактора MSWord, табличного MS Excel, редактора презентаций MS PowerPoint данные также передаются на серверы, расположенные в США. В заявлении подчёркнуто (пункт 5): «то, что верно для Microsoft, верно и для облачных решений Google и Apple. Облачные решения этих провайдеров до сих пор не были прозрачными и понятными [8, с. 122].

Следовательно, в соответствии с требованиями конфиденциальности верно и то, что в школах использование этих решений в настоящее время невозможно. Следует отметить, что наряду с использованием продуктов Microsoft, в школах и вузах Германии широко используются собственные ничем не уступающие по функциональности MS Office немецкие программы, входящие в офисный пакет SoftMaker Office, причём использование инструментов пакета для школ и техникумов бесплатно3.

В июле 2019 г. исполнилось 5 лет со дня принятия Положения о локализации хранения и отдельных процессов обработки персональных данных (далее - Положение), определённого в ФЗ-242 от 21 июля 2014 г. (в силу положение вступило с 01.09.2015 г.) [1].

В соответствии с Положением запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение персональных данных оператор обязан производить с использованием баз данных, находящихся на территории Российской Федерации. В соответствии с Положением использование пакета офисных программ Microsoft Office 365, хостящегося в дата-центрах США, в российских учебных учреждениях всех уровней неправомерно. Остаётся неясным вопрос о ходе начавшегося, как будто бы, в 2015 году переноса корпорацией Google своих серверов на территорию России.

В июне 2015 года был принят закон о создании реестра отечественного программного обеспечения, а в ноябре подписано постановление, которое вводит ограничение для госзаказчиков на закупку ПО, отсутствующее в реестре. Сам реестр функционирует в России с начала 2016 года. В июле 2016 года утверждён план перехода на российское ПО. По расчётам Минкомсвязи к 2024 г. доля российского ПО будет доведена до 90% в закупках госорганов, и до 70% - в закупках госкомпаний [8, с. 124].

На 2019 г. для госкомпаний был запланирован показатель на уровне не менее 45%6. Государственная программа по переводу учреждений образования на отечественное ПО до сих пор не разрабатывалась, хотя в связи с реализуемым государством процессом импортозамещения в сфере ИТ встаёт вопрос о подготовке студентов факультетов, готовящих кадры для государственных и муниципальных структур, к использованию отечественного ПО.

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

В России в реестр отечественного ПО внесены несколько операционных систем (в частности, Альт Образование, Rosa Linux, Astra Linux, РЕД ОС), два полновесных совместимых с российскими ОС офисных пакета: «Мой офис» и «7Р-Офис». Набор ПО «7Р-Офис» предоставлялся компанией-разработчиком образовательным организациям в мае-июне 2019 г. по льготной цене - 50% от обычной [17, с. 98].

Серверная версия «Р7-Офис. Профессиональный» покрывает почти все потребности российских учебных учреждений, включая в себя Онлайн-редакторы, Документооборот, Почту, Календарь, Корпоративную соцсеть, Мессенджер, «Панель управления».

Развитие российской индустрии программирования затруднено целым рядом проблем. Самая большая трудность — это компьютерное пиратство. 88% используемых в России программ являются нелицензионными (в среднем по миру — 36%). Только Вьетнам, Китай и ряд стран бывшего СССР имеют еще худшие показатели по этой проблеме.

Еще одна проблема, затрагивающая все отрасли России, — неразвитая инфраструктура. Например, расцвет электронной коммерции во всем мире практически не затронул России: очень мало людей владеют и пользуются кредитными картами, лишь 6,3% всего населения имеют доступ к Сети, и, наконец, почта крайне ненадежна. Только с телефонизацией дела обстоят относительно хорошо — в России насчитывается 21,3 телефонных аппарата на 100 жителей, что, конечно, значительно хуже, чем 59,5 для промышленно развитых стран, но все-таки лучше, чем среднемировое значение 15,1 [17, с. 99].

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

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

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

Вот почему крупные компании-гиганты, часто на собеседованиях проверяют именно навыки написания сортировок, алгоритмов, решения логических и нестандартных задач.

Всё же, рынок отечественного ПО до последнего времени остаётся очень узок: российские операционные системы являют собой или компиляцию решений на базе Linux, либо доработку иностранных ОС (мобильная ОС «Аврора»). Исключение составляет недавно внесённая в реестр отечественного ПО система KasperskyOS, однако платформа предназначена не для общих целей, а для применения различных политик безопасности в защищаемых системах [17, с. 101].

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

ЗАКЛЮЧЕНИЕ

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

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

В те времена количество программистов (да и самих компьютеров) было очень небольшим, так как область применения программирования была достаточно ограниченной. Так, за все 20 лет производства БЭСМ-6, одного из самых успешных компьютеров тех времен (было выпущено всего около 300 штук). Тем не менее, к концу 60-х советская школа программирования находилась на мировом уровне и в промышленной разработке программ, и в научных исследованиях.

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

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

Язык программирования Си - универсальный язык программирования, который завоевал особую популярность у программистов, благодаря сочетанию возможностей языков программирования высокого и низкого уровней. Большинство программистов предпочитают использовать язык Си для серьезных разработок потому, что их привлекают такие особенности языка, как свобода выражения мыслей, мобильность и чрезвычайная доступность. Язык Си даёт возможность программисту осуществлять непосредственный доступ к ячейкам памяти и регистрам компьютера, требуя при этом знания особенностей функционирования ЭВМ. В этом Си схож с языком низкого уровня - ассемблером, хотя на самом деле он представляет собой гораздо более мощное средство решения трудных задач и создания сложных программных систем. Программы, написанные на языке Си, как правило, можно перенести в любую другую операционную систему или на другой компьютер, либо с минимальными изменениями, либо вовсе без них. Спрос на специалистов по языку C не слишком велик, но достаточно стабилен, но при этом, в связи со спецификой разрабатываемых на Си программ, требования к таким программистам очень высокие. При этом учить Си можно и нужно, ведь большинство современных языков «выросли» именно из него.

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Положения о локализации хранения и отдельных процессов обработки персональных данных, определённого в ФЗ-242 от 21 июля 2014 г. URL: https://base.garant.ru (дата обращения 12.08.2020)
  2. Александреску, А. Язык программирования D / А. Александреску. - СПб.: Символ-плюс, 2017. - 544 с.
  3. Архангельский, А.Я. Язык Pascal и основы программирования в Delphi / А.Я. Архангельский. - М.: Бином-Пресс, 2015. - 496 c.
  4. Ашарина, И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. - М.: Гор. линия-Телеком, 2016. - 208 с.
  5. Баженова, И.Ю. Языки программирования: Учебник для студентов учреждений высш. проф. образования / И.Ю. Баженова; Под ред. В. А. Сухомлин. - М.: ИЦ Академия, 2016. - 368 с.
  6. Баранов С.Н. Становление дисциплины программирования в России// Региональная информатика. – 2018. - № 4. – С. 51-61.
  7. Бурдье П. Социальное пространство: поля и практики / пер. с фр.; отв. ред. перевода, сост. и послесл. Н.А. Шматко. М.:Институт экспериментальной социологии; СПб.: Алетейя, 2005. – 200 с.
  8. Бурняшов Б.А. Проблемы программного обеспечения профессионального образования России // Научный вестник Южного института менеджмента. - 2019. - №2. - С. 119-124. 
  9. Гавриков, М.М. Теоретические основы разработки и реализации языков программирования / М.М. Гавриков, А.Н. Иванченко. - М.: КноРус, 2018. - 207 c.
  10. Голицына, О.Л. Основы алгоритмизации и программирования: Учебное пособи / О.Л. Голицына, И.И. Попов. - М.: Форум, 2013. - 205 c.
  11. Гуриков, С.Р. Основы алгоритмизации и программирования на Python: Учебное пособие / С.Р. Гуриков. - М.: Форум, 2018. - 384 c.
  12. Дорогов, В.Г. Основы программирования на языке С: Учебное пособие / В.Г. Дорогов, Е.Г. Дорогова. - М.: Форум, 2015. - 320 c.
  13. Зыков, С.В. Основы современного программирования: Учебное пособие для вузов / С.В. Зыков. - М.: ГЛТ , 2017. - 444 c.
  14. Касавин И.Т. Междисциплинарное исследование: к понятию и типологии // Вопросы философии. - 2010. - № 4. – С. 8-11.
  15. Касьянов В.Н. Российское программирование в лицах: мои учителя // проблемы информатики. – 2017. - № 2. – С. 33-40.
  16. Крайнева И.А. Генезис дисциплины в поле науки: вычислительное дело - программирование – информатика// Вестник Томского государственного университета. – 2017. - № 421. – С. 118-128.
  17. Левушкин, А. В. Основные современные языки программирования / А. В. Левушкин, М. К. Турчанинов, А. А. Жиганов, В. В. Ермолаева. // Молодой ученый. - 2018. - № 25 (211). - С. 96-107.
  18. Макарова, Н.В. Основы программирования. учебник с практикумом (для спо) / Н.В. Макарова. - М.: КноРус, 2016. - 112 c.
  19. Мальцев, С. Н. Сравнительный анализ системных программ первых ЭВМ в СССР / С. Н. Мальцев. // Молодой ученый. - 2020. - № 20 (310). - С. 368-372.
  20. Мирский Э.М. Междисциплинарные исследования и дисциплинарная организация науки. М. : Наука, 1980. – 150 c.
  21. Окулов, С.М. Основы программирования, перераб / С.М. Окулов. - М.: Бином, 2015. - 336 c.
  22. Основы программирования. Учебник с практикумом / Под ред. Макаровой Н.В.. - М.: КноРус, 2017. - 352 c.
  23. Петров М.К. Социально-культурные основания развития современной науки. М.: Наука, 1992. – 220 c.
  24. Рынок ИТ: итоги 2019. URL: https://www.cnews.ru (Дата обращения: 12.08.2020).