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

История развития программирования в России (Родоначальники программирования)

Содержание:

Введение

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

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

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

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

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

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

В ходе поставленной цели будут решены следующие задачи:

1.выяснить истоки программирования.

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

3. рассмотреть перспективы развития российского программирования.

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

Глава 1. История развития программирования в мире

1.1 Родоначальники программирования

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

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

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

Ей принадлежит [1]определение цикла: "Под циклом операций следует понимать любую группу операций, которая повторяется более одного раза". Организация циклов в программе значительно сокращает ее объем. Без такого сокращения практическое использование Аналитической машины было бы нереальным, т. к. она работала с перфокартами, и требовалось бы огромное их количество для каждой решаемой задачи.

Прежде всего, уже в то время Ада Лавлейс отдавала себе полный отчет в колоссальной "широте спектра" возможностей универсальной вычислительной машины. Вместе с тем она очень четко представляла себе границы этих возможностей: "Желательно предостеречь против преувеличения возможностей Аналитической машины. Аналитическая машина не претендует на то, чтобы создавать что-то действительно новое.

Маши на может выполнить все то, что мы умеем ей предписать. Она может следовать анализу; но она не может предугадать какие-либо аналитические зависимости или истины. Функции машины заключаются в том, чтобы помочь нам получить то, с чем мы уже знакомы". В 1843 году, когда эти положения высказывались, Ада, конечно, не могла предвидеть, как разовьется и какие формы примет программирование спустя 120 лет.

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

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

Ч. Бэббедж окончил университет в Кэмбридже. В 1820 г. Бэббедж увлекся разработкой разностной счетной машины для составления таблиц многочленов. Работа машины основана на том, что -я разность многолена -й степени является постоянной. Поэтому, зная несколько начальных значений функции для равноотстоящих значений аргумента, можно рассчитать конечные разности вплоть до постоянной -й и выполнить обратный ход — по разностям вычислить новое значение функции. Циклически повторяя расчет, можно получить таблицу функции с любым числом строк (значений аргумента). В машине Бэббеджа эти вычисления выполнялись автоматически с помощью совокупности вращающихся колес.

В 1834 г. Ч. Бэббедж разрабатывает основные принципы построения универсальной машины, названной им аналитической. Именно этот проект стал описанием первой в мире универсальной вычислительной машины.

Оба проекта Бэббеджу не удалось довести до завершения из-за трудностей финансового характера

Революционным моментом в истории языков программирования стало появление системы кодирования машинных команд с помощью специальных символов, предложенной Джоном Моучли, сотрудником Пенсильванского университета. Система кодирования, предложенная Моучли, увлекла одну из сотрудниц его компании - Грейс Мюррей Хоппер, которая посвятила всю свою жизнь компьютерам и программированию. Она вспоминает, что стала «третьим в мире программистом первого в мире большого цифрового компьютера». Г.Хоппер доказала, чего она стоит как программист. Впоследствии она писала: «Я имела то преимущество, что изучала как технику, так и математику и знала, как работает машина от начала и до конца».[3]

При работе на компьютере «Марк-1» Г.Хоппер и ее группе пришлось столкнуться со многими проблемами и все, что ими придумано, было впервые. В частности, они придумали подпрограммы. Сейчас любой программист не задумываясь использует аппарат подпрограмм в любом языке программирования. И еще одно фундаментальное понятие техники программирования впервые ввели Г.Хоппер и ее группа - «отладка». Однажды жарким летним днем 1945 г. неожиданно произошла остановка компьютера «Марк-1». Обнаружилась неисправность одного реле, контакты которого были заблокированы мотыльком, залетевшим неизвестно каким образом в помещение вычислительного центра. Вспоминает Г.Хоппер: «Когда к нам зашел офицер, чтобы узнать, чем мы занимаемся, мы ответили, что очищаем компьютер от насекомых (debuging)». С тех пор термин «debuging» (отладка) используется в технических процессах тестирования неисправностей в компьютере, а также в системах программирования.

1.2 Теоретики зарубежного программирования

