Краткая характеристика развития программирования по десятилетиям

Развитие технологий программирования и информатизация общества

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

Краткая характеристика развития программирования по десятилетиям

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

В 60-е годы можно было наблюдать бурное развитие и широкое использование языков программирования высокого уровня (АЛГОЛ 60, ФОРТРАН, КОБОЛ и др.), роль которых в технологии программирования явно преувеличивалась. Надежда на то, что эти языки решат все проблемы при разработки больших программ, не оправдалась. В результате повышения мощности компьютеров и накопления опыта программирования на языках высокого уровня быстро росла сложность решаемых на компьютерах задач, в результате чего обнаружилась ограниченность языков, проигнорировавших модульную организацию программ. И только ФОРТРАН, бережно сохранивший возможность модульного программирования, гордо прошествовал в следующие десятилетия (все его ругали, но его пользователи отказаться от его услуг не могли из-за грандиозного накопления фонда программных модулей, которые с успехом использовались в новых программах). Кроме того, было понято, что важно не только то, на каком языке мы программируем, но и то, как мы программируем. Это было уже началом серьезных размышлений над методологией и технологией программирования. Появление в компьютерах 2-го поколения прерываний привело к развитию мультипрограммирования и созданию больших программных систем. Последнее стало возможным с использования коллективной разработки, которая поставила ряд серьезных технологических проблем.

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

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

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

Операционные системы

Программирование для ЭВМ 1-го поколения велось в кодах машины, и пользователь при решении своей задачи получал в своё распоряжение все ресурсы, работая с ними напрямую. Даже первые операционные системы, появившиеся в конце 40-х годов и представляющие собой наборы простых программ ввода/вывода суммарным объёмом в несколько сотен команд, не изменили сути дела, т.к. пользователи либо для своих целей создавали собственные сервисные программные средства.

В середине 50-х годов большинство ЭВМ 2-го поколения работало под управлением операционных систем, обеспечивающих пакетный режим обработки: система собирала программы, подготовленные разными пользователями, быстро выполняла их одну за другой, сокращая накладные издержки оператора и лучше планируя вычислительные ресурсы машины. Многие операционные системы данного периода включали библиотеки стандартных и часто используемых процедур и программ, а также трансляторы с первого языка программирования высокого уровня Fortran, разработанного и внедренного в фирме IBM в 1956г.

В начале 60-х появились первые операционные системы с разделением времени, которые позволили центральному процессору переключать обслуживание с одной задачи на другую, создавая иллюзию одновременной работы с ЭВМ многих пользователей. Наиболее бурное развитие операционной системы данного периода началось с появлением ЭВМ 3-го поколения, имеющих аппаратную поддержку основных элементов функционирования операционной системы: системы прерываний, средств защиты оперативной памяти от несанкционированного доступа, а также развитую систему ввода/вывода, развитые средства микропрограммирования и другие. Усложнение и увеличение программной среды ЭВМ не только существенно расширило их функциональные возможности, оптимизировало управление сложными вычислительными процессами и ресурсами в режиме мульти-, телеобработки и интерактивном, но и потребовало от пользователя не только знания языка программирования высокого уровня, но и языка управления заданиями, обеспечивающего интерфейс заданий пользователя с операционной системой – средой. Однако эти дополнительные знания с лихвой окупались предоставляемыми в обмен возможностями: языка программирования высокого уровня для разработки прикладного программного обеспечения и языка управления заданиями высокого уровня для обеспечения интерфейса с программной оболочкой ЭВМ. Лишь 4-е поколение, в недрах которого появилась персональная компьютерная технология на базе ПК, позволило вновь приблизить массового пользователя к вычислительным ресурсам, но не к самой аппаратной среде. И если первые ПК, имеющие очень простые операционные среды, ещё позволяли пользователю брать на себя некоторые функции по управлению основным ресурсами, то с ростом мощности ПК происходило усиление оболочки системного программного обеспечения не только за счет усложнения операционной системы, но и в связи с появлением оболочек для самих операционных систем. Такие оболочки, например MS Windows, используя операционную систему в качестве программного ядра, существенно повышают уровень интеллектуальности интерфейса пользователь – ЭВМ, вместе с тем ещё больше отдаляя его от аппаратной компоненты. Учитывая массово – персональный характер использования ПК, такое решение является единственно верным – физически максимально приблизив вычислительные ресурсы к пользователю, максимально удалить от него внутреннюю кухню ПК, повысив уровень логического интерфейса с ней. И если ещё несколько лет тому назад пользователь ПК так же, как и с предыдущим поколением ЭВМ, всё ещё должен был использовать командный язык операционной системы (MS-DOS, CP/M, Unix и другие), то с появлением операционных оболочек Windows-типа он получил возможность работы с ресурсами ПК на логико–графическом уровне, который потребляет от большинства прикладных пользователей только самых общих знаний с системой программного обеспечения и используемых ими программных средств.

Бурное развитие новой информационной технологии и расширение сферы ее применения привели к интенсивному развитию программного обеспечения. Достаточно отметить, что в 1996 г. мировым сообществом на программное обеспечение затрачено свыше 110 млрд. долларов. Причем тенденции развития программного обеспечения показывают, что динамика затрат имеет устойчивую тенденцию к росту, примерно 20% в год.

Наши рекомендации