Несмотря на то, что в Интернете существует множество бесплатных языков и инструментов разработки, для тех, кто хочет начать работать программистом, барьер для входа гораздо выше, чем почти 30 лет назад. У меня приятные воспоминания о компьютерных технологиях 80-х, поэтому я решил быстро отправиться в путешествие по памяти и написать о своем личном опыте работы программистом. Он также может представлять интерес для тех, кто знаком только с версией истории вычислительной техники в Силиконовой долине, поскольку она охватывает события с другой стороны пруда в Великобритании. Когда историки говорят об истории вычислительной техники, они на самом деле охватывают только такие вещи, как TRS80, Altair и появление ПК и Mac, однако в Европе было много важных и конкурентоспособных разработок, которые часто не включаются в эту историю.
Восстание домашнего компьютера
Еще в 80-х годах вы могли включить компьютер, подождать 5 секунд, написать две строки кода, и у вас была программа, которую вы могли бы выполнить, просто набрав команду run и нажав Enter. Тогда компьютеры продавались в магазинах, таких как бытовая техника, и каждый раз, когда вы приходили в компьютерный отдел, вы, скорее всего, видели следующие строки кода, бесконечно отображающие их сообщение:
10 Print "Hello World!" 20 Goto 10
Концепция домашнего компьютера подразумевала доступный компьютер, который можно было бы использовать для игр, использования программного обеспечения или написания программ по сравнению с большим аппаратным обеспечением, используемым профессионально. Технически их можно использовать для задач, связанных с бизнесом, но поскольку все они были сохранены в аудиокассетах , это был не самый надежный механизм хранения и не тот, на котором вы хотите рисковать финансами семейного бизнеса. Флоппи-диски (да, флоппи- диски, а не жесткие диски) были примерно доступны в то время для внутреннего рынка, но еще не стали доступны в течение нескольких лет.
Именно эти компьютеры впервые открыли для публики мир компьютерных технологий и превратили случайных любителей в настоящих программистов на десятилетия вперед.
Первый контакт
Мой первый опыт работы с компьютером был в доме одного из моих друзей-братьев, когда мне было около 9 лет. Я помню, как ходил туда с моим братом и в задней комнате, там был черно-белый телевизор, подключенный к Sinclair ZX81 , Этот маленький черный ящик, который был теплым, как тостер, имел 1 килобайт или 1024 байта памяти, и все же вы все еще могли втиснуть в него полные игры, которые вам понадобилось бы 5 минут для загрузки с магнитофона, если вам повезет. Получение нужной громкости на магнитофоне было сложно и иногда варьировалось в зависимости от игры, поэтому вы могли подождать 4 минуты, а затем произойдет сбой, и вам придется начинать все сначала.
Я помню, как играл в какую-то трехмерную игру-лабиринт, где целью было найти выход из лабиринта, не будучи убитым каким-либо существом, населявшим его. Это должно было быть довольно типичным в те дни, так как темы во многих играх включали либо фантазию, либо инопланетные элементы. Казалось, Средиземье и ролевые игры в целом шли рука об руку с детской компьютерной культурой. В 1982 году Мельбурн Хаус выпустит The Hobbit в виде текстовой приключенческой видеоигры. Спустя годы они также выпустят « Войну в Средиземье» .
Хотя ZX81 не хватало и реальной мощности, он имел определенную привлекательность, и было легко представить, что можно с ним сделать. Мой друг только начал учиться программировать, но было все равно впечатляюще видеть этот звуковой сигнал и отображать изображения на телевизоре в ответ на ввод инструкций. Руководство для ZX81 содержало обширное руководство по программированию на языке BASIC, написанное Стивом Викерсом, и в то время его реклама в значительной степени отразилась на концепции обучения программированию. Как для покупателей, так и для продавцов, программирование определенно было одним из главных преимуществ первых компьютеров.
Я помню, как получил наш первый Commodore 64 на Рождество один год и играл на нем Ховвера Боввера и Космический Конвой . Кейсы для игр всегда были украшены великолепно нарисованными рисунками, которые в игре были переведены в 4-цветный спрайт низкого разрешения.
Домашние вычисления значительно упростили процесс обучения программированию, так как вы просто включили его и оказались в IDE того времени. Вы можете использовать простой BASIC, чтобы почувствовать программирование, изучить основные понятия, такие как переменные, управление потоком и структуры. У BASIC было множество ограничений, но оттуда вы могли перейти к ассемблеру, который действительно походил на переход от детского пула к плаванию на английском канале. На самом деле не было никакого другого языка высокого уровня, как C, для внутреннего рынка, только BASIC или Assembly.
Полный список программ появился во многих компьютерных журналах и книгах, которые вы могли печатать построчно. Кажется сумасшедшим представлять себе идею набирать на странице, наполовину наполненной бейсик-кодом из книги, просто так, чтобы вы могли играть в простую игру или играть на однотонной музыкальной клавиатуре. Журналы часто содержали статьи по программированию на ассемблере, а игровые журналы — интервью с разработчиками игр, в которых обсуждались вопросы программирования или ассемблера. Для ребенка, увлекающегося играми и программированием, это было похоже на понимание мозга Джоша Блоха по кодированию на Java сегодня. Загружать,эти программисты игры были почти как рок-звезды того дня, когда ребенок в своей спальне может потратить несколько недель на написание кода для игры, которая будет продавать сотни тысяч копий и получать по пару долларов в виде лицензионных отчислений от каждого. , Были истории о том, что 17-летние люди владели дорогими автомобилями, прежде чем они могли даже ездить. Это действительно был период расцвета для независимого программиста игр по сравнению с сегодняшним днем, когда игры — это бюджетные дела, для написания которых требуется поддержка крупного издателя. Каждый раз, когда вы включали компьютер, вы испытывали волнение, когда вы шли по тем же цифровым стопам, что и эти люди, и у вас был такой же потенциал, чтобы сделать что-то фантастическое.Это действительно был период расцвета для независимого программиста игр по сравнению с сегодняшним днем, когда игры — это бюджетные дела, для написания которых требуется поддержка крупного издателя. Каждый раз, когда вы включали компьютер, вы испытывали волнение, когда вы шли по тем же цифровым стопам, что и эти люди, и у вас был такой же потенциал, чтобы сделать что-то фантастическое.Это действительно был период расцвета для независимого программиста игр по сравнению с сегодняшним днем, когда игры — это бюджетные дела, для написания которых требуется поддержка крупного издателя. Каждый раз, когда вы включали компьютер, вы испытывали волнение, когда вы шли по тем же цифровым стопам, что и эти люди, и у вас был такой же потенциал, чтобы сделать что-то фантастическое.
Amstrad CPC6128
Так что я был специалистом по языку ассемблера на Commodore 64 до тех пор, пока не перешел на Amstrad CPC 6128. В комплекте со встроенным дисководом гибких дисков я действительно смог приступить к сборке. Один год, снова на Рождество, я получил Maxam, ассемблер / дизассемблер Z80 для CPC6128. Вы можете прочитать несколько отзывов о продукте здесь .
С Maxam я действительно начал изучать радость и боль от языка ассемблера. Одной из проблем в то время было то, что нехватка доступной памяти. 6128 имеет 128 КБ памяти, это 128 килобайт . Это примерно 131 072 байта, этого достаточно, чтобы удерживать в памяти только треть Библии. Сегодня 4-гигабитные машины имеют в 32000 раз больше памяти, и все же в то время нам приходилось хранить в памяти как ассемблер / отладчик, так и исполняемую программу. В то время одним из типичных решений было поместить компилятор / ассемблер / отладчик в картридж ПЗУ, чтобы он не занимал много внутренней памяти. У CPC128 был процессор Z80, который мог получить доступ только к 64 КБ памяти в то время, и поскольку у 6128 было 128 КБ памяти, он получал бы доступ к памяти только по 64 КБ блоков через механизм, называемый переключением банков,
Войдите в Амигу
В конце 80-х вышел коммодор Амига, и мой брат, который тогда был на флоте и зарабатывал деньги, был достаточно любезен, чтобы купить его и оставлять его каждую неделю, когда он возвращался на юг в Портсмут, где он базировался. Было доступно несколько языков, большинство из которых вам пришлось заплатить ( например, AMOS ). Существовали коммерческие (и, возможно, некоторые условно-бесплатные) версии компиляторов C / C ++, а также AmigaBasic, которая была интерпретирована и написана Microsoft (я думаю, что она также написала Basic для C64). Насколько я помню, был компилятор AmigaBasic, который был довольно ограничен, но если вы интересовались играми или демонстрациями, программирование на сборке Motorola 68000 было королем, и лучшим инструментом для этого был Devpac от HiSoft Systems.который был полным ассемблером 68K, дизассемблером и редактором, написанным на 68K. У меня все еще есть моя копия Devpac 2 в первозданном виде в коробке, а также мое обновление памяти на 4 мг для моей Amiga 1200, которая в то время стоила около 500 долларов.
Хотя Amiga стала шагом вперед с точки зрения игровой платформы, она также стала одним из первых шагов, позволивших вывести программирование из рук пользователя домашнего компьютера, поскольку у него не было сразу доступных инструментов программирования. Хотя на тот момент, если вы владели Amiga, есть вероятность, что вы уже интересовались программированием и искали бы ресурсы для программирования. 10-летние программисты на Commodore 64 выросли до подростков, программирующих на Amiga. Хотя AmigaBasic все еще был доступен на машинах, разработчики уже вышли за пределы этого и больше не интересовались такими слабыми средами программирования. Однако дети, плохо знакомые с вычислениями на Amiga, с меньшей вероятностью проявили интерес к программе, теперь был небольшой барьер, несмотря на сильное сообщество программистов, окружающее Amiga.
Так как это было до появления Интернета, было только два способа доступа к ресурсам программирования, которые считались бы бесплатными и открытыми по современным стандартам (тогда называемыми Public Domain), и это было либо в системах BBS, либо в списках рассылки. Будучи подростком в Великобритании в конце 1980-х и начале 1990-х годов, у меня было очень мало шансов получить возможность подключить свой компьютер к телефону, поэтому у меня очень мало опыта работы с системами BBS. Вместо этого было много дисковых журналови списки рассылки, которые вы можете использовать, чтобы найти материалы, которые вас интересуют. Люди могут получить демонстрации или журналы на 68K, Basic, AMOS, графическое программирование, вы называете это. Вам просто нужно было заполнить форму заказа, подписать чек, отправить его и подождать пару недель. Это было в дни, предшествующие дебетовым картам по телефону или Интернету, и большинство из них происходило из небольших операций, копирование дисков или сборка самих журналов. Теперь вы знаете, как нам удавалось жить с этими модемами со скоростью 14,4 бода, когда они вышли, по сравнению с текущими мегабитными каналами, потому что подключение к сети в считанные минуты или часы было все же предпочтительнее, чем недельное ожидание почты.Я даже написал пару статей о медных списках Amiga для дискового журнала, которые были опубликованы после того, как я отправил его в журнал на гибком диске с запиской вокруг него, которую держал резинкой. Очень высокие технологии.
Другим уважаемым источником информации было Справочное руководство по оборудованию Amiga . Amiga содержала набор пользовательских чипов, каждый со своим именем, а справочное руководство по аппаратному обеспечению содержало всю информацию, необходимую для программирования этих чипов. Это происходит еще до появления DirectX и других видов мультимедийных API, когда программирование графики включало переход непосредственно к оборудованию, также известному как «удар по оборудованию».
Конечно, после того, как я перешел на Amiga 1200 с расширенным графическим чипсетом ECS, мне потребовалась новая копия справочного руководства и я должен был разобраться с несовместимостью между старыми 500 и 1200. В этот момент вы начинаете ценить цель API, которые были у Amiga, но в то время все использовали аппаратное обеспечение напрямую. Опять же, у меня также есть исходное руководство по аппаратному обеспечению в первозданном виде.
В то время, когда я учился в университете, я написал одно из немногих более серьезных приложений, которое было разработчиком логических схем, с помощью которого можно было переходить и разрабатывать логические схемы. Написанный на 68K ассемблере, он даже имел компоненты, так что вы могли создавать логические блоки и использовать их повторно, и в целом это был огромный опыт обучения.
Вознесение ПК
Было четкое разделение между ПК и Amiga в зависимости от того, нужен ли вам компьютер для игр или бизнеса. Это разделение было разорвано, когда ПК начал использовать VGA-графику с 256 цветовыми вариантами на экране. Внезапно ПК стал жизнеспособной игровой платформой, в которой в начале 90-х были выпущены классические игры, такие как X-Wing , Doom и 7th Guest. Тем временем Commodore запустил Amiga CD32, закрепив ее роль игровой платформы. В результате люди переходили от Amiga к ПК в качестве платформы для игр и бизнеса. ПК поставлялся с Microsoft BASIC, но он был просто установлен как отдельное приложение, и вы, как ожидали, уже знали, как его использовать, если вы действительно запускали его, и не было подробного руководства по BASIC как части вашей покупки.
Если вы хотите программировать на C, C ++ или Pascal, а также на ряде других языков, вам уже был доступен ряд бесплатных и коммерческих альтернатив, и Borland начал делать себе имя. Жесткие диски были обычным явлением, в отличие от инвестиций в 300 долларов, которые я заплатил за жесткий диск на 20 Мг для своей Amiga 1200 (память на 6 Мегабайт плюс жесткий диск на 20 Мег, означал, что моя Amiga 1200 была электростанцией).
Разработчики отошли от языка ассемблера теперь, когда языки высокого уровня были гораздо более доступны для большинства и работали достаточно хорошо, чтобы разработчикам не нужно было выжимать каждую унцию производительности. Игры часто были написаны на C, но, как только были обнаружены узкие места, нередки случаи, когда некоторые разделы кода перестраивались для ускорения на ассемблере. В конце концов, я даже добавил одну сборку 8086 в одно из моих приложений Delphi.
Как только компьютер был установлен, и мы все страдали вместе с Windows 3.1, остальное уже история. Компьютеры появлялись на рабочем столе каждого офисного стола и больше не были игрой для гиков. Люди искали бизнес-приложения для Windows. Visual Basic впервые появился в 1991 году, а Borland Delphi — в 1995 году. Эти два коммерческих предложения были примерами цены, которую нужно было заплатить, чтобы попасть в коммерческое программирование. Visual Basic сделал написание приложений для Windows действительно простым, и Borland Delphi довел эту концепцию до 11. Это было действительно передовой линией разработки программного обеспечения в конце 90-х, настолько, что Borland подала в суд на Microsoftза отправку лимузинов в штаб-квартиру Borlands для приема на работу, пока они обсуждают свое будущее, работая в Microsoft. Главным архитектором Delphi, возможно, не было связано с этим, и он стал главным архитектором C #. Visual C ++ для Windows-программирования в то время казался просто одним запутанным процессом, через который люди, казалось, боролись, ненавидя каждую его минуту.
Восстание Сети
Я сделаю этот раздел коротким, поскольку у вас в основном есть собственный опыт развития Интернета в начале 2000-х годов. Когда появился Интернет, он был медленным, и существующие игроки пытались втиснуть его в свои существующие предложения по разработке, обычно с небольшим успехом. Во многих отношениях это был огромный шаг назад, поскольку мы перешли от разработки многофункциональных приложений для настольных компьютеров к программированию простых пользовательских интерфейсов без сохранения состояния в Интернете. Когда мы выясняем, как использовать всплывающее или раскрывающееся меню, появляется Интернет, и теперь нам нужно начинать все заново, чтобы у каждого человека была своя реализация. Толстые клиентские приложения дали функциональное богатство, которое сегодня не может быть так легко сопоставимо, когда веб-страница вашего приложения имеет постоянство The Silence., (Пришельцы от Доктора Кто, о которых вы забудете, как только они исчезнут из поля зрения).
Так что у нас это
В 80-х годах программирование было чем-то, что вас интересовало или не интересовало, и если вы были хороши и работали над этим, вы были рады узнать, что вы можете зарабатывать на этом. ZX81, Commodore 64, а затем Spectrum 48K — все это породило культуру компьютерных технологий в Великобритании, которая, казалось, как-то хорошо сочеталась с отвратительным британским увлечением, запертым в наших домах, зациклившимся на освоении этих подлых маленьких коробочек.
Я верю, что хорошие программисты рождаются и не рождаются, а наличие языка программирования сразу стало доступным, и естественным программистам было намного легче найти путь к программированию. Сегодня кажется, что многие люди предпочитают работать в программном обеспечении, а затем начинают учиться программировать. Многим программистам, с которыми я сталкиваюсь, кажется, не хватает страсти и любопытства к программированию, которое было распространено при рождении рынка домашних компьютеров. В то время я лично не знал программиста, который не ел, не жил, не дышал и не читал все, что мог об этом, тогда как сейчас я не работал ни с кем, кто это делает (хорошо, может быть, 1 человек).
Владение компьютером изменилось с некогда нишевого рынка вундеркиндов и геймеров, чье собственное участие в индустрии помогло бы его расширить и сформировать, на компьютер для масс на каждом столе и десктопе, где новички в сообществе программистов остаются на своих собственных устройствах. против постоянно растущих сложностей разработки программного обеспечения.