EngineerSpock

Про Бейсик, который сделал компьютер персональным

 Бинарный салют, друзья. На связи инженер Спок. 1 мая 2024 года мы будем отмечать 60-летие легендарного языка программирования BASIC.

 

Бинарный салют, друзья. На связи инженер Спок.

1 мая 2024 года мы будем отмечать 60-летие легендарного языка программирования BASIC. Именно благодаря Beginner’s All-purpose Symbolic Instruction Code – универсальному символьному коду инструкций для начинающих – программирование перестало быть уделом ученых и математиков, а персональные компьютеры вошли в каждый дом. Прежде чем понять значимость этого «несерьезного» языка, давайте посмотрим на мир начала 60-х годов прошлого века.

Поехали!

Лайкосы / Подписки / Курсы

Итак, 1960 год. Работают огромные ЭВМ, для размещения каждой требуется огромный машинный зал. Их обслуживают специально обученные операторы в белых халатах, отучившиеся 3-4 года для этого в техникуме. Действующие языки программирования– FORTRAN, ALGOL. На них физики-математики пишут программы для обсчета результатов своих экспериментов и построения графиков с помощью символов клавиатуры телетайпа – звездочек, плюсов, тире и т.д.

Программы размещают на перфокартах. Стопку перфокарт отдают оператору. В лучшем случае на следующий день оператор выдаст результат или распечатку программы с выявленными ошибками. ЭВМ могла выполнять только одну программу за раз, поэтому процесс шёл небыстро. Процесс напоминал игру в шахматы по почте и желающих поучаствовать находилось немного.

В это время в гуманитарном Дартмутском колледже штата Нью-Гэмпшир в США работали 2 математика– Джон Кемени и Томас Курц. Дж Кемени – выпускник престижного Принстона, участник Манхэттенского проекта (по созданию атомной бомбы), помощник Альберта Эйнштейна по математике, почитатель Джона фон Неймана – ключевой фигуры в развитии теории цифрового компьютера. Курц – также выпускник Принстона, известный своими работами в области математики и информатики.

Звезды так сошлись, что в гуманитарном учебном заведении стали работать единомышленники, понимающие необходимость активного вовлечения в программирование и общение с ЭВМ студентов, далеких от математики и информатики.

BASIC: начало большого пути

Кемени и Курц начали с упрощения существующих языков программирования, потому что научить непрограммистов писать безошибочно инструкции FORTRAN II типа ‘ DO 100, I = 1, 10, 2 ‘ было практически невозможно. Или требовало бы многих дней и недель тренировок. Поэтому Кемени и Курц решили создать что-то настолько простое, что почти не требовало запоминания и понимания работы аппаратного обеспечения. «Мы хотели, чтобы синтаксис языка состоял из общеупотребительных слов, и чтобы эти слова имели более или менее очевидное значение», — писал Курц. «Ведь гораздо проще написать HELLO и GOODBYE вместо LOGON и LOGOFF, не правда ли?»

Только вот захотят ли студенты ждать сутками результаты программы, написанной даже на интуитивно понятном языке? Тогда Курц предложил революционную в то время идею разделения времени, позднее названную Дартмутской системой разделения времени, или DTSS – когда одновременно общаться с ЭВМ могли несколько пользователей. И как «вкусное» дополнение DTSS – каждый пользователь, сидящий за терминалом, мог составлять программы, НЕМЕДЛЕННО запускать их и сразу же получать результат, без обращений к операторам ЭВМ.

Исторический момент в Дартмуте 1 мая 1964 года в 4 часа утра на самом деле был двумя историческими моментами. Не одна короткая программа на Бейсике, а три выполнялись одновременно, доказывая, что Бейсик работает и что DTSS способна работать с несколькими пользователями одновременно.

В первой версии BASIC, названной Dartmouth BASIC, было 14 простых команд с понятным синтаксисом:

· PRINT – вывод текста и цифр на телетайп (в дальнейшем, вывод на экраны терминалов);
· LET – для вычисления и присвоения результата переменной: LET C = (A * 2,5) + B;
· DIM –описание массива;
· DATA – набор данных;
· READ – считывание из набора данных;
· IF … THEN – проверка истинности условия;
· FOR … NEXT – организация цикла со счетчиком;
· WHILE…WEND – цикл с условием;
· GOTO – переход к другой пронумерованной строке внутри программы;
· GOSUB –вызов подпрограмм;
· RETURN –возврат в основную программу
· END , который сообщал компьютеру, что программа достигла завершения.

Сравните:

Программа на Fortran:

program hello

print *, “Hello, World!”

end program hello

Программа на BASIC:

10 PRINT “Hello, World!”

20 END

А потом появился INPUT. Без этого оператора, BASIC в основном предназначался для решения математических задач и выполнения простых симуляций; с INPUT можно было создавать игры, которые многие люди стали считать определяющей целью языка ;)).

Впервые пользователь мог заставить сделать ЭВМ что-то интересное или полезное всего несколькими строчками кода, после минимального обучения. И впервые студенты получили максимально открытый доступ к вычислительной машине для своих нужд и без посредников. А ведь это не что иное, как первый шаг к персональному компьютеру!

Ложка дегтя…

Кемени и Курца ждала даже не победа – триумф! К концу 1967 года 2000 студентов колледжа уже смогли написать и отладить свои программы и продолжали работать на ЭВМ в режиме разделения времени даже после окончания курса информатики.

Дартмут предоставил доступ к DTSS по телефонным линиям университетам Восточного побережья, включая Гарвард и Принстон, а также некоторым средним школам. И желающих попробовать себя в роли программиста было огромное количество.
Но не все были довольны тем, что программирование стало доступным для простых смертных. Наиболее красноречивым и громогласным противником BASIC был Эдгар Дейкстра, влиятельный ученый-компьютерщик. «Практически невозможно научить хорошему программированию студентов, ранее знакомых с BASIC. Как потенциальные программисты они психически изуродованы без надежды на восстановление». Справедливости ради он также извергал желчь в сторону FORTRAN («детское расстройство»), PL/1 («смертельная болезнь») а COBOL («уголовное преступление»).

Больше всего возмущала Дейкстру в Бейсике конструкция GOTO для перехода из любого места программы в любое другое место — практика, которая могла привести к беспорядочному«спагетти-коду» – яркому доказательству непрофессионализма программиста. GOTO бесил Дейкстру до того сильно, что он даже отдельный труд посвятил доказательству того, что любая программа может быть написана без использования оператора goto.

Но этот язык и не предназначался для больших и серьезных программ. А для гуманитариев, на которых он и был рассчитан, уже успехом было самостоятельное написание простейших программ, без обращения с этой просьбой к программистам!

Время все расставило по своим местам – миллионы программистов, начавших с изучения этого языка (а в подавляющем большинстве школ он был обязательным), сделали успешную карьеру.

50 оттенков Бейсика

Позволив ученым, не занимающимся информатикой, использовать BASIC, работающий на DTSS, Кемени, Курц и их сотрудники изобрели то, что стало первой реальной формой персональных компьютеров.

Но настоящая революция началась десятилетие спустя, когда компания MITS из Нью-Мексико выпустила микрокомпьютер Altair 8800. В январском номере 1975 года журнала «Popular Electronics» программист Пол Аллен и его друг, второкурсник Гарварда Билл Гетс увидели фото «Альтаира» и поняли, что хотят попытаться заставить Altair работать с бейсиком, языке, который они оба выучили в его первоначальной форме с разделением времени через телетайп в школе Лейксайд в Сиэтле. Так родился Altair BASIC и компания, известная сначала как Micro-Soft.

Есть два ключа к новой компьютерной революции: Во-первых, компьютеры должны быть недорогими, а во-вторых, компьютеры должны быть понятными. С Altair 8800 и Altair BASIC оба этих критерия были выполнены.

В 1977 году свою версию языка предложили компания APPLE (Applesoft Basic – автор Стив Возняк) и компания Commodore – PET 2001 или CommodoreBASIC. В течение следующих нескольких лет почти все микрокомпьютеры любой значимости поставлялись с Microsoft BASIC.

Технические эксперты говорили о приложениях-убийцах — программах настолько полезных, что вы покупали компьютер только для того, чтобы запускать их. Microsoft BASIC был первым таким приложением. На многих ПК он был вшит в ПЗУ и запускался одновременно с запуском компьютера. Многие покупали машину, чтобы научиться программировать.

В отличие от Dartmuth BASIC версия от Microsoft была с интерпретатором. Это упрощало поиск ошибок, что было важно для непрофессиональных программистов.

В 70-80х годах возникло великое множество модификаций Бейсика. Язык раскололся на диалекты, поскольку компании адаптировали его для своих компьютеров, запихивая его в любую доступную память и импровизируя добавляли функции для конкретных машинных реализаций графики и звука. Стандартизация версий отсутствовала, и многие разновидности языка были несовместимыми.

Кемени и Курц были крайне разочарованы тем, что другие сделали с их творением. В 1985 году они опубликовали книгу «Back to BASIC», в которой оплакивали грубость и непоследовательность Microsoft BASIC и других вариантов, доступных для микрокомпьютеров, назвав их «уличными бейсиками».

Выход из центра внимания