Эдсгер Дейкстра выдающийся представитель теоретического программирования, основатель и популяризатор парадигмы структурного программирования.

Свой плодотворный вклад в теорию программирования Дейкстра сделал в 1968 г. в возрасте 38 лет. В небольшой работе под названием «Заметки по структурному программированию» он доказывал, что большинство программ неоправданно сложны из-за отсутствия в них четкой математической структуры. Состояние дел в области проектирования программного обеспечения вызывало на протяжении ряда лет беспокойство многих специалистов по вычислительной технике.

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

Главным объектом критики Дейкстра избрал общеизвестную команду безусловного перехода, или оператор GOTO. Данный оператор служит для передачи управления из одной точки программы в другую. В некоторых случаях он весьма полезен, но в то же время этот оператор затрудняет восприятие программы (имеется в виду восприятие программы человеком, так как для компьютера обработка операторов GOTO труда не составляет). Отслеживание этого оператора напоминает ситуацию, в какой вы оказались бы, если бы при чтении романа вам приходилось все время перелистывать книгу на несколько страниц то назад, то вперед.

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

Эдсгер Дейкстра, внеся свой вклад в пересмотр принципов составления программ и создания самих языков программирования, на этом не успокоился. Не меньше, чем оператор GOTO, его раздражали тестирование и отладка, составляющие заключительный этап создания любого программного обеспечения. Еще со времен пакетной обработки этот этап строился как последовательное проведение испытаний (тестовых прогонов) и поиска ошибок. [5]

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

Дональд Эрвин Кнут — американский учёный, почётный профессор Стэнфордского университета и нескольких других университетов в разных странах, преподаватель и идеолог программирования, автор 19 монографий (в том числе ряда классических книг по программированию) и более 160 статей, разработчик нескольких известных программных технологий. Автор всемирно известной серии книг, посвящённой основным алгоритмам и методам вычислительной математики, а также создатель настольных издательских систем TEX и METAFONT, предназначенных для набора и вёрстки книг, посвящённых технической тематике (в первую очередь — физико-математических).

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

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

ГЕЙТС (Gates) Уильям (Билл) Генри III (р. 28 октября 1955, Сиэтл, шт. Вашингтон), американский предприниматель и изобретатель в области электронно-вычислительной техники, председатель и CEO ведущей компании в мире в области программного обеспечения Microsoft.

Родился в семье видного адвоката. Уже в средней школе проявил незаурядные математические способности. Будучи учеником старших классов, создал свою первую компанию Traf-O-Data, занимавшуюся продажей программ для определения интенсивности дорожного движения.

В 1975 году, бросив Гарвардский университет, где он готовился стать правоведом, как его отец, Гейтс совместно со своим школьным товарищем Полом Алленом основал компанию Microsoft. Первой задачей новой фирмы стала адаптация языка Бейсик для использования в одном из первых коммерческих микрокомпьютеров - "Альтаире" Эдварда Робертса.

В 1980 году Microsoft разработала операционную систему MS-DOS (Microsoft Disk Operation System) для первого IBM PC, ставшую к середине 1980-х годов основной операционной системой на американском рынке микрокомпьютеров. Затем Гейтс приступил к разработке прикладных программ - электронных таблиц Excel и текстового редактора Word, и к концу 1980-х Microsoft стала лидером и в этой области.

В 1986 году, выпустив акции компании в свободную продажу, Гейтс в возрасте 31 года стал миллиардером. В 1990 году компания представила оболочку Windows 3.0, в которой вербальные команды были заменены на пиктограммы, выбираемые с помощью "мыши", что значительно облегчило пользование компьютером. В начале 1990-х годов "Окна" продавались в количестве 1 миллиона копий в месяц. К концу 1990-х годов около 90% всех персональных компьютеров в мире были оснащены программным обеспечением Microsoft.

Глава 2. Основатели отечественного программирования

Михаил Романович Шура-Бура по праву считается патриархом отечественного программирования. В его научной биографии и в результатах отдела Института прикладной математики им. М. В. Келдыша, возглавляемого М. Р. Шура-Бура, отразились наиболее важные черты становления и развития системного и прикладного программирования в нашей стране.

