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

История развития программирования в России (Общие теоретическо-исторические особенности развития программирования, как прикладной дисциплины)

Содержание:

Введение

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

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

Цель работы заключается в исследовании особенностей исторического развития дисциплины программирования на территории России.

Для достижения поставленной цели в ходе работы необходимо выполнить такие задачи, как:

- рассмотреть понятие и сущность программирования;

- изучить вопрос появление технологии программирования и основные этапы развития в мире;

- ознакомиться с периодизацией формирования культуры программирования в России;

- проанализировать специфику исторического развития отечественного рынка программирования;

- оценить состояние рынка программирования России в контексте мирового рынка программирования;

- выделить проблемы и перспективы дальнейшего развития программирования.

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

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

Методическую базу работы составили методы теоретического анализа, индукции и дедукции, сравнительного анализа, графические методы.

Информационную базу работы составили научные труды отечественных и зарубежных исследователей исторических аспектов развития программирования, в том числе и в России, а именно В.А. Волкова, А.А. Детков, В.А. Бонченкова, П.С. Жихалов, С.Ю. Гусева, Н.М. Захарова, Е.В. Кислицын, М.С. Лунева, М.П. Вакорин, И.А. Сологуб, А.А. Тюгашев, А. Терехов и другие.

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

Глава 1. Общие теоретическо-исторические особенности развития программирования, как прикладной дисциплины

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

На разных исторических этапах развития программирования определение понятий «программирование» и «компьютерная программа» менялись.

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

Наиболее классическая точка зрения заключается в том, что программирование представляет собой процесс описания вычисления; начиная с ранних языков, таких как Fortran и Basic, были разработаны усовершенствованные языки, в которых избегались сложные конструкции GOTO и поддерживался метод структурированного программирования сверху вниз. Методы «сверху-вниз», безусловно, повысили безопасность программ, но никогда не давали четкого описания того, как следует разбивать вычисления на более мелкие проблемы.

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

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

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

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

Программирование описывает операции и процессы вычисления. Исторически сложилось так, что это первый путь, так как он наиболее близок к программированию, как инструменту: вычисление – это последовательность изменений состояния. Поэтому каждое возможное изменение состояния описывается командой (изменение значения слова памяти), а вычисление – серией инструкций. Так работают машинные языки. На самом деле речь идет не об одном вычислении, а о наборе вычислений, которые, как правило, бесконечны и которые, тем не менее, должны быть описаны конечным образом [7, c. 231].

Ещё одним широко распространённым определением программирования, является трактовка данной категории, как определения и обработки объектов. Однако такая трактовка программирования имеет существенный недостаток.

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

Вторыми могут быть числа, строки, массивы, файлы; первые клиенты, части, графики, многогранники, логические формулы и т.д.

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

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

- указание последовательности выполнения технологических операций;

- перечисление условий, при которых выполняется та или иная операция;

- описания самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т. п. (рис. 1).

Рис. 1. Структура технологической операции программирования [11]

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

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

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

1.2 Появление технологии программирования и основные этапы развитие в мире

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

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

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

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

Однако, в отличие от лямбда-расчета, код Тьюринга не служит хорошей основой для языков более высокого уровня - его основное применение заключается в строгом анализе сложности алгоритма. Как и многие "первые" в истории, первый современный язык программирования трудно идентифицировать. С самого начала ограничения аппаратного обеспечения определяли язык. Ударные карточки допускали 80 колонок, но некоторые из колонок приходилось использовать для сортировки номера на каждой карточке. Фортран включал некоторые ключевые слова, которые совпадали с английскими словами, такие как «IF», «GOTO» (перейти к) и «CONTINUE». Использование магнитного барабана для запоминания означает, что компьютерные программы также должны чередоваться с вращениями барабана [8, c. 26].

