Comments 13
Где Human Resource Machine, 7 Billion Humans, Colobot? Что за список такой, самой классики нет.
factorio? )
С юных лет приучать перекладывать джейсоны. Seriously?
А игры обязательно должны быть на гаджетах?
Примерно месяц назад тут в комментариях обсуждался вопрос про обучение детей программированию: с какого языка и с какого возраста лучше начать. Писали про школьный возраст и даже про шестилеток. А я предложил рассмотреть крайний случай. Поскольку буквально накануне чтения этой статьи не только разработал свой собственный языке программирования "для самых маленьких", но и обучил ему свою дочку. Фактически доказав тем самым, что базовые навыки программирования ребенок может освоить намного раньше.
К сожалению, автор позже снял свою публикацию, а комментарии при этом становятся недоступными. А меня терзает надежда, что этот подход к обучению будущих программистов может кого-то навести на полезные размышления. Поэтому, несмотря на риск показаться навязчивым, выложу здесь
описание этого языка еще раз
Я исходил из того, что "мой самый первый язык" должен быть минималистичным, а операторы должны быть предельно близки к "железу". И, разумеется, никакой компиляции, а тем более оптимизаций! Только интерпретатор, только хардкор, чтобы обучаемый сразу видел, что скрывается "под капотом" у каждой команды.
Честно скажу про технические ограничения
Несмотря на то, что будущая среда исполнения подразумевалась заранее, меня сразу поставил в тупик вопрос о технических характеристиках процессора, на котором все будет работать. Включая такую "базу", как объем памяти и длина машинного слова. Было бы страшно обидно на заключительном этапе разработки обнаружить, что все задумки летят у чертям, так как "савраска" просто "не тянет". Поэтому я решил не связываться с традиционными наработками, у которых требования к "железу" начинаются с 8-битных слов и многих килобайт памяти, и ужаться до минимума
В общем, язык называется "Папсик", и сейчас там всего семь команд, что позволяет его реализовать на 3-битной архитектуре. Сами команды такие:
1) На шею
2) Направо
3) Налево
4) Вперед (она начинает "ньютоновское" равномерное движение вплоть до встречи с препятствием или отмены)
5) Стой
6) Опусти
И, конечно, синтаксический сахар (куда ж без него) - это команда
7) К маме
Причем, в процессе исполнения последней команды интерпретатор автоматически декомпозирует ее на операторы (1)-(6), а специальный динамик озвучивает их по ходу их исполнения. По моим наблюдениям, это очень способствует быстрому освоению языка.
Несмотря на минималистичность и простоту, язык позволяет строить достаточно сложные маршруты в трехкомнатном лабиринте, изрядно заставленном всякой мебелью. Уточню еще, что на полное освоение Папсика у нас ушла пара недель не слишком интенсивных занятий. А сложнее всего дочке давалась команда "Стой", особенно когда в длинном коридоре надо остановиться точно напротив двери, чтобы туда повернуть Впрочем, вопросы синхронизации разных процессов - это одна из сложнейших тем в любом языке...
Ну и добавлю еще, что дочке сейчас 2.5 года, и свой первый язык программирования она уже освоила если не в совершенстве, то на уровне профессионального пользователя. С одной стороны, это вроде неплохо.. с другой, как мне совершенно справедливо указали в комментах к первой статье, злоупотребление командой "на шею" может спровоцировать жесткую профдеформацию
на всю оставшуюся карьеру...
Жаль, сейчас я уже не могу найти тот коммент и отблагодарить его автора плюсом. Но его следующий работодатель точно должен накинуть ему +10% к зарплате за умение обнаруживать скрытые баги в самом безобидном, на первый взгляд, коде ;-)
А Colobot?
ИТ с пеленок. 6 игр, которые познакомят детей с программированием. Часть 1