Почти 50 лет в одной организации - редкий пример постоянства научных интересов и жизненных взглядов человека. В первые годы главной задачей и организационным успехом М. Р. Шуры-Буры, как руководителя отдела программирования в ИПМ, было формирование отдела, костяк которого составили выпускники кафедры вычислительной математики мехмата МГУ И. Б. Задыхайло, Э. З. Любимский, В. С. Штаркман и др.

Первым результатом работы отдела в 1953-1955 гг. было появление программ для расчета энергии взрывов при моделировании ядерного оружия на ЭВМ "Стрела". Постановки задач и методы расчетов для этих программ готовили отделы математиков (А. Н. Тихонов, А. А. Самарский, И. М. Гельфанд). Программирование задач такой сложности в машинных кодах на ЭВМ, имевшей оперативную память емкостью всего 1000 ячеек, неработающий накопитель на магнитной ленте и частые сбои в арифметике и управлении, требовало от программистов виртуозного умения и оригинальных находок в организации отладки программ и счета. Сам М. Р. Шура-Бура так образно назвал эту работу: "Как мы победили "Стрелу"!".[6]

С середине 50-х годов отдел программирования был привлечен М. В. Келдышем к расчетам траекторий искусственных спутников Земли (ИСЗ), выполнявшихся в ИПМ отделом Д. Е. Охоцимского. Программы, разработанные сотрудниками отдела, возглавляемого Михаилом Романовичем, для ЭВМ "Стрела", а затем М-20, должны были обеспечивать круглосуточный режим обработки измерений траекторий ИСЗ. Они использовались начиная с 1957 г. при запуске первых и последующих ИСЗ, полете Ю. А. Гагарина в 1961 г. и затем в течение последующих 10 лет. Значение этой работы трудно переоценить, потому что результаты траекторных расчетов, производимых в разных организациях, иногда не совпадали, что для управления космическими полетами было недопустимо.

Затем отдел М. Р. Шуры-Буры занимался созданием системного и прикладного программного обеспечения для космического челнока "Буран". До настоящего времени М. Р. Шура-Бура руководит разработкой прикладных систем наземной диагностики сложных технических комплексов по заказу оборонных организаций.

Весьма значительным было влияние ИПМ и лично М. Р. Шуры-Буры на выбор архитектуры отечественных универсальных компьютеров. В 1955 г. на начальной стадии проекта ЭВМ первого поколения М-20 в разработке участвовали три человека: С. А. Лебедев (общие характеристики и структура машины), М. Р. Шура-Бура (система команд), П. П. Головистиков (схемотехника). Основные архитектурные решения М-20 предложил М. Р. Шура-Бура, среди них:

-представление чисел с плавающей точкой;

- трехадресный формат команды в машинном слове длиной 45 двоичных разрядов;

- система команд с автоматической модификацией адреса и индексная арифметика;

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

- совмещение операций процессора с операциями ввода-вывода данных.

Эти архитектурные решения М-20 были сохранены в ЭВМ М-220, М222, построенных на основе полупроводниковой элементной базы. Эти машины стали "рабочими лошадками" для выполнения научных и инженерных расчетов во многих исследовательских, проектных и оборонных организациях страны. М. Р. Шура-Бура принимал самое активное участие в создании программного обеспечения этого семейства, начиная с системы интерпретации ИС-2 и библиотеки стандартных программ для М-20, а затем операционных систем ОС 4.220 и ОС ДМ-222, компиляторов языка АЛГОЛ-60 (компилятора ТА-2) и ФОРТРАН.

Деятельность Ассоциации пользователей М-20, собиравшей и распространявшей прикладные программы для М-20, М-220, М-222, также проходила под непосредственным влиянием М. Р. Шуры-Буры. В середине 60-х годов, когда ИТМ и ВТ под руководством С. А. Лебедева разрабатывал архитектурные решения универсальной ЭВМ второго поколения БЭСМ-6, М. Р. Шура-Бура активно участвовал в обсуждении этих решений на совещаниях в Москве, Ужгороде, Беловежской Пуще. В дальнейшем ИПМ в лице отдела М. Р. Шуры-Буры принимал активное участие в создании программного обеспечения для БЭСМ-6. Здесь наиболее крупной разработкой была ОС ИПМ, выполненная под руководством И. Б. Задыхайло.

В конце 60-х годов в стране было необходимо решить вопрос с выбором архитектуры семейства (ряд программно совместимых компьютеров третьего поколения) ЕС ЭВМ.

Принципиальное значение для этого решения имела точка зрения Академии наук СССР, которую в значительной степени формировал ИПМ, как крупный пользователь высокопроизводительных ЭВМ для научных расчетов, и лично М. Р. Шура-Бура. Эта точка зрения состояла в том, чтобы обеспечить программную совместимость ЕС ЭВМ с наиболее распространенным на Западе семейством - IBM/360.

В 1963 г. под руководством М. Р. Шуры-Буры был создан один из трех трансляторов с языка АЛГОЛ-60 для ЭВМ М-20 - транслятор ТА-2 с полной версией языка АЛГОЛ-60. За ним последовали системы программирования для БЭСМ-6 и других ЭВМ.

Концепция создания интегрированных систем программирования на базе общего промежуточного языка АЛМО (АЛгоритмический Машинно-Ориентированный) и прекомпиляторов с нескольких входных языков была предложена и развита Э. З. Любимским и С. С. Камыниным, сотрудниками отдела М. Р. Шуры-Буры.

В 80-х годах инструментом системного программирования для разработки компиляторов в ИПМ стал язык РЕФАЛ. Язык РЕФАЛ и его реализация были разработаны В. Ф. Турчиным, тогда сотрудником отдела М. Р. Шуры-Буры. Технология РЕФАЛ была применена при создании компиляторов ФОРТРАН для ЭВМ ПС-3000, ЕС 1191, масштабируемого компилятора бортового модуля программного обеспечения космического корабля "Буран", программного обеспечения изделий специализированной техники "Булат 2", "Булат 3" (похожих на STARAN). Технология РЕФАЛ имела успех вплоть до 1993 г., пока в стране разрабатывалась отечественная вычислительная техника и была потребность в создании собственных компиляторов.

Работы, связанные с языком РЕФАЛ, продолжаются в ИПМ и в настоящее время. Другим направлением деятельности отдела М. Р. Шуры-Буры в области языков и систем программирования было создание и реализация непроцедурного языка программирования "Норма". Эти работы были выполнены под руководством И. Б. Задыхайло. Они были направлены на решение проблемы высокоуровневого синтеза при проектировании прикладных программ

И. Ляпунов Разработал теорию операторных методов для абстрактного программирования и основал советскую кибернетику и программирование.

Операторный метод вырастал на глазах студентов молодой кафедры вычислительной математики, незадолго до того организованной на механико-математическом факультете МГУ. Это происходило в курсе восьми лекций под названием "Принципы программирования", прочитанном Алексеем Андреевичем в 1952/53 учебном году. Курс был новаторским во всём.[7]

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

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

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

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

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

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

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

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

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

-Motorola открыла лабораторию с небольшой группой программистов в Петербурге в 1993 году, сейчас в ней работает более 200 программистов;

-Sun Microsystems начала работать в России более 10 лет назад; на сегодняшний день в Москве и Петербурге работают более 300 сотрудников, принимающих участие в разработке новых продуктов и сопровождении существующих;

-Intel открыла свою лабораторию в Нижнем Новгороде в 1993 году; сегодня в этом подразделении работает около 200 программистов, планируется увеличить их число до 500;

-SAP при поддержке компании Siemens Business Services развернула в Петербурге подразделение из 40 программистов, численность которых планируется довести до 100.

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

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

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

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

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

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

