Что такое компьютер?
Транскрипт урока
Это Тота.
Тота — пещерный человек.

Однажды он шёл по лесу и неожиданно перед ним из ниоткуда возник большой, шумный сферический объект, поблескивая и мерцая.

"Прямо как в Терминаторе", — сказал бы Тота, если бы видел фильм Терминатор.

Объект быстро исчез, оставив на траве чёрный дымящийся ящик.

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

Это была тяжёлая коробка с двумя кнопками сбоку, на одной из кнопок было написано Х, на другой О. Наверху была щель, а сбоку торчал рычаг. Как настоящий пещерный человек, Тота пытался щупать её, пинать, нюхать и валять по земле. Ящик определённо не был живым, но кнопки интриговали его.

Тота обнаружил интересное свойство: если нажать Х и О последовательно, а потом опустить рычаг, то на короткое время вначале загорится кнопка О, а потом Х.

Я вам говорил, что Тота был невероятно умным? Самым умным в своей пещере.

Он решил нажать кнопки в том порядке, в котором они загорались, а потом снова опустить рычаг.

Теперь отклик был другой — кнопки загорелись по новой схеме. Когда Тота ввел в коробку последнюю схему, ящик издал звук и изверг молнию, безумно напугал Тоту и поджёг стоящие впереди деревья.

Теперь у Тоты было что-то подобное оружию. Он убил им много животных и часто наслаждался горячей пищей, сидя у костра.

Вскоре он открыл другие схемы: одна из них производила ненавистный Тоте звук, после другой выплевывался лист с какими-то пометками, а некоторые комбинации вообще ни к чему не приводили.

Однажды Тота обнаружил ещё более продвинутую особенность этого прибора. Он хотел снова сделать костёр, но вместо того, чтобы просто нажать на рычаг один раз, он нажал и подержал его. После того, как он отпустил его несколько моментов спустя, пламени не возникло, но и Х и О стали мигать. Он отчаянно нажал О и мигание прекратилось. С того момента нажатия О и опускания рычага было достаточно, чтобы произвести огонь, намного проще и быстрее, чем раньше!

Он понял, что натренировал этого зверя, точно так же, как однажды натренировал волчонка.

Так что это за штука?

Конечно, Тота называет её Бум-вум, но мы можем придумать что-то получше. Изначально можно подумать, что это какое-то чрезмерно усложнённое оружие. Но оно производит и другие странные вещи, вроде музыки... и даже печати. Оно не похоже на бытовой прибор, хотя, некоторые стиральные машины намного сложнее в эксплуатации.

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

Хорошо, как тогда мы назовём эту машину? Пониматель языка кода? "Понимать" звучит важно, но основная задача машины не в том, чтобы понимать, а в том, чтобы выдавать какой-то результат. Она понимает код - "огненная вспышка" и немедленно эту вспышку создаёт. Поэтому, можно назвать её... выполнитель языка кода? Она выполняет некоторые действия.

Тот, кто послал эту штуку из будущего в каменный век, возможно называл её иначе, но мы, определённо, называем эту машину компьютером. Именно такие машины принимают код и выполняют какие-то действия.

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

const factorial = (n) => {
  const iter = (current, acc) => {
    if (current === 0) {
      return acc;
    }
    return iter(current - 1, acc * current);
  };

  return iter(n, 1);
}
Кстати, в конце курса, вы сможете писать и понимать подобный код с лёгкостью.

Да, современные компьютеры отличаются от тех, что были раньше. Но... не слишком. Мы еще не исследовали эту машину досконально, но, поверьте — по сути они одинаковы. Так же как это... сильно отличается от этого... оба объекта работают по одинаковому принципу и выполняют одинаковую функцию, в разной степени.

Продолжая рассматривать эту странную машину, мы можем понять кое-что важное в компьютерах в целом:

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

И второе: компьютеры по-настоящему тупы.

Возможно, вы подумаете, что последнее высказывание касается этого конкретного компьютера, странного и маломощного, но я говорю о компьютерах вообще. Они очень мощные, но одновременно тупые. Не сомневайтесь — всё, что они делают, это выполняют действия, которые мы им задаём. Никакой магии. Но, безусловно, для Тоты — это магия, так же как современные устройства кажутся нам магическими, если только мы не изучим программирование. К счастью, именно этим мы и собираемся заняться в этом курсе.
Выводы
  • Компьютер принимает код и выполняет действия
  • Компьютер понимает определённый язык кодов:
  • Некоторые коды работают
  • Некоторые коды не работают
  • В коде жёсткие правила
  • Компьютеры по существу не такие умные, как люди, они только выполняют наши указания. А указания для компьютеров выражаются в виде кода.
  • Все компьютеры фундаментально одинаковы. Примитивный, старый, маломощный компьютер и современный ноутбук используют одинаковые принципы и способны на одинаковые операции, в разной степени.
Дополнительные материалы