Таким образом, программы были более зависимы от аппаратного обеспечения, чем сегодня. Для некоторых ответ на этот вопрос зависит от того, сколько энергии и удобочитаемости требуется для получения статуса «языка программирования». Жаккард ткацкий станок и дифференциальный движок Чарльза Бэббиджа имели простые, крайне ограниченные языки для описания действий, которые эти машины должны выполнять. Можно даже рассматривать дырки в свитке пианино как ограниченный язык, хотя и не предназначенный для употребления человеком.

В 1940-х годах были созданы первые узнаваемо современные электронно-вычислительные машины. Ограниченная скорость и объем памяти заставили программистов писать ассемблерные программы с ручной настройкой. Вскоре выяснилось, что программирование на языке ассемблера требует больших интеллектуальных усилий и подвержено ошибкам. В 1948 году Конрад Цузе опубликовал статью о своем языке программирования Plankalkül. Однако он не был реализован в его время, и его оригинальные вклады были изолированы от других разработок.

К некоторым важным языкам, которые были разработаны в этот период, относятся:

- 1943 - Plankalkül (Конрад Цузе);

- 1943 - система кодирования ENIAC;

- 1949 - C-10.

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

- FORTRAN (1955), «FORmula TRANslator», изобретенный Джоном Бэккусом и др.;

- LISP, «LISt Processor», изобретенный Джоном Маккарти и др.;

- COBOL, «COmmon Business Oriented Language», созданный Комитетом по коротким дистанциям под сильным влиянием Грейс Хоппер (Grace Hopper).

Другой важной вехой в конце 1950-х годов стала публикация комитетом американских и европейских ученых в области вычислительной техники «нового языка для алгоритмов» – доклада «ALGOL 60 Report» («ALGOrithmic Language»). В этом докладе были обобщены многие идеи, распространенные в то время, и представлены две ключевые языковые инновации:

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

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

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

Особенно большое влияние Algol 60 оказал на разработку более поздних языков, некоторые из которых вскоре стали более популярными. Большие системы Burroughs были спроектированы для программирования в расширенном подмножестве Algol.

Ключевые идеи Алголя были продолжены в ALGOL 68:

- синтаксис и семантика стали ещё более ортогональными, с анонимными рутинами, системой рекурсивного набора текста с функциями более высокого порядка и т.д.;

- не только свободная от контекста часть, но и полный синтаксис и семантика языка были определены формально, в терминах грамматики Ван Вийнгаардена, формализма, разработанного специально для этой цели [11].

Множество малоиспользуемых языковых особенностей Algol 68 (например, параллельные и параллельные блоки) и сложная система синтаксических ярлыков и автоматического принуждения типов сделали его непопулярным у имплементаторов и усложнили его восприятие. Никлаус Вирт фактически вышел из проектного комитета, чтобы создать более простой язык Pascal:

- 1951 – Язык региональной ассамблеи;

- 1952 – Autocode;

- 1954 – FORTRAN;

- 1955 – FLOW-MATIC (предшественник COBOL);

- 1957 – COMTRAN (предшественник COBOL);

- 1958 – LISP;

- 1958 - ALGOL 58;

- 1959 – FACT (предшественник COBOL);

- 1959 – COBOL;

- 1962 – APL;

- 1962 – Simula;

- 1964 – BASIC;

- 1964 - PL/I [8, c. 18].

Период с конца 1960-х до конца 1970-х годов принес большой расцвет языков программирования. В этот период было изобретено большинство основных используемых в настоящее время языковых парадигм:

- Simula, изобретенный в конце 1960-х годов Нигаардом и Далом в качестве суперсети Algol-60, был первым языком, предназначенным для поддержки объектно-ориентированного программирования;

- C, ранний язык системного программирования, был разработан Деннисом Ричи и Кеном Томпсоном в Bell Labs между 1969 и 1973 годами;

- Smalltalk (середина 1970-х) предоставил полное базовое проектирование объектно-ориентированного языка;

- Prolog, разработанный в 1972 году Кольмерауэром, Русселем и Ковальским, был первым языком логического программирования;

- ML построил систему полиморфных типов (изобретенную Робином Милнером в 1973 году) поверх Lisp, пионера статически типизированных функциональных языков программирования [11].

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

