Программирование появилось гораздо раньше чем первые компьютеры одним из первых программистов в мире
История формирования программирования.
Современное программирование начало развиваться еще в средине прошлого века как отдельная отрасль. Технология развития аппаратного обеспечения, операционных систем и языки программирования повлияли на среду разработки.
Поэтапное развитие программирования:
3. Конрад Цузе
Изобретатель родился в столице Германии в 1910 году . Примечательно, что еще будучи школьником, Конрад создал действующую модель аппарата, разменивающего деньги.
Цузе выучился на инженера в Высшей технической школе и позднее устроился на работу в авиакомпанию. Очень скоро он столкнулся с необходимостью производить огромное количество однообразных скучных расчетов для проектирования самолетов. Решив подойти к этому творчески, молодой инженер задался целью сконструировать вычислительный прибор, используя вместо мастерской дом своих родителей.
В его планы входило создание ряда устройств, задуманных как вспомогательный инструмент для работы инженеров и проектировщиков. Первый прототип этого компьютера (V-1) был полностью автоматическим и располагался на площади размером 4 м2.
Во время войны он находился в составе действующей армии, однако сумел убедить свое командование в пользе своих разработок и вскоре был отправлен в авиационный исследовательский институт в Берлине для проведения исследований.
Разработки Цузе – это история научной работы и открытий одиночки: в военное время у него не было никакого доступа к исследованиям своих коллег, равно как и возможностей для сотрудничества. Ввиду недостатка финанфирования, исследователь был вынужден перейти от конструирования приборов к теоретической работе.
Ученый изобрел первый язык программирования высокого уровня, названный Планкалкюль. Он задумывался как система управления для одной из его машин (V-4), однако мог успешно применяться для схожих с ним устройств.
Инженер считал, что в основе языка должна лежать система числовых и символьных обозначений, основанная на принципах логики, иными словами – набор поэтапных шагов в решении задачи.
Цузе подчеркивал, что его язык подходит для реализации самых разных задач, в том числе математических операций и сортировки чисел.
Увлекшись шахматами, инженер также разработал множество фрагментов кода, позволяющих машине оценивать шахматные позиции.
Изобретатель никогда не надеялся, что его язык будет применен на практике. Он всегда говорил о том, что Планкалкюль возник как плод теоретических изысканий, безотносительно того, возникнут ли в ближайшее время устройства, которые позволят его реализовать.
Рабочая версия этого языка впервые была создана в Свободном университете Берлина только в 2000 году.
Научные труды ученого были изданы в полном объеме лишь в 1972 году. Кто знает, как мог повлиять Планкалкюль на развитие программирования, если бы исследователи в этой области смогли познакомиться с работами инженера намного раньше?
90-е годы
Это эпоха улучшения. В 90-е возникла модель управления разработкой программного обеспечения с целью выработки более совершенного продукта. Т.е. считалось что для разработки неплохого программного продукта необходимо правильное управление процессом. Написание программного обеспечения — это техническая задача. Квалифицированные разработчики могут сформировать отличное программное обеспечение, не обращая внимания на неважное руководство или его совершенное отсутствие. Новейшие операционные платформы обошли прежние операционные системы по функциональности. Запас сведений, которые когда-то были нужными и полезными, стали бесполезными. Возникли новейшие языки программирования, в один миг добившиеся признания. Программированию доводилось учиться по-новому. Усовершенствование процессов написания программ стало возможно за счет их упрощения, повышения функциональности и применения более качественных технических задач.
Как и для чего разрабатывались разные языки программирования
Развитие техники дало толчок появлению новой отрасли прикладной математики - программированию. Первые программы записывались вручную на перфокартах. Коды проставлялись на них при помощи проколов в определенных местах. В записи использовались “ноли” и “единицы”, так как машины других обозначений тогда не понимали.
Составление программы таким образом - процесс трудоемкий. Перфокарт с командами для одной задачи требовалось множество. К тому же, программист был обязан знать всю бинарную таблицу кодов.
Для упрощения задач в 50-х годах прошлого века человечество принялось разрабатывать специальные языки. Один из первых - Ассемблер. С его появлением программисту уже не нужно было знать кучу двоичных кодов. Теперь было достаточно запомнить символичные термины, что оказалось гораздо проще. Фортран - еще один язык, появившийся в то время. Он с успехом применяется в современной среде разработок, относясь к высокоуровневым языкам. Используется в основном для научных вычислений.
По ходу расширения задач, выполняемых компьютерами, стали появляться более узконаправленные языки: для работы с текстами, графикой, экономическими документами и т.д. Так, с появлением и развитием интернета ЭВМ перестали быть машинами только для обработки и хранения информации. Необходимость объединения компьютеров в сети и предоставления людям удаленного доступа к ресурсам стала толчком к созданию новых кодов.
Паскаль - еще один известный высокоуровневый язык. Он появился в рамках конкурса 1968 года. Разработчик - Н. Вирт. Победителем он не стал, зато язык известен многим и до сих пор находит применение. Изначально он был задуман специально для обучения студентов. Творение Вирта объединяло множество мощных и эффективных методов обработки информации. Как ни странно, победитель конкурса - язык Алгол-68 не получил дальнейшего развития и популярности. Паскаль же напротив развивался и применялся для выполнения многих задач. Еще один из высших языков, применяемых для обучения - Бейсик.
Наравне с языками разрабатывались специальные программы для перевода команд в двоичный код, понятный машине. Дальнейшее развитие программирования становилось все стремительнее и разнообразнее. Оказалось практически невозможным создание единого универсального языка: только специально разработанный метод для реализации определенных типовых действий позволяет достичь наилучших результатов.
Бурное развитие IT-технологий ставит все новые задачи. Наравне с классическим программированием применяется модульное - с использованием в работе парадигм. За короткий период, от появления первых языков до настоящего времени, разработано очень много методов взаимодействия с компьютерами.
Программист — сравнительно молодая профессия, появившаяся, по разным данным, около 70 лет назад. За это время она успела проделать огромный путь, и деятельность современных программистов мало чем напоминает труд специалистов в этой области около полувека назад. В этой статье мы расскажем, с как возникла эта профессия, и о самых известных первопроходцах в этой сфере. Кстати, в 2021 году центр профориентации ПрофГид разработал точный тест на профориентацию. Он сам расскажет вам, какие профессии вам подходят, даст заключение о вашем типе личности и интеллекте.
80-е годы
В это десятилетие программисты создали 2 новшества в создании программного обеспечения. Возникла возможность автоматизировать разработку программ с помощью CASE (computer aided software engineering). Благодаря этому программисты смогли получить более современные инструменты для решения задач программирования, в частности, языки четвертого поколения 4GL, позволяющие повысить производительность разработчиков программ, и уменьшить количество программных ошибок. Но такие новшества не нашли поддержки у программистов, потому что если работать над качеством продукта, то нужны ли сами программисты как высокооплачиваемые специалисты.
Кроме того, были востребованы формальные методы для работы программистов. Это когда используются методики, которые основываются на математическом аппарате для спецификации, разработки и проверки уникальности программного и аппаратного обеспечения. Формальные методики очень ресурсоемкие.
1. Августа Ада Лавлейс
«Суть и предназначение машины изменятся от того, какую информацию мы в нее вложим. Машина сможет писать музыку, рисовать картины и покажет науке такие пути, которые мы никогда и нигде не видели».
Это может оказаться сюрпризом, однако первым программистом была. женщина. Дочь знаменитого поэта-романтика Гордона Байрона появилась на свет в Лондоне, в 1815 году. Впрочем, брак лорда Байрона с матерью девочки, Анной Изабеллой Милбенк распался, когда ребенку было лишь 5 недель, и с того времени она ни разу не видела своего отца.
Ада провела свое детство в окружении многочисленных гувернанток, получив прекрасное разностороннее образование, больше всего ее интересовала математика и иные точные науки. В свои 12 лет девочка создавала чертежи оригинального летательного аппарата, работающего при помощи парового двигателя!»
В 1824 году Ада впервые познакомилась с математиком Чарльзом Бэббиджем, и эта встреча стала для нее знаковой. Ученый продемонстрировал Лавлейс модель своей разностной машины, сконструированной для автоматического подсчета логарифмов и тригонометрических функций, инструкции для которой предлагалось вводить при помощи перфокарт.
Лавлейс очень заинтересовалась проектом Бэббиджа, потратив немалое время на его изучение. Вскоре исследователь стал ее другом и наставником в области математической науки, и их сотрудничество было плодотворным и продолжалось на протяжении многих лет.
Хотя разностная машина ввиду ряда причин (сложности с технической реализацией, ограниченность бюджета) так и не была создана, этот проект вдохновил Чарльза на создание своего следующего проекта – аналитической машины. По сути, этот аппарат считается прародителем первого компьютера, хотят работающий прототип этой машины был создан спустя значительное время после смерти ученого.
По приглашению итальянских математиков, исследователь прочитал курс лекций о своем устройстве в Турине.
На основе этих материалов Луиджи Менабреа в 1842 году опубликовал статью об аналитической машине на французском языке.
Чарльз попросил Аду сделать ее перевод на английский, и она с вдохновением взялась за работу, сочтя это большой честью.
Однако Лавлейс не только перевела научный текст, но и расширила ее многочисленными емкими комментариями, включавшими в себя размышления по поводу особенностей конструкции устройства. В результате статья увеличилась в размерах более чем в три раза!
Особенно интересно, что в своих примечаниях Лавлейс описывала разработку плана операций для аналитической машины (программный алгоритм). Именно он считается первой программой, созданной непосредственно для компьютера. И несмотря на то, что она так и не была применена на практике, именно эту женщину называют первым программистом.
Заметки Лавлейс легли в основу современного программирования. Ада ввела понятие цикла, определив его как набор команд, повторяющийся более одного раза. Такое нововведение позволило значительно сократить объем программного алгоритма. Без такой оптимизации применение машины было бы затруднительным, поскольку передача команд осуществлялась с использованием перфокарт, имеющих ограниченный размер.
По имени этой потрясающей девушки получил свое название язык программирования АДА, использующийся в военных силах США и НАСА. Помимо этого, в США в ее честь названы два маленьких городка и колледж.
“Машина для исчисления разностей” и дочь поэта Байрона
В 1830 году Чарльз Беббидж начал работу над “Машиной для исчисления разностей”. Это аналитическое устройство и стало прототипом компьютеров. Ученый был профессором математики в Кэмбриджском университете. Реализовать в то время такие разработки было не просто. В теории англичанин изложил многие идеи, которые были применены позже при создании ЭВМ и принципов их работы.
Управление машинами с помощью программ - это тоже предложение Чарльза. Вместе с ним работала Ада Лавлейс - дочь знаменитого британского поэта Байрона. Эта женщина вошла в историю как первый программист. Ей принадлежат идея применения в работе с устройством двоичной системы счисления и основные принципы программирования. Ада ввела в науку многие термины, которые применяются и сейчас. Самые первые языки основывались на ее разработках.
00-е годы 21-го века
Отдельные программисты уже отрекаются от привычных способов создания программного обеспечения в пользу методов стремительного и неординарного программирования. В своем последнем проявлении скорая разработка — это неструктурированный, беспорядочный процесс, который применяет специальные методы и в нем упускаются многие фазы планирования и проектирования. Хотя быстрая разработка может сократить время выпуска продукции и повысить скорость, с которой специалист по программированию создает новый код. Но неизвестно сможет ли повысится при этом качество программы.
Каждое десятилетие вырабатывает важнейшие изменения, и, хотя пока универсальное средство так и не было изобретено, ходя и решает часть задачи о качестве программного обеспечения. Важнейшая проблема нашего общества состоит в том, что оно отказывается от многих полезных идей только потому, что ни одна из них не является решением. Все это время считалось, что даже если технология увеличивает достоверность формирования более качественного обеспечения, и при этом не гарантирует создание совершенных программ, то она не пригодна ни для чего.
В общем программирование очень тесно взаимосвязано с развитием технологий и технического прогресса. В наше время нельзя вообразить жизнь без современных гаджетов которые работают только благодаря программному обеспечению.
Языки программирования создавались и разрабатывались в течение многих лет. Некоторые из них до сих пор находятся в процессе развития, так как потребности потребителя растут, разрабатывается новое «железо» и программистам приходится искать новые решения, а также принципы работы с инновациями.
Само понятие «язык программирования» можно трактовать как формальную знаковую систему, которую программисты используют для написания компьютерных программ. Однако, о языке машин инженеры стали задумываться намного раньше, чем у них появилась возможность писать на нем и создавать программы.
Идею о создании языка машин впервые в 19 веке высказал ученый Чарльз Бэббидж. Его считают основателем и отцом первого в мире компьютера. На тот момент его идеи были лишь предположениями. Он не знал о мониторах и микросхемах, но ему удалось точно описать основные принципы работы вычислительных машин. Со временем инженеры сделали грандиозный вывод о том, что эффективное использование компьютеров заключается в правильно подобранных алгоритмах.
Пик развития языков программирования пришелся на 50-е годы 20 века. Тогда, чтобы программировать, инженерам приходилось знать полностью всю архитектуру компьютера и понимать его машинные коды. В 50-е ты не мог быть программистом, если не знал, как собирается компьютер и из чего он состоит. У компьютеров того времени даже клавиатуры не было, но были перфокарты, которые не очень упрощали будни тогдашнего инженера-программиста.
Когда человеку нужно упростить свой труд, сделать его более автоматизированным, он начинает придумывать новые идеи и изобретать то, что могло бы облегчить ему жизнь. Так начали появляться первые языки программирования.
В то время инженеры-программисты были вынуждены детально изучать все машинные команды, а потом внимательно писать код, каждый раз тщательно его проверяя. Чтобы как-то упростить задачу, программистам требовалось перевести цифровые обозначения операций в буквы. Так появился первый язык программирования – Ассемблер (от английского assemble – собирать). Сейчас его считают языком низкого уровня программирования, но в свое время он произвел настоящий фурор. Программы, написанные на Ассемблере, были достаточно эффективны и работоспособны.
Мало кто может поверить в то, что первый программист в мире жил в 19 веке, еще до появления первых компьютеров в привычном смысле этого слова. А еще меньшее количество людей может поверить в то, что первым программистом была женщина.
Ада Лавлейс родилась в Лондоне 10 декабря 1815 года. И была дочерью известного поэта и революционера лорда Байрона. Но лорд Байрон покинул семью после скандала с женой, Анной Байрон. Именно Анна сыграла ключевую роль в интеллектуальном развитии дочери. После размолвки с лордом Байроном, она решила, что дочь не будет похожа на импульсивного отца и наняла Аде репетитора по математике и естествознанию. Для того времени девочкам несвойственно было заниматься такими предметами, да и вообще образованных девушек было крайне мало.
Ада преуспевала во всех предметах, которые изучала и выросла в гениальную женщину своего времени, многие ученные того времени признавали ее таланты, например, Майкл Фарадей. Но одно знакомство изменило ее жизнь. Она познакомилась с выдающимся математиком того времени с Чарльзом Бэббиджем. Он был профессором математики в Кембридже и не за долго до встречи с Адой он изобрел логарифмическую машину, которая теперь считается первым компьютером. Бэббидж подружился с Адой и взял под свое крыло и помогал ей развиваться. Ада была вдохновлена разработками Бэббиджа, очень часто вступала с ним в разные дискуссии и помогала с его проектами. Одним из таких проектов была "Аналитическая машина Бэббиджа". К сожалению, парламент не поддержал этой разработки, тогда Бэббидж начала искать заинтересованных людей со всей Европы. Один итальянец, который крайне положительно относился к разработкам Бэббиджа, написал статью про его машину, но статья была написана на французском языке. Так как Бэббидж не знал, этого языка статью ему перевела Ада. Но как перевела, она дополнила статью своими идеями в виде заметок. Таким заметок оказалось больше чем текст самой статьи. В этих заметках речь шла о плане операций для аналитической машины, и это было первое программирование! Ада писала о том, что возможно сделать так, что машина Бэббиджа будет решать математические формулы очень быстро.
Ее комментарии признали невероятной самостоятельной работой и опубликовали в научном журнале. Она провела исследование, в котором говорилось о том, что "Компьютеры" способны кодировать информацию для того, чтобы он мог обрабатывать информацию в виде символов.
Сейчас Ада Лавлейс считается первым программистом и в ее честь даже назвали язык программирования Ada.
Программирование: появление и развитие.
Первые языки взаимодействия человека и компьютера мало чем отличались от двоичной системы. Именно неудобство использования в работе машинного кода послужило причиной для разработки специальных языков программирования.
Первые компьютеры
Машина Беббиджа получила второе рождение в конце 19 века. Его идеи были реализованы американцем Г. Холлеритом. Для работы устройства он впервые применил электричество. С помощью созданного счетно-аналитического устройства ученым были успешно обработаны данные переписи населения. Позже он основал фирму, выпускающую перфокарты и вычислительные аппараты.
Большой вклад в развитие техники внес А. Тьюринг. Он ввел и обосновал понятие алгоритма и предложил теорию создания ЭВМ.
Первый компьютер был изобретен в Гарварде под руководством профессора Айкена. Он носил название “МАРК-1”. Устройство было собрано по заказу ВВС Соединенных Штатов. На то время у ученых появилась возможность использовать в разработках электронные и электрические детали. Поэтому изобретение уже было не механической машиной, а электромеханической. Оно был огромных размеров и занимало отдельное помещение в университете.
Прогресс не стоял на месте: появился Эниак - первая электронная ЭВМ. Немного позже англичанами было изобретено оборудование, оснащенное запоминающим устройством - EDSAC. Многие именно эти аппараты называют первыми компьютерами, считая “МАРК-1” просто мощной вычислительно-аналитической машиной.
2. Морис Уилкс
«Я точно помню тот самый момент, когда я понял, что большая часть моей жизни теперь будет состоять в поиске ошибок в моих собственных программах».
Этот известный ученый появился на свет в 1913 году в Великобритании. Исследователь прошел обучение в Кембриджском университете, выбрав специальность радиофизика. После завершения учебы, он стал помощником профессора в математической лаборатории.
После окончания Второй мировой войны (ученый принимал участие в боевых действиях) Уилкс возглавил лабораторию и занимал этот пост на протяжении многих лет.
В 1946 году в руки исследователя попал доклад известного математика Джона фон Неймана о создании ЭВМ под названием EDVAC, стартовавшем в США.
Уилкса очень заинтересовали идеи, касающиеся записи и хранения программного кода в памяти электронных устройств. Вдохновленный докладом своего коллеги, Уилкс записывается на цикл лекций, посвященный теории и методам конструирования электронных цифровых компьютеров, в Электротехнической школе Мура. Позднее он скажет, что эти лекции стали одним из решающих событий в его жизни.
Вернувшись домой, исследователь приступает к созданию своей собственной машины. По сути, этот проект был копией машины фон Ноймана, однако Морис Уилкс внес ряд существенных изменений в его программную часть.
Для сокращения объема двоичного кода, использующегося при создании программ, он разработал первую в мире мнемоническую систему обозначения компьютерных команд, получившую название ассемблер. Так, действие вычитания кодировалось латинской S, передача информации в память – буквой T и т.д.
Еще одним нововведением была библиотека подпрограмм. В то время ученые вынуждены были записывать часто использующиеся программы в блокнот, чтобы не создавать их каждый раз заново. Однако, в соответствии с тем, как размещались эти алгоритмы в памяти устройства, код каждый раз видоизменялся, что делало его применение неудобным и отнимало много времени.
Морис оптимизировал этот процесс, создав единую библиотеку подпрограмм и алгоритм, автоматически размещающий их в памяти компьютера, активировавшийся короткой командой.
Позднее Морис со своей командой приступил к разработке следующей версии машины – EDVAC-2. Здесь ему удалось реализовать принцип микропрограммирования. Иными словами, он создал программу, которая осуществляет функцию управлению компьютером за счет команд, написанных в виде машинного кода.
Соответственно, разработка управляющей системы из конструирования непосредственно аппаратной части компьютера превращалось в задачу создания программного обеспечения. Кроме того, этот принцип позволял вносить изменения в работу компьютера, не создавая с нуля техническое оборудование.
50-е годы
Компьютеры применялись уже в годы Второй мировой войны для решения военных стратегических задач США. После окончания войны компьютеры применяли уже для оборонных целей. Первыми программистами стали ученые математики и физики, которые очень скрупулезно расписывали алгоритмы работы машины. Но задачи, решаемые талантливыми учеными, были довольно простые. В то время не имелось операционных систем со множеством встроенных функций. Программисты-ученые решали понятные и доступные им задачи. Это было основой зарождения отрасли программирования.
50-е годы
Компьютеры применялись уже в годы Второй мировой войны для решения военных стратегических задач США. После окончания войны компьютеры применяли уже для оборонных целей. Первыми программистами стали ученые математики и физики, которые очень скрупулезно расписывали алгоритмы работы машины. Но задачи, решаемые талантливыми учеными, были довольно простые. В то время не имелось операционных систем со множеством встроенных функций. Программисты-ученые решали понятные и доступные им задачи. Это было основой зарождения отрасли программирования.
60-е годы
В эти годы программирование начало резко развиваться. В учебных заведениях появились дисциплины, посвященные изучению компьютеров и их программированию. Все что связано с компьютерами стало более доступно. К счастью программисты этого десятилетия относились к своей работе также скрупулезно, как и их предшественники. Языки программирования стали более простыми в использовании. В связи с небольшим количеством средств компиляции, программисты вынуждены были вручную доводить свои программы до совершенства.
70-е годы
Уровень специалистов стал падать потому что увеличилось количество компиляторов. Программисты писали и создавали программы, которые позволяли работать более эффективно. Но при этом возникало много ошибок из-за того, что программистов становилось больше, а профессионализм их падал. Эти ошибки представляли, как особенности программ. Тестирование программы не проходили в нужной мере. Тестировщик программ было неквалифицированными специалистами. До нашего времени сохранилась тенденция непрестижности специальности тестировщика программ. Коды, созданные в 70-е годы – самое худшее что есть в программировании. Он сложен для работы и специалисты пытаются избежать возможность работы с ним. В те годы появились метрики – численные характеристики качества кода. Но полный беспорядок в программировании в 70-е годы не дал возможность качественно вести метрики. Путаница и беспорядок в отрасли программирования привели к тому что хорошие специалисты могли создать хороший код, но с плохой метрикой, а плохие программисты создадут код, у которого идеальная метрика. Это десятилетние в истории программирования требовано начала перемен.
Читайте также: