Код. Сегодня он везде: в светофорах, в наушниках, в вашем чайнике, в автомобиле — куда не покажи пальцем, это будет работать благодаря коду.
Программисты создают настоящее и делают огромный вклад в будущее. Для многих программирование до сих пор кажется чем-то загадочным, сложным и даже странным.
В этом материале вы узнаете, откуда появился код, как он работает, кто стал первым программистом и причём здесь ткацкие станки.
У всех компьютеров общий предок — ткацкий станок
Их считывание происходило двумя методами: электромеханическим и фотоэлектрическим.
Для кого-то это может стать неожиданным фактом, но пра-прадедушкой современных компьютеров являются ткацкие станки. Со стороны так и не подумаешь: что может объединять потрясающие тонкие MacBook с этими огромными махинами.
Общий предок — перфокарты. Да, в компьютерах Mac они не использовались, но зато отлично применялись в компьютерах первого поколения. На них записывались программы.
Только в ЭВМ это были математические задачи, а в станках — картины.
На фотографии изображён рабочий образец Жаккардового станка.
Идею применять перфокарты в ткацких станках впервые реализовал французский изобретатель Жозеф Жаккар в 18 веке. В каждое из отверстий проходила отдельная игла. Благодаря этому появилась возможность создавать полотна с невероятной детализацией.
Некоторые из таких полотен можно сравнить с настоящими картинами, написанными профессиональными художниками.
Это портрет Жозефа Жаккара, сотканный на его изобретении.
Правда, для математических вычислений тогда ещё использовались счёты, которых хватало только для сложения и вычитания. Людям требовалось что-то большее.
Первый «компьютер» придумали в 19 веке
Пускай при жизни Бэббидж не успел реализовать свой проект, вместо него это сделали сотрудники Музея науки в Лондоне. Сборка заняла два года в период с 1989 по 1991 год.
Взяв за основу Жаккардов станок, в 19 веке британский учёный Чарльз Бэббидж придумал машину с физическим механизмом. Перфокарты в ней использовались в трёх сценариях.
Перфокарты операций переключали машину между режимами сложения, вычитания, деления и умножения.
Перфокарты переменных управляли передачей данных из памяти в арифметическое устройство и обратно.
Числовые перфокарты могли быть использованы как для ввода данных в машину, так и для сохранения результатов вычислений, если памяти было недостаточно.
Цитата из описания машины на Википедии.
Как и в ткацком станке, аналитическая машина использовала иглы: когда они проходили через отверстия – механизм внутри приходил в действие. Если отверстий не было, иглы просто отталкивались. По сути эти перфокарты стали первыми программами.
К сожалению, при жизни реализовать своё изобретение ему не удалось.
Портрет Ады.
Идею вычислительных машин подхватила его ученица Ада Байрон. Она, кстати, написала первые в истории компьютерные программы.
Одна из них была сделана для вычисления значений тригонометрической функции с многократным повторением заданной последовательности вычислительных операций. Здесь же Ада ввела понятие «цикла» в программировании. Другая разработка предназначалась для вычисления чисел Бернулли.
Также она выдвинула теорию, что при помощи аналитических машин можно будет решать не только математические задачи, но ещё создавать музыку, картины и тексты. Как она говорила в одной из своих записок:
«аналитически машины укажут науке такие пути, какие нам и не снились». Что же, она предугадала будущее.
Табулируюшая машина сделала работу с данными проще
Компьютеры и табуляторы действительно сделали людей продуктивнее во многих аспектах.
Все эти разработки тогда были уделом сообщества учёных. Массово перфокарты, кроме ткацких станков, нигде особо не использовались. Но всё поменяла табулирующая машина Германа Холерита. Американский учёный придумал её с целью ускорить процесс переписи населения.
Данные о возрасте, количестве детей, роде деятельности, расе и прочем записывались в ячейки на перфокартах. Ручной анализ всех этих данных занял бы значительно больше времени, а машина с этим справилась эффективнее. После этого на табулятор обратили внимание власти, военные, бухгалтеры, и перфокарты стали более массовыми.
Россия тоже внесла свой вклад в развитие компьютеров и программирования
Теперь набор перфораций стал нести в себе не только математические задачи, но и список симптомов у больных.
Стоит сказать ещё одно невероятное крутое устройство придумал в 1832 году российский учёный Семён Корсаков. Без шуток, это была, пожалуй, первая машина для интеллектуального поиска информации.
В основном она использовалась в медицинских учреждениях: пациент вводил информацию о своих симптомах, а машина по ним подбирала вероятное заболевание и список лекарств, необходимых для лечения. Симптомы вводились на перфокарты и поступали в считывающий блок машины.
Перфокарты работают просто, но программистов они сильно ограничивали
Все электронные вычислительные машины работают по бинарному принципу: на глубинном уровне все данные представляют собой набор единиц и нулей. 1 — заряд есть, 0 — заряда нет.
В перфокартах вырез представлял собой единицу. Все программисты тогда, по сути, занимались тем, что вырезали дырочки на картонных листах, и это было намного сложнее, чем писать код сейчас.
Ведь сегодня есть удобные среды для программирования с инспекторами. Если вдруг при компиляции кода случится ошибка, компьютер на неё укажет и предложит вариант исправления. Раньше такого не было.
Одна лишняя перфорация и всё — программа работает совсем иначе. Либо наоборот, где-то перфорации не хватает, и программа тоже будет «крашиться». Позднее программисты придумали компиляторы, которые переводят команды из понятных человеку слов на «язык» компьютера.
Компиляторы упростили работу с кодом
Да-да, так и работает код. Поэтому, кстати, под новые процессоры требуется оптимизировать софт, потому что у всех платформ свои инструкции.
Для более удобной работы с кодом инженеры во всём мире принялись за разработку компиляторов — это специальные алгоритмы для перевода команд, написанных на привычном нам языке, в бинарный код.
Процессоры содержат в себе блоки с числовыми командами, которые отвечают за то, что выполнить. Когда программист принимается за компиляцию написанного им кода, процессор знает, как перевести на понятный ему язык команды, написанный человеком.
Так появился Ассемблер — язык программирования низкого уровня. Низкого, потому что он сочетал в себе элементы привычного человеческого языка и машинного кода. За ним стали развиваться уже языки программирования высокого уровня. В них теперь задействовались только команды, соответствующие нашему привычному человеческому языку.
Языки высокого уровня сделали работу с кодом понятной для всех
Даже в наше время ошибка в коде может привести к плачевным последствиям. Сливы паролей, фотографий и других данных тому пример.
Повышенные требования к компьютерам стали основной причиной, по которой языки ВУ появились. Теперь на ЭВМ создавались сложные вычислительные алгоритмы, которые содержали тысячи строчек кода.
Немудрено, ведь человечество стало запускать ракеты и отправлять людей в космос. Код таких программ в рамках языков программирования низкого уровня был бы слишком сложным для человеческого ума. Найти какие-то ошибки в них было бы невозможно, а их наличие могло бы привести к катастрофическим последствиям.
Языки программирования высокого уровня привели к важному этапу в этой истории. Теперь код стал более понятным, изучать и писать его стало значительно проще.
Компьютеры стали превращаться в устройства для всех.
Благодаря играм появились графические интерфейсы
Недавно попробовал поиграть в ним с компьютером, вообще не представляю, как можно обыграть в этом машину.
Самая первая компьютерная игра появилась в начале 1940-х годов, её создал американский инженер Эдвард Гордон. Однажды за обедом вместе со своими коллегами он обсуждал идею того, что датчики, которые используются в счётчиках Гейгера для калибровки, могут научить компьютер играть. Они решили проверить гипотезу. Скажу заранее — у них всё получилось.
За основу была взята математическая игра «ним», в которой игроки должны брать из кучки неограниченное число предметов за один ход. Проигрывает тот, кто взял последний предмет.
Так появился Nimatron — игровой автомат, весом в тонну, который показали на Всемирной выставке в Нью-Йорке. Он произвёл фурор: на ниматроне было сыграно порядка 100 тыс. партий. Забавно, что 90 тыс. из них выиграла машина.
С этого момента стало ясно, что компьютеры могут не только решать математические задачи, но и развлекать.
Без игр современная техника была бы совсем другой. Правда, компьютерные игры не появиться не могли.
В 1962 году появилась Spacewar! — это первая компьютерная игра в нашем привычном понимании. Она имела двухмерную графику и возможность кооператива для пары участников. Всё, что нужно было делать — это уничтожать космические корабли противника.
Spacewar! создали программисты из Массачусетского технологического университета. Группой руководили Стив Рассел и Мартин Гретц. Игры показали, что компьютеры могут быть понятными многим. Да-да, дело было в графике. Непосредственно сами системы компьютеров того поколения управлялись при помощи ввода команд в терминале.
Карл держит в руках самую первую компьютерную мышь.
Это было дико неудобно. Для игр задействовались манипуляторы — джойстики, с помощью которых пользователи управляли виртуальными объектами. Инженеры переняли некоторые эти принципы при создании элементов человеко-машинного интерфейса.
В 1968 году американский изобретатель Дуглас Карл Энгельбарт представил миру курсор. Он разрабатывался совместно с командой инженеров из Стэнфордского исследовательского института, и эта вещь изменила то, как люди пользуются компьютерами.
В 1972 году в исследовательском центре Xerox PARC началась работа над Xerox Alto — первым компьютером с графическим интерфейсом. Теперь в разработке программного обеспечения появилось понятие «графический интерфейс пользователя» (Graphic user interface).
Разработка программного обеспечения перешла на новую ступень развития. Теперь программисты могли знать, как будет выглядеть софт, и понимать, как пользователи будут с ним взаимодействовать. Более того, существуют среды для визуального программирования.
Apple тоже внесла огромный вклад в развитие компьютеров.
Это способ, в котором создание софта осуществляется при помощи манипулирования графическими объектами. Для проектирования каких-то сложных сервисов они, конечно, не подходят, но для простеньких программ или для ознакомления — в самый раз.
Следом за Xerox Alto в 1980-х вышли Apple Lisa и Macintosh — первые массовые компьютеры с графическим интерфейсом на рынке. Теперь компьютеры научились решать не только научные задачи, но и повседневные.
Интернет — самое масштабное, что было создано с помощью кода
Недавно Тим Бернерс-Ли решил продать исходный код интернета в виде NFT-токена на аукционе. Стартовая цена: $1 тыс.
Самым глобальным продуктом, который появился благодаря программированию, однозначно является интернет. Технологию «Всемирной паутины» придумал Тим Бернерс-Ли и Роберт Кайо.
Официальным днём рождения интернета считается 1989 год, тогда Тим работал в CERN над внутренней сетью организации, в которой сотрудники могли бы обмениваться информацией. Он предложил прокачать изначальную идею и создать глобальный гипертекстовый проект. Все документы находящиеся в его пределах должны были связываться между собой гиперссылками.
NeXTcube был выбран не случайно. Система обладала невероятно удобным софтом для разработки.
Для реализации идеи были буквально с нуля изобретён протокол передачи данных HTTP и язык гипертекстовой разметки HTML. В 1990-м началась работа над созданием первого в мире гипертекстового браузера «WorldWideWeb». Самый первый веб-сервер Бернерс-Ли создал на основе компьютера NeXTcube.
Теперь сеть стала способом передачи информации и других цифровых продуктов, созданных при помощи кода. Наступила эпоха интернет-сервисов.
В итоге все привело к интернет-сервисам и искусственному интеллекту
Сегодня вся наша жизнь сфокусирована в одном устройстве, которое помещается в кармане.
В конце 20-го века компьютеры всё равно были устройствами, к которым люди обращались только в крайней необходимости. Потом появились смартфоны, вычислительная мощность росла, в итоге это привело к тому, что интернетом мы стали пользоваться каждый день часами.
Instagram, YouTube, Netflix, Facebook, признавайтесь, кто где дольше сидит? Влияние программистов и сервисов на нашу жизнь стало огромным. По-сути, круглые сутки мы живём с нескончаемом потоке информации. И теперь те принципы программирования, которые были заложены в прошлом веке, стали определять то, как мы едим, путешествуем, отдыхаем, одеваемся и живём.
Некоторые задачи мы вовсе стали доверять компьютерам, начав развивать нейросети. Благодаря искусственному интеллекту, сегодня мы имеем технологию автопилота, и Tesla тому пример, алгоритмы рекомендаций в музыкальных сервисах и даже такие необычные эксперименты, как нейросеть Зелибоба от «Яндекса».
ИИ может выполнять даже творческую работу: Студия Артемия Лебедева имеет собственную нейросеть, которая называется «Николай Иронов» — она создаёт логотипы и дизайн.
Фишка нейросетей состоит в том, что они могут совершенствовать сами себя. Следующим шагом в истории программирования будет этап, когда искусственный интеллект сможет реплицироваться, придумывать новые алгоритмы и писать код. Кто-то боится, что компьютеры вовсе заменят людей и лишат их большинства профессий. Но я больше склоняюсь к мнению историка Юваля Ной Харари:
Исчезновение многих традиционных профессий в самых разных областях от искусства до здравоохранения, отчасти будет скомпенсировано созданием новых. Семейного врача, который занят в основном диагностикой известных болезней и выпиской знакомых лекарств, вероятно, заменит искусственный интеллект.
Но благодаря этому у нас останется больше денег на врачей и лаборантов, которые проводят революционные исследования, разрабатывают новые лекарства или хирургические процедуры.
Искусственный интеллект будет способствовать созданию новых профессий и другим путем. Вместо того, чтобы соревноваться с искусственным интеллектом, люди могут сосредоточиться на его обслуживании и совершенствовании.
Цитата из книги «21 урок для XXI века», глава: «Новый профессии?»
Вот так одна идея использовать перфокарты в ткацких станках смогла создать будущее.
10 комментариев
Форум →т.е. это изза ткацкого станка за посты сажают? и за это спасибо говорить? )
сломай станок, спаси россию!
@joker2k2, Да! Должен ткать и платить налоги, а непонятно чем заниматься с этим станком)
@joker2k2, мне вот интересно какой трэш должен твориться в голове у человека чтобы к познавательной статье написать такой упоротый комментарий?!!!
Человек, что с тобой не так??? Надеюсь ты всего лишь малолетний дебил и тебя со временем попустит…
@Megalife, называется рофл, как и тупость статьи «если тебе нравится айфон». Надеюсь ты маленький дебил и когда нибудь начнёшь понимать сарказм
КЛАСС! СПАСИБО! Ностальгия
первая прога как раз была в институте на перфокартах
после прогона выходила скатерть с дебаггером кода
одна перфокарта – одна строчка кода и если в ней ошибка, эту перфокарту переворачиваешь и исправляешь от руки. Такие карты сразу видны для оператора развернутыми уголками эти строки они меняли новыми картами
и далее процесс повторялся… Правда тебя в очередь общую ставили на несколько дней…
СУПЕР ПРОСТО!
А причём тут кодировки, языки программирования и айфон?))
П.с. Сказал спасибо станку в начале 2000х, айфонов ещё не изобрели )
Человек трудился , лайк 😜
Очень нравятся такие статьи!) Спасибо большое!
СПАСИБО ТКАЦКИЙ СТАНОК
Статья зачет, спасибо
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Почему при покупке Mac не предоставляется год подписки на Apple TV+
Как в iOS 16 перенести eSIM с одного iPhone на другой
Можно ли использовать Apple Pencil на iPhone?
Что делать, если экран iPhone выключается во время воспроизведения видео
Как управлять Apple TV 4 с iPhone или iPad
Как на iPhone настроить автоудаление СМС с кодами подтверждения операций
Почему iPhone автоматически подключается к Apple TV при воспроизведении видео
Как на iPhone превратить замедленное видео в обычное