В 1960-е и 1970-е годы также начались значительные дебаты о достоинствах «структурированного программирования», которое, по сути, означало программирование без использования GOTO.

Эти дебаты были тесно связаны с дизайном языка: некоторые языки не включали GOTO, что вынуждало программиста заниматься структурированным программированием. Хотя в то время дебаты были горячими, почти все программисты теперь согласны с тем, что даже в языках, которые предоставляют GOTO, его использование, за исключением редких случаев, является плохим стилем программирования. В результате более поздние поколения дизайнеров языков сочли дебаты по структурированному программированию утомительными и даже обескураживающими. К некоторым важным языкам, которые были разработаны в этот период, относятся:

- 1970 – Pascal;

- 1970 – Forth;

- 1972 – C;

- 1972 – Smalltalk;

- 1972 – Prolog;

- 1973 – ML;

- 1978 - SQL (изначально только язык запросов, позже расширенный конструкциями программирования) [8, c. 19].

В 1990-е годы не было фундаментальной новизны, но было много рекомбинаций, а также созревание старых идей. Большой философией вождения была производительность программиста. Появилось много языков "быстрой разработки приложений" (RAD), которые обычно поставлялись с IDE, сборщиком мусора, и были потомками старых языков. Все эти языки были объектно-ориентированными. К ним относились Object Pascal, Visual Basic и C#. Java был более консервативным языком, который также включал в себя сборщик мусора и пользовался большим вниманием. Более радикальными и инновационными, чем языки RAD, были новые языки сценариев. Они не исходили непосредственно от других языков и отличались новыми синтаксисами и более либеральным включением функций. Многие считают эти языки сценариев более продуктивными, чем даже RAD-языки, но часто из-за выбора, который делает небольшие программы более простыми, а большие – более сложными в написании и обслуживании. Тем не менее, языки сценариев стали наиболее известными, используемыми в связи с Вебом. К некоторым важным языкам, которые были разработаны в этот период, относятся:

- 1990 – Haskell;

- 1991 – Python;

- 1991 – Java;

- 1993 – Ruby;

- 1993 – Lua;

- 1994 - ANSI Common Lisp;

- 1995 – JavaScript;

- 1995 – PHP;

- 2000 - C#;

- 2008 – JavaFX Script [8, c. 20].

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

Некоторые из современных тенденций включают в себя:

1. Механизмы добавления в язык проверки безопасности и надежности: расширенная статическая проверка, управление потоком информации, статическая безопасность потока.

2. Альтернативные механизмы модульности: смеси, делегаты, аспекты.

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

4. Метапрограммирование, отражение или доступ к абстрактному синтаксическому дереву – повышенное внимание к распределению и мобильности.

5. Интеграция с базами данных, включая XML и реляционными базами данных.

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

7. XML для графического интерфейса (XUL, XAML).

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

Глава 2. Исторические особенности развития и становления программирования в России

2.1 Периодизация формирования культуры программирования в России

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

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

К сожалению, где-то с начала 70-х годов в программировании, как и в ряде других отраслей, начали наблюдаться первые признаки застоя. Одной из основных причин стала официальная политика ориентации компьютерных платформ на клоны IBM/360 и PDP/11.

Считалось, что путем копирования западной аппаратной базы удастся сэкономить деньги, которые впоследствии можно было бы использовать для «гигантского скачка» в программировании. Эта «стратегия» потерпела провал, а Эдгар Дейкстра в своей лекции, прочитанной в России, назвал это решение советского правительства «величайшей победой Запада в холодной войне» (подробнее о ранней истории программирования в России можно прочитать в).

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

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

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

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

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

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

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

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

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

Количество обучающихся в России студентов также растет. В 2001 году в стране насчитывалось 4,7 млн. студентов, почти вдвое больше, чем в 1995 году. В частности, растет и число студентов, обучающихся программированию: количество тех, кто ежегодно поступает на связанные с компьютерами специальности, выросло за последние пять лет с 8 до 25 тыс. человек. В связи с возможностью найти по окончании вуза высокооплачиваемую работу программирование становится все более привлекательной специальностью [10].

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

