Что произошло
1 мая 1964 года, в четыре часа утра, в подвале математического факультета Дартмутского колледжа (Dartmouth College, штат Нью-Гэмпшир) два студента одновременно набрали команды на двух терминалах, подключённых к компьютеру General Electric GE-225. Программы были простейшими — несколько строк, вычислявших суммы. Обе отработали. Это были первые программы, выполненные на языке BASIC — Beginner’s All-purpose Symbolic Instruction Code, «универсальный символический код инструкций для начинающих».
За этим ночным экспериментом стояли два человека: Джон Кемени и Томас Курц, математики и профессора Дартмута. Их идея была радикально простой — и именно в этой простоте состояла революция.
В 1964 году компьютеры были дорогими, огромными и недоступными. Программирование было ремеслом, требовавшим специальной подготовки. Языки программирования — Fortran, ALGOL, COBOL — создавались для математиков, инженеров и бизнес-аналитиков. Чтобы написать программу, нужно было выучить десятки команд, понять концепции подпрограмм, массивов, циклов с предусловием. Программу набивали на перфокартах, сдавали оператору, ждали очереди на вычислительном центре — и через несколько часов (а иногда дней) получали результат. Если в программе была ошибка — а ошибка была почти всегда — цикл повторялся.
Кемени и Курц задали вопрос, который мало кто тогда задавал: а почему студент-историк не может программировать?
Дартмут — это колледж свободных искусств (liberal arts college). Его студенты — будущие юристы, журналисты, филологи, экономисты. Кемени и Курц считали, что компьютер должен быть таким же инструментом образования, как библиотека или лаборатория — доступным всем, а не только избранным. В 1962 году они начали проект, состоявший из двух частей: новый язык программирования и новый способ доступа к компьютеру.
Язык должен был быть понятным без подготовки. Команды — на английском. PRINT — напечатай. INPUT — введи. IF…THEN — если…то. LET — пусть. GOTO — перейди к. END — конец. Никаких точек с запятой, никаких фигурных скобок, никаких объявлений типов. Каждая строка начинается с номера — 10, 20, 30 — что даёт ощущение порядка и позволяет легко вставлять новые строки между существующими.
Способ доступа был не менее революционным. Кемени и Курц внедрили систему разделения времени (time-sharing): один компьютер GE-225, двадцать терминалов, установленных в разных зданиях кампуса. Каждый студент мог подойти к терминалу, набрать программу, запустить её и тут же увидеть результат. Не перфокарты, не очередь, не оператор-посредник. Прямой диалог человека с машиной. Набрал команду — получил ответ. Ошибся — исправил и запустил снова. Мгновенная обратная связь.
Это было невиданно. В 1964 году подавляющее большинство компьютеров в мире работали в пакетном режиме (batch processing): программист формировал задание, сдавал его, ждал. Интерактивная работа — роскошь, доступная единицам. Кемени и Курц сделали её доступной студентам гуманитарных факультетов.
Контекст эпохи
Кемени был не просто математиком. Венгерский эмигрант, бежавший от нацизма ребёнком, он в 1945 году, будучи студентом Принстона, работал вычислителем в Манхэттенском проекте — рассчитывал параметры ядерных реакций. Его научным руководителем был Джон фон Нейман — человек, определивший архитектуру современных компьютеров. После войны Кемени получил докторскую степень под руководством Алонзо Чёрча (одного из создателей теоретической информатики) и перешёл в Дартмут.
Курц — американец из Иллинойса, получивший PhD в Принстоне по численным методам. Спокойный, методичный, технически блестящий. Если Кемени был визионером, то Курц — инженером, превращавшим видение в работающий код.
Вместе они составляли идеальный тандем: Кемени видел будущее, в котором каждый студент умеет программировать; Курц знал, как это будущее построить.
К 1964 году идея компьютерной грамотности витала в воздухе. Компьютеры стремительно дешевели — не до уровня персональных, но до уровня, когда университеты могли позволить себе собственные машины. Возникал вопрос: кто будет ими пользоваться? Только физики и математики? Или все? Кемени и Курц выбрали ответ «все» — и создали инструмент для этого.
Дартмутский проект был амбициозным и по-своему утопическим. К 1968 году 80% первокурсников Дартмута прошли курс программирования на BASIC. Историки анализировали демографические данные. Социологи обсчитывали опросы. Филологи индексировали тексты. Компьютер перестал быть чёрным ящиком для избранных — он стал инструментом мышления для всех.
Но настоящая слава BASIC пришла через десять лет — с персональными компьютерами.
В 1975 году двое молодых программистов из Альбукерке — Билл Гейтс и Пол Аллен — написали интерпретатор BASIC для Altair 8800, первого коммерческого персонального компьютера. Это был их первый продукт, и из него выросла компания Microsoft. Altair BASIC помещался в 4 килобайта памяти и умел немного — но он превращал набор микросхем в нечто, с чем можно было разговаривать.
Дальше — лавина. Apple II (1977) включался и сразу показывал приглашение BASIC (Applesoft BASIC, написанный Microsoft). Commodore PET (1977), TRS-80 (1977), ZX Spectrum (1982), Commodore 64 (1982), MSX (1983), БК-0010 (1985, советский домашний компьютер) — десятки машин, миллионы экземпляров, и на каждом — BASIC. Компьютер включался — и приглашал писать программу. Не запускать программу, написанную кем-то другим, — а писать свою.
10 PRINT “HELLO” 20 GOTO 10
Самая знаменитая программа в истории. Две строки, бесконечный цикл. Компьютер печатает HELLO, HELLO, HELLO — пока не выключишь. Миллионы детей по всему миру начинали с этих двух строк. Они меняли “HELLO” на своё имя. Добавляли цвета. Рисовали узоры. Писали игры. Учились думать алгоритмически — не потому, что их заставляли, а потому, что это было увлекательно.
Значение для UX
BASIC — это не история языка программирования. Это история демократизации технологии. И в этом смысле BASIC — один из самых значимых эпизодов в предыстории UX.
Принцип «технология для не-технарей». Кемени и Курц сделали осознанный выбор: упростить язык ценой его мощности. BASIC не подходил для системного программирования. Профессиональные программисты его презирали — Эдсгер Дейкстра, один из столпов computer science, написал знаменитую фразу: «Студентов, ранее изучавших BASIC, практически невозможно обучить хорошему программированию». Но Кемени и Курц проектировали не для программистов. Они проектировали для всех остальных. Это принципиально UX-подход: кто ваш пользователь? Не эксперт, а новичок. Не тот, кто знает, а тот, кто хочет узнать.
Мгновенная обратная связь. Time-sharing, внедрённый в Дартмуте, сделал главное: убрал задержку между действием и результатом. Набрал команду — увидел ответ. Ошибся — сразу понял, что ошибся. Исправил — сразу увидел, что исправил. Это фундаментальный принцип проектирования интерфейсов: немедленная обратная связь снижает когнитивную нагрузку и ускоряет обучение. Эвристики Нильсена включают «видимость состояния системы» как первый пункт — и это ровно то, что обеспечивал интерактивный режим BASIC.
Низкий порог входа. BASIC можно было начать использовать без обучения. 10 PRINT “HELLO” — набери и увидишь. Постепенное усложнение: сначала PRINT, потом INPUT, потом IF…THEN, потом циклы, потом массивы. Каждый шаг — маленький и понятный. Это паттерн progressive disclosure, которому UX-дизайнеры следуют и сегодня: не показывай всё сразу, дай освоить базовое — и открывай новые возможности по мере роста уверенности.
Low-code и no-code — наследники BASIC. Идея Кемени и Курца — дать непрограммистам возможность создавать — не умерла с закатом BASIC. Она перевоплотилась. Электронные таблицы (VisiCalc, Lotus 1-2-3, Excel) — это программирование для бухгалтеров: формулы, ссылки, функции. Конструкторы сайтов (Wix, Tilda, Squarespace) — это программирование для маркетологов. Автоматизации (Zapier, IFTTT) — это программирование для менеджеров. Визуальные языки (Scratch от MIT) — это программирование для детей. Все они стоят на том же фундаменте: человек без технической подготовки должен мочь создавать.
Человекоцентричный дизайн начинается с вопроса: для кого мы это делаем? Кемени и Курц ответили на этот вопрос в 1964 году: для студента-историка, который никогда не слышал слова «алгоритм», но хочет обработать данные переписи населения. Для домохозяйки, которая включает Commodore 64 и пишет программу для домашнего бюджета. Для ребёнка, который набирает 10 PRINT “HELLO” и впервые в жизни чувствует, что компьютер его послушался.
Эдсгер Дейкстра был прав: BASIC не учил хорошему программированию. Но он учил кое-чему более важному: компьютер — это не страшно. Из этого ощущения выросло поколение, создавшее персональный компьютер, интернет и мобильные приложения. Билл Гейтс начал с BASIC. Стив Возняк предустановил BASIC на Apple II. Линус Торвальдс писал на BASIC свои первые программы на Commodore VIC-20. BASIC не сделал из них профессиональных программистов — он сделал из них людей, которые не боятся технологий.
Связанные статьи
BASIC связан с ключевыми концепциями UX:
- Что такое User Experience — BASIC создал один из первых массовых позитивных опытов взаимодействия человека с компьютером: включил, набрал команду, получил результат. Это определение хорошего UX в его простейшей форме.
- Что такое юзабилити — BASIC был спроектирован для максимальной обучаемости (learnability): один из пяти атрибутов юзабилити по Нильсену. Человек мог начать программировать без инструкции.
- Эвристики Нильсена — «Видимость состояния системы» (обратная связь), «Соответствие между системой и реальным миром» (английские слова вместо символов), «Помощь в распознавании ошибок» (понятные сообщения об ошибках) — BASIC интуитивно следовал этим принципам за двадцать шесть лет до того, как Нильсен их сформулировал.
- Человекоцентричный дизайн — HCD начинается с вопроса «для кого?». Кемени и Курц ответили: для каждого студента, независимо от специальности. Это HCD в чистом виде.
- Закон Миллера — BASIC сознательно ограничивал количество концепций, которые нужно удерживать в голове: немногочисленные команды, простой синтаксис, линейная структура — всё в пределах когнитивных возможностей новичка.