Программирование в 1960-х годах
Материал из Documentation.
Десятилетие стало свидетелем бурного роста сложности и масштаба программных проектов, что привело к осознанию необходимости более систематических и инженерных подходов к разработке. Новые языки программирования, такие как BASIC, Pascal и Simula 67, предлагали новые способы организации и структурирования кода, а концепция структурного программирования стала доминирующей парадигмой. «Кризис программного обеспечения», возникший в этот период, стал катализатором для разработки новых методов и инструментов управления проектами, а также для формирования профессии инженера-программиста.
В начале 1960-х годов мир вычислений был в основном представлен мэйнфреймами — большими и дорогими компьютерами, доступными лишь крупным организациям и государственным учреждениям. IBM доминировала на рынке с серией System/360, которая предлагала широкий спектр моделей, совместимых друг с другом. System/360 использовала микропрограммирование для реализации набора команд, что позволяло эмулировать различные архитектуры и обеспечивало совместимость программного обеспечения между разными моделями. Это было революционным решением, которое позволило пользователям обновлять свои компьютеры, не переписывая все свои программы. В то же время, начали появляться миникомпьютеры, такие как DEC PDP-8 и PDP-11, предлагавшие более доступные и компактные решения для небольших компаний и научных лабораторий. Эти машины стимулировали развитие интерактивных систем и новых подходов к программированию. Стоимость и размеры мэйнфреймов ограничивали доступ к ним, часто требовалось планировать время работы заранее, а интерактивная разработка и отладка были сложными. Миникомпьютеры, с другой стороны, позволяли более гибкую и экспериментальную разработку.
Одной из самых влиятельных концепций, сформировавшихся в 1960-е годы, стало структурное программирование. Этот подход, продвигаемый такими учеными, как Эдсгер Дейкстра и Тони Хоар, предлагал отказаться от неструктурированного кода с большим количеством операторов GOTO (безусловный переход) в пользу более ясных и предсказуемых управляющих структур: последовательного выполнения, ветвления (IF-THEN-ELSE) и циклов (WHILE, FOR). Сторонники структурного программирования утверждали, что это позволяет создавать более читаемый, поддерживаемый и надёжный код. Неструктурированные программы часто приводили к «спагетти-коду», трудному для понимания и отладки. Структурное программирование также облегчало применение формальных методов верификации программ, что позволяло доказывать их корректность.
Среди языков программирования, появившихся в этот период, выделяются BASIC, Pascal и Simula 67. BASIC (Beginner’s All-purpose Symbolic Instruction Code) был разработан Джоном Кемени и Томасом Курцем в Дартмутском колледже в 1964 году с целью сделать программирование доступным для студентов, не имеющих специальной подготовки. BASIC отличался простым синтаксисом и интерактивной средой разработки, что позволяло быстро создавать и запускать программы.
Пример кода на BASIC:
10 PRINT «Hello, World!» 20 END
Pascal, созданный Никлаусом Виртом в конце 1960-х годов, был разработан как язык, ориентированный на структурное программирование. Pascal поддерживал строгую типизацию данных, модульность и использование чётких управляющих конструкций, что позволяло создавать более надёжные и легко читаемые программы. Pascal стал популярным языком для обучения программированию в университетах и колледжах.
Simula 67, разработанный Оле-Йоханом Далем и Кристеном Нюгордом в Норвежском вычислительном центре, был одним из первых объектно-ориентированных языков программирования. Simula 67 ввёл концепции классов, объектов, наследования и полиморфизма, которые стали основой для многих современных объектно-ориентированных языков, таких как Smalltalk и C++. Simula 67 разрабатывался для моделирования сложных систем, и объектно-ориентированный подход позволял создавать модели, более точно отражающие реальный мир.
Влияние IBM System/360 на программирование в 1960-е годы было огромным. Эта серия компьютеров не только предоставила мощную аппаратную платформу для разработки и выполнения программ, но и способствовала стандартизации в индустрии. Операционная система OS/360, разработанная для System/360, была одной из первых крупных операционных систем с многозадачностью, управлением памятью и сложной файловой системой. Разработка OS/360 была масштабным и сложным проектом, который выявил многие проблемы, связанные с созданием больших программных систем. Разработка OS/360 потребовала огромных усилий и ресурсов, а также привлечения тысяч программистов.
1960-е годы стали периодом осознания так называемого «кризиса программного обеспечения». Разработка крупных программных систем становилась всё более сложной, дорогостоящей и ненадежной. Проекты часто срывались по срокам, превышали бюджет и не соответствовали требованиям заказчиков. Этот кризис был вызван рядом факторов, включая рост сложности программного обеспечения, нехватку квалифицированных программистов, отсутствие формальных методов разработки и недостаточный учёт человеческого фактора. Например, проект Multics, разрабатывавшийся в MIT, General Electric и Bell Labs, столкнулся с огромными трудностями и значительно отстал от графика.
В ответ на «кризис программного обеспечения» в 1960-х годах начали формироваться новые подходы к разработке программного обеспечения, ориентированные на применение инженерных принципов. Были предложены различные методологии разработки, такие как структурное программирование, модульное проектирование и восходящее проектирование. Начали разрабатываться инструменты для автоматизации процесса разработки, такие как компиляторы, отладчики и системы управления версиями. Улучшение инструментов и методик стало критически важным для создания более надежных и предсказуемых программных систем.
1960-е годы заложили прочный фундамент для современной индустрии программного обеспечения. Новые языки программирования, принципы структурного программирования и инженерные подходы к разработке позволили создавать более сложные, надёжные и эффективные программные системы. «Кризис программного обеспечения» стимулировал дальнейшее развитие методологий разработки и инструментов, что привело к формированию профессии инженера-программиста и созданию сложных систем, которые лежат в основе современного мира.
История программирования | |
---|---|
XX век | 1900-е годы • 1910-е годы • 1920-е годы • 1930-е годы • 1940-е годы • 1950-е годы • 1960-е годы • 1970-е годы • 1980-е годы • 1990-е годы |
XXI век | 2000-е годы • 2010-е годы • 2020-е годы • 2030-е годы • 2040-е годы • 2050-е годы • 2060-е годы • 2070-е годы • 2080-е годы • 2090-е годы |
Виды | Императивное • Объектно-ориентированное • Структурное • Функциональное |