Однако сейчас ряд представителей компьютерной индустрии стали понимать всю опасность этой тенденции и стараются поощрять участие своих сотрудников в преподавательском процессе.

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

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

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

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

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

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

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

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

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

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

2.3 Специфика исторического развития отечественного рынка программирования

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

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

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

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

По оценке компании McKinsey, в 1999 году в российском офшорном программировании было занято от 5 до 8 тыс. профессиональных программистов, а общий объем этого рынка составлял от 60 до 100 млн. долл. при темпах роста от 40 до 60% в год [6, c. 207].

Правда, российские источники считают, что приведенные цифры сильно занижены. Так, по оценкам компании Market-Visio/EDC, общий доход российского рынка офшорного программирования в 2001 году составил 194 млн. долл. при темпах роста 227% в год.

Международный рынок аутсорсинга отличается жесткой конкуренцией, здесь есть свои общепризнанные лидеры — Индия и Ирландия. В 2000-2001 годах Индия заработала на этом рынке 6,3 млрд. долл. По количественным показателям Россия сегодня отдаленно напоминает Индию в 1990 году.

В последние два-три года компании, специализирующиеся на глобальном программировании стали объединяться в ассоциации, такие, как «Форт-Росс» в Петербурге и «СибАкадемСофт» в Сибири (в процессе создания аналогичная ассоциация в Москве, которая, однако, ничем фактически полезным пока не отличилась).

Основной задачей этих ассоциаций стало лоббирование интересов компьютерной индустрии в российском правительстве и маркетинг возможностей отечественных компаний на Западе путем, например, проведения международных конференций типа Software Outrsourcing Summit (www.soft-outsourcing.com). Будем надеяться, что такой процесс консолидации сделает российскую индустрию программирования более заметной силой на международном рынке [10].

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

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

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

Активная стадия развития программирования сменилась фазой длительного застоя, которая продолжалась с 70-х по 90-е годы. С начала 90-х до дефолта в 1998 году рынок программирования снова был на подъеме и демонстрировал активное развитие. При этом, активно развивались не столько государственные сферы применения программирования, сколько сферы коммерческого уровня, в виду кардинального изменения экономической модели государства в целом. Широко развивалась сфера финансового и управленческого программирования, производственного программирования. После окончания кризиса и до сих пор рынок развивается относительно стабильно. С 2000-х годов продукты сферы программирования востребованы не только юридическими, но и физическими лицами.

Глава 3. Современный этап развития отечественного рынка программирования

3.1 Состояние рынка программирования России в контексте мирового рынка программирования

Индустрия программирования является одним самых динамичных сегментов рынка информационных технологий (далее ИТ).

Ежегодный рост данного рынка за последние несколько лет составляет примерно 6 %.

Менее половины сегмента формируют средства разработки и системное ПО, остальное приходится на различные категории приложений. Очень большое развитие получает категория совместной работы, разрабатываются внутренние социальные сети и приложения для доступа к файлам(рост такого рода приложений составляет примерно 20% в год). Большое развитие получает категория средств управления базами данных и аналитики(рост составляет примерно 8%) [5, c. 20].

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

Больше половины поставок информационных технологий в мире приходится на долю США. Штаб квартиры мировых гигантов в производстве ИТ расположены именно в этой стране, но все большую роль на глобальном рынке начинают играть ИТ компании из Китая и Индии. Некоторые из них, по данным за 2018 год, обгоняют по уровню рыночной капитализации таких мировых гигантов как Dell и EMC. Глобальные перемены, произошедшие в Индии за последнее время говорят об успешном выборе курса преобразования и реформировании экономики.

Статистику роста расходов можно увидеть на рис. 2.

Рис. 2. Динамика изменения расходов на обеспечение мирового рынка программирования [12]

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