Периодом пика интереса к Бейсику считается конец 70-х – первая половина 80-х годов прошлого века. Практически все персональные компьютеры имели собственную версию интерпретатора BASIC, при этом на простейших машинах он даже исполнял роль операционной системы, а на мощных ПК выступал уже в роли интерактивной Бейсик-среды. Майкрософт создал QuickBASIC – интегрированную среду разработки и компилятор для него. Компания Borland, создатель Turbo Pascal, выпустила Turbo Basic. Пояились версии гибридных Бейсиков, в которых оставалась интерпретация, но короткие циклы уже компилировались «на лету». В середине 80-х появились программируемые калькуляторы, основным языком в которых стал Бейсик.

Однако уже начали звучать тревожные звоночки – так, когда Apple выпустила первый Macintosh в 1984 году, в нем не было BASIC, хотя в рамках соглашения с Microsoft была разработана и лицензирована версия языка для этой машины. И дело не в том, что нашли замену Бейсику. Просто стало возможным заниматься на ПК не только программированием. Как раз к середине 80-х годов появились многофункциональные, мощные и удобные приложения, которые были понятны непрограммистам. Выполнение математических вычислений в Lotus 1-2-3 было проще, чем писать программу для таких вычислений на Бейсике. А с обработкой огромных объемов данных лучше справлялась база данных типа dBASE.

Когда Microsoft представила Windows 3.0 в 1990 году, стало ясно, что дни текстовой среды, в которой процветал классический BASIC, сочтены. Однако, Майкрософт продолжала работать над модификацией Бейсика и представила Windows-версию языка для профессиональных разработчиков под названием Visual BASIC, популярность которой была так велика, что впоследствии появился даже Visual Basic .NET под, собственной, платформой .NET.

Вариант Visual Basic for Applications (VBA) до сих актуален и широко применяется в пакете Microsoft Office. Internet Explorer 3.0 и выше, а также Microsoft Outlook содержат интерпретатор VBScript. Эти инструменты помогают автоматизировать многие скучные операции в этих приложениях, а изучить их под силу даже непрофессиональным программистам. В поддержку любителей VBA и VBScript – масса готовых скриптов для решения популярных и экзотических задач.

Кстати, Windows Millenium, выпущенная в 2000 году, была последней операционной системой Microsoft со встроенным QBasic.

Базовый навсегда

Многих по-прежнему интересует вопрос – надо ли начинающему программисту знать Бейсик? Или лучше сразу начинать с языка, обладающего строгой структурой, отсутствием «вредных операторов» и более гибкими инструментами? Сравните 2 программных строки, которые выводят на экран одну и ту же информацию:

BASIC:

10 PRINT «HELLO»

TextWindow.WriteLine(«Hello»)

В первом случае мы видим код на Small Basic от Майкрософт — бесплатная упрощенная версия Visual Basic, предназначенная для детей и начинающих любителей:

Во втором случае нужно или предварять написание этой строки объяснением, что такое метод/объект и т.д., или говорить: «…пишем это, а определять метод и объект научимся позже…». Серьезное препятствие, которое может отпугнуть новичка

И все же, хотя Бейсик был создан исключительно в образовательных целях и хорош для понимания базовых принципов программирования, его время безвозвратно прошло. Если вы начинающий программист и выбираете, какой язык стоит изучать в первую очередь, отдайте предпочтение наиболее востребованным в индустрии и при этом подходящим для начинающих, например, Python или JavaScript. Кстати, Python – это текстовый язык программирования, который хорошо подходит и для детей старше 10 лет. Он прост в изучении, имеет чистый синтаксис и используется во многих областях, включая веб-разработку, data science, и искусственный интеллект.

По итогу можно сказать, что Basic оказал невероятное влияние на историю развития компьютерных технологий и информатики. С момента своего появления в 64 году, он стал путеводной звездой для неопытных программистов, благодаря своей простоте и доступности.

Basic был действительно базовым – он открыл новые горизонты для тех, кто ранее не имел опыта программирования. Это позволило огромному количеству людей впервые познакомиться с возможностями, которые предлагают персональные компьютеры, и понять, как их можно использовать для решения различных задач.

Больше того, Basic стал фундаментомна котором построены многие современные языки программирования. Принципы, введенные в Basic, такие как использование переменных, управление потоком и обработка ошибок, были воплощены в последующих языках и до сих пор играют важную роль в компьютерной науке.

Сегодня, в 2023 году, Basic уже не занимает ту важную позицию в индустрии программирования, которую он имел в свои золотые годы. Он был заменен более эффективными и сложными языками, которые предлагают гораздо более мощные возможности для создания сложных программ.

Несмотря на то, что Basic уже не занимает центральное место в сфере программирования, его историческая роль и влияние на развитие компьютерных технологий и информатики остаются неоспоримыми. Его вклад в обучение программированию и общее развитие отрасли не может быть недооцененным.

Если вы работали с Basic – пишите в комменты о своей истории и впечатлениях от работы с этим старым добрым языком программирования.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *