Не помню, когда и откуда впервые услышал про компьютеры. Скорее всего, это были книги Кира Булычева или Евгения Велтистова. В то время человечество возлагало на компьютеры большие надежды, и множество фантастических романов идеализировало цифровое будущее. В живую же компьютеры мало кто видел, поэтому первое знакомство с программированием началось с карандаша и листа бумаги. Я рисовал алгоритмы, запускал у себя в голове цикл фон Неймана и представлял, как выполняется поставленная программа. Все мои алгоритмы работали идеально и без ошибок.
Затем у меня появился конструктор, обучающий основам построения алгоритмов. Он состоял из панели, множества проводов и переключателей. Аппарат позволял автоматизировать расчёт ответов по анкетам, которые нужно было заранее составить на бумаге. Соединяешь проводами контакты, устанавливаешь переключатели в разные положения и в итоге получаешь сумму. Множество лампочек создавали эффект важной работы.
МК-52
Когда в стране появились первые программируемые калькуляторы, я сразу же стал за ними охотиться. Самый лучший калькулятор МК-52 выпускался в Киеве. Не знаю как, но, не имея доступа к интернету, я узнал, что ближайший магазин, где можно приобрести калькулятор моей мечты, находится в Белоруссии. Стоило это чудо техники 115 рублей – огромная по тем временам сумма. Спасибо родителям: оценив моё рвение, они пообещали съездить в отпуск и привезти вожделенную технику.
В ожидании калькулятора я развлекался с логарифмической линейкой. Конечно, это не программирование, но необходимость продумывать алгоритм вычисления превращала процесс счета в занимательную игру. Я до сих пор благодарен судьбе, что она сохранила для меня логарифмическую линейку и руководство по использованию. Это научило меня прикидывать в голове ответ, прежде чем что-то посчитать. Для принятия управленческих решений часто достаточно знать порядок величины, а точные числа лишь сбивают с толку.
И вот мне привезли калькулятор. Это был выход на новый уровень. Вокруг программирования на МК-52 формировалось какое-никакое сообщество, в журналах публиковали статьи и примеры программ. Будете смеяться, но мне удалось запрограммировать несколько полноценных игр – высадку на Луну, автомобильные гонки и даже зачатки Minecraft (та сюжетная линия, где стреляешь из лука, а калькулятор выдает ответ – попал/не попал).
Калькулятор МК-52
Эффект присутствия захватывал дух, модный нынче Oculus Rift со своим VR не дает и малой доли тех ощущений. Конечно, для полного погружения приходилось выключать свет и запираться в шкафу, что создавало некоторые неудобства, но оно того стоило. Боец МК-52 прослужил мне почти 10 лет, в студенческие годы я считал на нем лабораторные и курсовые.
В том же году родился Марк Цукерберг.
Спектр-001
Затем я услышал про Basic. Не скажу, что он сбил меня с толку, но пришлось вернуться к бумаге и карандашам (вы же помните, что компьютера у меня еще не было?). Это немного расстраивало. Но тут в магазине “Электрон” неожиданно появились бытовые компьютеры “Спектр-001”! Родители снова пошли мне навстречу.
Папе пришлось перепаять наш единственный телевизор в монитор, и передо мной открылся мир будущего. Как я понял немного позже, этот мир был недоступен обычному школьнику. Тем не менее тогда меня это не смущало – приглашение командной строки манило устрашающей силой.
Спектр-001
Из инструментов программиста на этом чуде техники были доступны только машинные коды. К сожалению, в комплекте поставки не было даже ассемблера (или был, но я не знал что это такое, мой детский мозг не был готов воспринимать такие сложности). О какой-либо литературе для начинающих и речи не бы. Пришлось развлекаться поиском счетчиков жизней в играх, что само по себе было очень интересным занятием. А кто не мечтал хоть раз почувствовать себя хакером?
ZX Spectrum
За взломом тетриса незаметно пролетел год и, наконец, случилось одно из главных событий моей виртуальной жизни – я стал счастливым обладателем настоящего персонального компьютера – ZX Spectrum. Несмотря на свои 8 бит и скромный объем оперативной памяти в 48 Кбайт, этот малыш умел больше, чем современные макбуки.
ZX Spectrum
Во-первых, можно было сразу создавать программы на Basic. Никаких танцев с бубном – включил и работай. У него был цветной дисплей! Понятное дело, роль дисплея выполнял все тот же папин телевизор, но в интерфейсе и играх можно было использовать 8 цветов и два значения яркости.
Во-вторых, к компьютеру подключался магнитофон, чтобы сохранять создаваемые программы. Кассетами можно было делиться с друзьями, чем все активно и занимались. Прийти к другу на чай, поставить на запись кассету и под непрерывные завывания двоичного кода вести беседы о цифровом будущем – любимое времяпровождение гиков 80-х.
По программированию процессора ZX-80 литературы хватало, и я наконец погрузился в творческий процесс. Всё свободное время я что-то кодил. Что это были за программы! Гитарная примочка, заставляющая обычную фанерную гитару звучать, будто это Fender (ладно, поймали, тогда я не знал про американские гитары). А еще – возможность оцифровки и записи звука. Про MP3 я также еще не знал и алгоритм оцифровки придумал самостоятельно. Помните про 48 Кбайт? В них удалось записать первые секунд 10 “Smoke on the water”. Современные кодеки отдыхают. Всем известные игры, вроде змейки, тоже надо было закодить.
Супруга играет в Color Lines
А затем мы создали первую в мире, и надо полагать, последнюю сеть на основе компьютеров ZX Spectrum. Больше не надо было бегать с кассетами к друзьям – можно было передать файл по сети! Энтузиасты разворачивали на своих компьютерах станции с модемами. Они назывались BBS или нодами. Дозвонившись на такой модем по телефону, можно было посмотреть список файлов, скачать или загрузить свои, а также пообщаться в чате с оператором.
Тогда же появилась электронная почта. Это было нечто. Просто написать сообщение и нажать на кнопку “Отправить” не представлялось возможным. Сначала готовишь письмо, потом звонишь в ближайшую ноду и передаешь сообщение. Когда получатель также дозвонится до этой ноды, он сможет скачать письмо. Как бы то ни было, схема работала идеально – все сообщения доходили быстро, и никому в голову не приходило портить нам удовольствие отправкой спама. Самым большим прорывом стала интеграция почтового шлюза с сетью FidoNet – появилась возможность переписываться со всем миром и подписываться на новости.
Тем временем прогресс не стоял на месте. Железный занавес постепенно рассыпался – всё больше плодов “загнивающего капитализма” становилось доступно советским гражданам. Пришли и компьютеры IBM PC. С точки зрения программиста это было жуткое и унылое зрелище.
Программировать на таком компьютере вообще не хотелось. Оставалось только рубиться с друзьями в Duke Nukem и читать bash.org. Поэтому перелистнем эту страницу воспоминаний и перейдём к эпохе веб-программирования.
Веб-программирование
Первый выход в интернет состоялся по междугородней связи. Я понятия не имел, что такое интернет, однако, работа над созданием Спектрум-сети давала общие представления и привлекала своими возможностями.
Ещё ни в чем не разобравшись, я понял, что мне нужен сайт, свободно зарегистрировал 4-буквенный домен и начал осваивать html.
Тем временем Марк Цукерберг учился в средней школе.
HTML-верстка была проста и неприхотлива, динамический контент создавался с помощью Cgi Perl. Вам приходилось видеть код программ, написанных на Perl? Их легко узнать – все пишется в одну строку, и большую часть кода занимают не привычные слова, а непонятные символы. Своей магией Perl напоминал мне ассемблер.
Магический Perl
Самой популярной поисковой системой того времени был справочник “Желтые страницы”. Да, это был бумажный справочник, который продавался в магазине. В нем можно было найти по алфавиту или тематике нужный продукт. Единственное отличие от обычного справочника в том, что в “Желтых страницах” приводились не почтовые адреса и телефоны, а ссылка на сайт. Круто, правда?
К чему это я
Не каждому суждено стать Марком Цукербергом. Не получилось и у меня. Кто-то создает новые продукты, чтобы перевернуть мир, а кто-то получает удовольствие, собирая с ребенком робота на базе Arduino.
Едва ли не каждый день появляются классные технологии, увлекающие смелых гениев своими возможностями, и многие начинающие программисты озабочены выбором языка программирования, фреймворка, стека. Также, как и я в свое время, ищут, пробуют и меняют инструменты.
Позже я узнал, что Цукерберг учился психологии, а не программированию. И я задумался: так ли важен инструмент, на котором ты создаешь свой продукт? Тогда я понял – он выбирал цель, а не средства.
Кто готов идти дальше и менять мир к лучшему? Придумывайте хорошие идеи, а инструменты найдутся.
Автор – Антон Соколов, основатель и технический директор Деасофт
Источник