1. Развитие системы высшего и среднего специального образования в сфере программного обеспечения, а также подготовки ИТ менеджеров.

2. Подготовка квалифицированных менеджеров в ИТ секторе.

3. Создание целевой программы государственной поддержки развития ИТ индустрии и ее экспортного потенциала.

4. Создание эффективной ассоциации производителей программного обеспечения.

5. Создание семи свободных таможенных зон, получивших название «технологические парки по программному обеспечению».

6. Наличие второго по численности после США, квалифицированного персонала программистов, знающих английский язык.

7. Приоритет развития высоко-технологичной инфраструктуры ИТ [2, c. 8].

По уровню расходов на ИТ позиция стран немного меняется, лидером все также остается США. В табл. 1 приведены первые 15 стран по расходам на ИТ в 2019 году.

Таблица 1 – Ведущие страны по расходам на развитие рынка программирования в 2019 году [2, c. 7]

Страна

Расходы, млрд. долл.

Годовой рост (%)

Рост ВВП (%)

США

645,55

3,9

1,9

Китай

182,74

8,3

7,7

Япония

146,53

3,4

1,5

Великобритания

113,75

4,6

1,7

Германия

98,51

1,7

0,4

Франция

72,99

-0,5

0,2

Бразилия

55,86

15,8

2,5

Канада

50,77

3,3

2,0

Австралия

38,84

0,2

2,7

Индия

37,35

19,7

5,0

Италия

36,44

-0,6

-1,9

Корея

36,17

-3,1

3,0

Россия

34,49

0,8

1,3

Испания

28,82

0,7

-1,2

Нидерланды

27,90

-0,2

-0,8

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

Россия находится на 13 месте по расходам на ИТ, тем самым опережая такие страны как Швейцария, Швеция, Нидерланды. Как видно из таблицы, объем российского рынка ИТ в 2013 году составил 34,49 млрд. долларов, рост составил 0,8 %.

Российский рынок ПО показывает хорошие темпы роста. До 2012 года наблюдалось ежегодное увеличение рынка в среднем на 17 %. После 2013 года рост рынка ПО замедлился. Связано это с неблагоприятной политической, экономической ситуацией и спадом в производительном секторе. Но все же в 2013 году прибыли от ПО достигла своего исторического максимума и составила 4,99 млрд. долларов. Примерно половину из всей этой суммы приходится на различные приложения, 30 % на инфраструктурное ПО, менее 20 % – на ПО для разработки приложений (на рис. 3 можно увидеть расходы на ПО по категориям).

Рис. 3. Расходы по категориям ПО в России, 2019 год [2, с. 10]

Если рассматривать сегмент приложений, то самыми востребованными были решения для автоматизации систем управления предприятием. Такие решения пользуются большим спросом у крупных компаний. Наиболее активными потребителями оказались компании занимающиеся производством, розничной торговлей, энергетике, транспортных и бизнес-услугах. Государственный сектор продемонстрировал в 2013 году наибольший рост затрат на данный тип ПО, превысив аналогичные показатели предыдущего года на 50 %.

Также продолжил свой рост и рынок ПО безопасности. В 2013 году он прибавил 9,2 % достигнув тем самым отметки 412,62 млн. долларов. Наибольший вклад внесли решения для защиты рабочих станций, защита сетей, системы мониторинга управления уязвимостями и решения по защите сообщений.

В связи со сложившейся политической ситуацией в России разрабатывается стратегия по замене зарубежного ПО на отечественное. На данный момент зарубежного ПО в стране составляет порядка 70-75 % [2, c. 9].

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

Для финансирования новых отечественных ПО создаются венчурные фонды (примером может быть Российская венчурная компания, ВТБ-фонд, Лидер инноваций и др.). Также кроме общероссийских венчурных фондов созданы региональные венчурные фонды.

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

Решение России по замене импортных ПО – это большой шаг к развитию данной индустрии в стране. Отечественное ПО должно соответствовать современным запросам пользователям и не уступать аналогичным ПО за рубежом. Для этого необходима государственная поддержка хотя бы на начальном этапе разработки и внедрения [4, c. 93].

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