Работы по обеспечению качества в России чаще всего основываются на ISO 9001, который еще в советские времена был положен в основу национального стандарта ГОСТ ИСО Р 9001. На сегодняшний день ISO 9001 по-прежнему остается наиболее доступным из всех программных стандартов: существует множество сертифицирующих органов (как национальных, так и международных) и множество курсов по ISO 9001. Прочие стандарты менее популярны и прежде всего по причине их недостаточной распространенности и высокой стоимости сертификации. Многие российские компании планируют сертификацию по стандарту СММ, однако еще ни одна из них еще не достигла этого; среди подразделений западных компаний необходимо отметить лабораторию Motorola в Петербурге, достигшую пятого уровня СММ.

Развитие российской индустрии программирования затруднено целым рядом проблем. Самая большая трудность — это компьютерное пиратство. 88% используемых в России программ являются нелицензионными (в среднем по миру — 36%). Только Вьетнам, Китай и ряд стран бывшего СССР имеют еще худшие показатели по этой проблеме. Некоторые компании пытаются избежать столкновения с этой проблемой путем ориентации создаваемых продуктов на западный рынок. Этот подход (известный также как «скандинавская» или «израильская» модель) представляется очень многообещающей, так как из-за разницы в уровне цен на исходном и целевом рынке финансовый результат может многократно превышать затраты. Единственная проблема заключается в том, что требуются значительные начальные финансовые вложения, отсутствующие у большинства российских компаний. Финансовый рынок в России также недостаточно развит для того, чтобы поддерживать подобные проекты. Поэтому, несмотря на целый ряд примеров успешной реализации подобной модели (например, антивирусная система AVP или графические средства, разработанные компанией ParaGraph и приобретенные впоследствии Silicon Graphics), все еще неясно, станет ли эта модель массовой в России.

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

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

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

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

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

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

Заключение

Одной из самых революционных идей, приведших к созданию автоматических цифровых вычислительных машин, была высказанная в 20-х годах XIX века Ч.Бэббиджем мысль о предварительной записи порядка действий машины для последующей автоматической реализации вычислений - программе. И, хотя использованная Бэббиджем запись программы на перфокартах, придуманная для управления ткацкими станками французским изобретателем Жозефом Мари-Жаккаром, технически не имеет ничего общего с современными приемами хранения программ в ЭВМ, принцип здесь по-существу один. С этого момента начинается история программирования.

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

Революционным моментом в истории языков программирования стало появление системы кодирования машинных команд с помощью специальных символов.

Большой вклад внесли в развитие прграммирования американские ученые Эдсгер Дейкстра, представитель теоретического программирования, основатель и популяризатор парадигмы структурного программирования. Дональд Эрвин Кнут, разработчик нескольких известных программных технологий, изобрел ТеХ, первую издательскую систему, а также METAFONT, Билл Гейтс, разработчик программного обеспечения Microsoft.

В становлении и развитии отечественного программирования огромная роль принадлежит М. Р. Шуре-Буре и И. Ляпунову разработавшему теорию операторных методов для абстрактного программирования и основал советскую кибернетику и программирование.

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

Библиография

  1. Выдающиеся программисты и математики-программисты // www.adeptis.ru/vinci
  2. Информатика и вычислительная техника: Учеб. пособие для студ. вузов / Под ред. В.Н. Ларионова. - М.: Высш. шк.,2005. - 287с.
  3. Каймин В. А. и др. Основы информатики и вычислительной техники. — М.: Просвещение, 2007.- 345 с.
  4. Кершан Б., Новембер А., Стоун Дж. Основы компьютерной грамотности. Пер. с англ. М., “Мир”. -2008. - 254 с
  5. Могилев А. И. и др. Информатика.- М.: Академия, 2006— 848 с.
  1. Могилев А. И. и др. Информатика.- М.: Академия, 2006— с. 172

  2. Могилев А. И. и др. Информатика.- М.: Академия, 2006— с. 175

  3. Могилев А. И. и др. Информатика.- М.: Академия, 2006— с. 177

  4. Выдающиеся программисты и математики-программисты // www.adeptis.ru/vinci

  5. Выдающиеся программисты и математики-программисты // www.adeptis.ru/vinci

  6. Выдающиеся программисты и математики-программисты // www.adeptis.ru/vinci

  7. Выдающиеся программисты и математики-программисты // www.adeptis.ru/vinci