Чем отличаются две среды
Главное отличие при сравнении — способ записи: в Scratch программу собирают из готовых блоков мышкой, в Python набирают текстом на клавиатуре. Алгоритмические идеи при этом одинаковые: последовательность, цикл, условие, переменная, событие.
Scratch создан группой Lifelong Kindergarten в MIT Media Lab как среда, где ребёнок рассказывает истории и делает игры[1]. Сцена, спрайты, звуки и костюмы встроены сразу: перетащил блок — кот пошёл. Python — универсальный язык общего назначения, его первую публичную версию выпустил Гвидо ван Россум в 1991 году. Сегодня языком управляет Python Software Foundation, а официальная документация Python начинается с учебника для новичков[4]. Он используется в школьной информатике, науке, анализе данных и веб-разработке, а встроенный модуль turtle позволяет рисовать так же наглядно, как в блоках.
При сравнении удобно держать в голове простую мысль: блоки не учат «игрушечному» программированию. В обеих средах ребёнок учится одному и тому же — описывать алгоритм. Различаются порог входа, тип проектов и то, где знания пригодятся дальше. Поэтому вопрос «Scratch или Python» честнее заменить вопросом о порядке: какой блок навыков ребёнок осваивает первым, а какой — вторым.
Сравнение по пяти параметрам
Сравнение удобнее всего вести по 5 параметрам: возраст, порог входа, ошибки, тип проектов и польза для школы. Таблица показывает, где сильна каждая среда.
| Параметр | Блоки (Scratch) | Текст (Python) |
| Возраст старта | По данным разработчиков — прежде всего 8–16 лет | Обычно с 11–12 лет, раньше — при уверенном чтении и печати |
| Порог входа | Очень низкий: блоки подписаны, лишнего не вставить | Средний: нужно помнить скобки, кавычки, двоеточия и отступы |
| Ошибки записи | Синтаксических ошибок нет, только логические | SyntaxError, IndentationError, NameError на первых занятиях |
| Типичные проекты | Анимации, мультфильмы, игры с персонажами | Консольные игры, рисунки черепашкой, расчёты, задачи |
| Школа и экзамены | Готовит понятия, но в заданиях ОГЭ не используется | Один из языков задания 16 ОГЭ и задач ЕГЭ |
| Где работает | Браузер, планшет, офлайн-редактор | Компьютер с установленным языком или онлайн-редактор |
| Цена | Бесплатно | Бесплатно |
Из таблицы видно, что выбор не сводится к вопросу «что лучше». Исследование создателей блочной среды из MIT подчёркивает именно низкий порог как главное её достоинство, а не «детскость». Блоки выигрывают на старте, текст выигрывает на длинной дистанции. Поэтому сравнение имеет смысл только вместе с вопросом, сколько ребёнку лет и что он уже умеет.
Порог входа: почему блоки проще
Порог входа — это усилия, которые нужны, чтобы получить первый работающий результат. В блоках он минимален: первая анимация получается за 5–10 минут, и ни одна опечатка не может её сломать.
Авторы Scratch формулируют свой принцип как «низкий порог и высокий потолок»: начать легко, а сделать можно сложные проекты[1]. Блок «повторить» имеет форму скобы, и в него физически нельзя вставить что-то не туда. Условие «если» не защёлкнется без шестиугольного блока-сравнения. Так среда подсказывает правила формой, а не сообщениями об ошибках.
В текстовом языке подсказок формой нет, а стиль записи описывает отдельный документ PEP 8 — от отступа в 4 пробела до имён переменных. Поэтому выбор среды для новичка во многом определяется тем, готов ли он следить за такими мелочами. Вот та же идея «повторить 4 раза», записанная текстом:
for shag in range(4):
print("Шаг", shag + 1)
print("Готово")
Шаг 1
Шаг 2
Шаг 3
Шаг 4
Готово
Забыть двоеточие, отступ или закрывающую скобку здесь очень легко. Для подростка это небольшое препятствие, для восьмилетки — частая причина бросить. Попробуйте черепашку в редакторе выше: код повторяет классический проект «нарисуй квадрат», и если поменять 4 на 6, а 90 на 60, получится шестиугольник.
Какие проекты получаются в каждой среде
В блоках быстрее всего получаются проекты с картинкой и звуком, в тексте — программы, которые считают, спрашивают и обрабатывают данные. Это 2 разных вида удовольствия, и ребёнку полезно попробовать оба.
- Мультфильм с диалогом. В Scratch — за одно занятие: два спрайта, блоки «говорить» и «ждать». В Python такой проект не нужен — там нет готовых персонажей.
- Игра с управлением стрелками. В блоках — естественный проект для начинающего. В Python для графических игр нужны дополнительные библиотеки, и новичку это сложно.
- «Угадай число» и викторина. Удобны в обеих средах, но в тексте код короче и прозрачнее.
- Расчёты и задачи. Сумма чисел, таблица умножения, поиск максимума — здесь текст заметно удобнее.
- Рисунки и узоры. Расширение «Перо» в Scratch и модуль turtle в Python делают почти одно и то же.
Если ребёнок мечтает о собственной игре с персонажами, выбирайте Scratch: Python не даст такого результата быстро, а блоки дадут его за несколько занятий и не убьют интерес. Если ему нравится решать головоломки и считать, текст подойдёт уже на старте. Идеи для первых проектов в блоках собраны в обзоре Scratch для детей.
Когда начинать сразу с текста
Пропустить Scratch и выбрать Python можно, если ребёнку 12 лет или больше, он бегло читает, уверенно печатает и сам хочет «писать как программисты». Блоки в этом случае не обязательны.
Подростку 13–15 лет блочная среда часто кажется детской: яркие спрайты и кот в роли героя скорее отталкивают. Для него хороший первый шаг — черепашья графика, где результат так же нагляден, а запись уже «взрослая». Второй шаг — программа-диалог с input() и print(). Пошаговое занятие для такого старта есть на странице о первой программе за 15 минут.
Сравнение по школьной программе тоже говорит в пользу текста для этого возраста. Есть практическая причина: в 8 классе по федеральной образовательной программе начинается программирование на одном из текстовых языков[2]. Подросток, который к этому моменту уже знаком с текстом, тратит уроки на понимание алгоритмов, а не на поиск двоеточия.
Как перейти с блоков на код
Переход проще всего делать через проекты, которые ребёнок уже сделал в блоках: он переписывает знакомую программу текстом и видит, что идеи те же. Обычно на это уходит 4–8 недель занятий 2 раза в неделю.
| Команда Scratch | Запись в Python |
| «повторить 10 раз» | for i in range(10): |
| «повторять пока не …» | while not условие: |
| «если … то … иначе» | if …: и else: |
| «задать очки значение 0» | ochki = 0 |
| «изменить очки на 1» | ochki += 1 |
| «спросить и ждать» | otvet = input("Вопрос? ") |
| «говорить Привет» | print("Привет") |
Удобный порядок перехода со Scratch на Python такой: сначала переписать рисунок черепашкой, затем викторину, потом игру «угадай число». На каждом шаге стоит открывать старый проект рядом и сравнивать. Исследователи вычислительного мышления выделяют общие для всех сред понятия — последовательности, циклы, события, параллельность, условия, операторы и данные[3]; именно их удобно отмечать галочками при переходе. Событий и параллельности в простых программах на Python почти нет, и это нормально: они вернутся позже.
Мифы о Scratch и Python
Миф — это утверждение, которое звучит убедительно, но не подтверждается ни опытом педагогов, ни описанием самих сред. Вот два, которые чаще всего мешают выбору.
«Scratch — игрушка, на нём нельзя научиться программировать». Это не подтверждается: в блоках есть переменные, списки, условия, циклы, события и клоны, то есть все базовые понятия, из которых строятся алгоритмы.
«После блоков ребёнок не сможет привыкнуть к тексту». Доказательств этому не существует: понятия переносятся, а новой оказывается только запись. Трудности перехода связаны с печатью и синтаксисом, и они проходят за несколько недель.
Третий распространённый миф звучит так: «Python слишком сложен для школьника». На деле его синтаксис один из самых коротких среди популярных языков, и школьная программа прямо допускает его как основной.
Когда текстовый язык не подходит
Python вместо Scratch не подходит как первый язык, если ребёнку не хватает базовых навыков чтения и печати или если ему нужен быстрый яркий результат. Вот 4 типичные ситуации.
- Ребёнку 7–9 лет. Печать кода отнимает больше сил, чем сама логика; Scratch здесь честнее.
- Ребёнок печатает медленнее 1 слова в 3–4 секунды. Каждая строка превращается в мучение.
- Главная цель — мультфильм или игра с героем за 1–2 недели. В блоках такой проект реален, в тексте — нет.
- Первые 3 ошибки подряд вызывают слёзы. Сначала нужны задачи, где ошибиться почти невозможно.
Чего делать нельзя
Нельзя превращать выбор между Scratch и Python в спор о «правильном» языке. Эти правила помогают не потерять интерес ребёнка.
- Нельзя запрещать Scratch подростку, если он сам хочет сделать в них игру: проект важнее среды.
- Не следует сажать восьмилетку за текстовый код только потому, что «так серьёзнее».
- Не стоит переходить на текст, пока не освоены циклы и условия — иначе в новой среде придётся учить всё сразу.
- Нельзя исправлять синтаксические ошибки за ребёнка: научиться читать сообщение об ошибке — часть перехода.
- Не следует учить три языка одновременно: один текстовый язык после блоков — достаточная нагрузка.
Если вопрос шире и нужно понять, какие ещё языки встречаются в школе, прочитайте разбор о том, какой язык программирования выбрать ребёнку. А первые сообщения об ошибках разобраны в материале про ошибку отступа.
Источники
[1] Maloney J., Resnick M., Rusk N., Silverman B., Eastmond E. The Scratch Programming Language and Environment // ACM Transactions on Computing Education. 2010. Vol. 10, № 4. Article 16.
[2] Приказ Минпросвещения России от 18.05.2023 № 370 «Об утверждении федеральной образовательной программы основного общего образования».
[3] Brennan K., Resnick M. New frameworks for studying and assessing the development of computational thinking // Proceedings of the 2012 Annual Meeting of the American Educational Research Association. Vancouver, 2012.
[4] The Python Tutorial (официальная документация Python 3). Python Software Foundation.
Вопросы и ответы
Можно ли учить Scratch и Python одновременно?
Можно, если роли разделены: большой творческий проект делается в Scratch, а короткие задачи — текстом. Учить одни и те же темы параллельно в двух записях новичку тяжело.
Сколько времени нужно на блоки перед текстом?
Ориентир — пока ребёнок не начнёт сам использовать циклы, условия и переменные. У младших школьников это обычно год-полтора, у подростков — несколько недель.
Нужно ли знать английский для текстового кода?
Достаточно запомнить около двадцати слов: print, input, if, else, for, while, range и другие. Их учат как термины, без грамматики.
Есть ли блоки, которые показывают код?
Тренажёр «Робот в лабиринте» на нашем сайте работает с блоками, а соответствие блоков и строк кода собрано в таблице выше. Этого хватает, чтобы увидеть связь.
Что выбрать для подготовки к ОГЭ?
Текстовый язык. В задании 16 нужно написать программу на одном из универсальных языков, и этот вариант входит в список допустимых.
Какой выбор лучше для девятилетнего, который любит математику?
Всё равно начните со Scratch, Python оставьте на второй шаг, но давайте задачи на счёт: калькулятор, таблицу умножения, счётчик очков. К тексту он, скорее всего, перейдёт быстрее сверстников.