3.2 Проблемы и перспективы дальнейшего развития программирования

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

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

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

Кроме того, переориентация ИТ-компании на зарубежный рынок является дорогостоящим мероприятием и недоступна для большинства. Данный аспект порождает ещё одну проблему для развития программирования в России, а именно активного оттока специалистов.

Поэтому, несмотря на целый ряд примеров успешной реализации подобной модели (например, антивирусная система AVP или графические средства, разработанные компанией ParaGraph и приобретенные впоследствии Silicon Graphics), все еще неясно, станет ли эта модель массовой в России [7, c. 231].

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

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

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

Существуют некоторые и другие факторы и проблемы сдерживающие развитие программирования в России.

Серьезным сдерживающим фактором развития всего рынка является слабая диверсификация экономики России, что приведет к чрезмерной зависимости страны от энергетического сектора и колебания цен на энергоносители, а это негативно отразится на развитии рынка программирования [3, с. 84].

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

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

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

Развитие программирования в России стимулируется рядом факторов.

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

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

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

В-четвертых, позитивным фактором является процесс импортозамещения и разработки отечественных ИТ-продуктов, в том числе процессоров, что влечет также значительные расходы и на ИТ-услуги, особенно разработку заказного ПО, ИТ-консалтинг и системную интеграцию [3, c. 85].

В ноябре 2013 года Правительство РФ утвердило Стратегию развития отрасли информационных технологий в Российской Федерации на 2014-2020 годы и на перспективу до 2025 года. В ключевых направлений развития отрасли определены следующие: развитие кадрового потенциала и образования, формирование научной базы по перспективным исследованиям в программирования, поддержка малого бизнеса в области программирования, развитие экспорта продуктов программирования, расширение использования программирования в экономике, обеспечение инфраструктуры за счет дальнейшего развития широкополосного доступа в Интернет.

Российское правительство, поставило задачу – обеспечить средний темп роста отрасли программирования на уровне, значительно превышающем средний темп роста ВВП, удвоить к 2020 году количество высокотехнологичных рабочих мест в отрасли (до более 600 тыс.), увеличить производство российской продукции программирования с 270 млрд. рублей до 450 млрд. рублей, а также снизить зависимость экономики страны от сырьевого экспорта (путем удвоения к 2020 году экспорта продукции и услуг) и повысить производительность труда за счет ускоренного внедрения программирования в другие отрасли экономики.

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

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

Заключение

В ходе работы в полной мере была выполнена цель работы, а именно проведено исследование особенностей исторического развития дисциплины программирования на территории России.

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

- рассмотрено понятие и сущность программирования;

- изучен вопрос появление технологии программирования и основные этапы развития в мире;

- проведено ознакомление с периодизацией формирования культуры программирования в России;

- проанализирована специфика исторического развития отечественного рынка программирования;

- оценено состояние рынка программирования России в контексте мирового рынка программирования;

- выделены проблемы и перспективы дальнейшего развития программирования.

В России начало развития программирования было положено только в 50-е году ХХ века, в то время как формирование данного направления в целом можно отнести к середине ХIХ века. Первыми секторами экономики в которых были задействованы элементы программирования являлся военно-промышленный комплекс и космонавтика. Активная стадия развития программирования сменилась фазой длительного застоя, которая продолжалась с 70-х по 90-е годы. С начала 90-х до дефолта в 1998 году рынок программирования снова был на подъеме и демонстрировал активное развитие. При этом, активно развивались не столько государственные сферы применения программирования, сколько сферы коммерческого уровня, в виду кардинального изменения экономической модели государства в целом. Широко развивалась сфера финансового и управленческого программирования, производственного программирования. После окончания кризиса и до сих пор рынок развивается относительно стабильно. С 2000-х годов продукты сферы программирования востребованы не только юридическими, но и физическими лицами.

Проведенное исследование показало, что сегодня рынок программирования России входит в ТОП 15 мировых ИТ-рынков с самым высоким показателем развития и темпами развития, находясь на 13-м месте. Однако при этом рынок имеет множество нерешённых проблем, среди которых основными являются:

- высокий уровень пиратства и нелицензированного копирования и распространения программ;

- отсутствие действенного законодательного института защиты авторских прав и борьбы с нелицензированным распространением программ;

- низкий инвестиционный рейтинг отечественного рынка программирования;

- низкая эффективность государственной политики развития программирования, как отдельного отраслевого рынка страны;

- не достаточный уровень диверсификации экономики.

Что же касается перспектив дальнейшего развития программирования в России, на государственном уровне данное направления обусловлено Стратегией развития отрасли информационных технологий в Российской Федерации на 2014-2020 годы и на перспективу до 2025 года. План включает проведение исследований по созданию вычислительных технологий в облачной и суперкомпьютерной средах и технологий для развития суперкомпьютеров, а также использование инфраструктуры и возможностей инновационного центра «Сколково».

Список использованных источников

  1. Распоряжение Правительства РФ от 01.11.2013 N 2036-р (ред. от 18.10.2018) «Об утверждении Стратегии развития отрасли информационных технологий в Российской Федерации на 2014 - 2020 годы и на перспективу до 2025 года» // СПК КонсультантПлюс. URL: http://www.consultant.ru/document/cons_doc_LAW_154161/22444572fce92dd3d63da856c260fb49e8f921dc/ (Дата обращения: 20.05.2020).
  2. Волкова В.А. Обзор развития рынка программного обеспечения в мире и России // Актуальные вопросы экономических наук: Сборник материалов LX Международной научно-практической конференции. – Новосибирск: Центр развития научного сотрудничества, 2017. – С. 6 – 11.
  3. Детков А.А., Бонченкова В.А., Жихалов П.С., Гусева С.Ю. Россия на мировом рынке ИТ: проблемы и перспективы // Научный альманах. – 2017. - № 5-1 (31). – С. 83 – 86.
  4. Захарова Н.М. Особенности замещения зарубежных программных продуктов // Экономика. Налоги. Право. – 2016. – Т.9. - № 3. – С. 91 – 98.
  5. Кислицын Е.В. Российский рынок программного обеспечения: конкуренция и потенциал развития // Вестник ТГУ. Экономика. – 2019. - № 47. – С. 19 – 33.
  6. Лунева М.С., Вакорин М.П. Анализ особенностей рынка программного обеспечения // Социально-гуманитарные проблемы образования и профессиональной самореализации (Социальный инженер-2019): Сборник материалов Всероссийской конференции молодых исследователей с международным участием. – М.: РГУ им. А.Н. Косыгина, 2019. – С. 206 – 209.
  7. Сологуб И.А. Оценка ёмкости рынка средств разработки программного обеспечения // Прорывные научные исследования: проблемы, закономерности, перспективы: Сборник статей ХIII Международной научно-практической конференции. – Пенза: Наука и Просвещение, 2019. – С. 230 – 232.
  8. Тюгашев А.А. Основы программирования. Часть I / А.А. Тюгашев. – СПб: Университет ИТМО, 2016. – 160 с.
  9. Шмидт М.А., Завьялова Н.Б. Направления развития ИТ-компаний в условиях цифровой трансформации бизнеса // Человеческий капитал и профессиональное образование. – 2018. - № 3-4 (27). – С. 10 – 17.
  10. Терехов А. Российская индустрия программирования / А. Терехов // ОСП. URL: https://www.osp.ru/os/2002/03/181263/ (Дата обращения: 22.05.2020).
  11. Технология программирования. Основные понятия и подходы // Файловый архив студентов StudFiles. URL: https://studfile.net/preview/2953279/ (Дата обращения: 22.05.2020).
  12. Worldwide Black Book: Live Edition // IDC. URL: https://www.idc.com/getdoc.jsp?containerId=IDC_P336 (Дата обращения: 20.05.2020).