Хочу всё знать. Язык Logo

Язык программирования для самых юных читателей.
21 февраля 2017326451Илья Бубнов2374415

В 1967 году Сеймур Пейперт и Идит Харель задались целью вовлечь в стремительно развивающийся мир программирования детей, причём даже тех, кто с трудом умеет писать. Так появился один из самых старых и популярных образовательных языков программирования - Logo. За 50 лет он получил почти 250 модификаций, среди которых есть русскоязычные, в частности, Логомиры и Перволого.

Вообще Logo до сих пор очень активно используется в школьном и даже дошкольном образовании, а в ряде стран (Англия, Австралия) - это обязательный предмет образовательной программы. Язык Scratch, который сегодня так стремительно набирает популярность, основывается на принципах, заложенных в Logo, усовершенствовав лишь графическую и функциональную составляющие. Так что представляет из себя этот язык и возможно ли найти работу, где он будет востребован? Давайте разбираться.

Черепашьи бега

Забудьте “Hello World!”, изучение Logo начинается со знакомства с черепахой. Это не просто логотип языка, это базисный элемент, цель которого вовлечь ребенка в мир программирования. Черепашья графика - принцип организации вывода графической информации, при котором объект, перемещаясь из нулевой в заданную точку, “рисует” линию. Собственно, название появилось после наблюдения за черепахами, которые перемещаясь по пляжам, оставляют за собой канавку в песке. С подобным типом графики можно поработать во многих языках(Python, C#, Ruby), но именно в Logo она является важнейшим инструментом.

Синтаксис

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

Возвращаясь к нашим черепахам, базовое упражнение в Logo - перемещение, которое задается командами FORWARD (FD, ВПЕРЕД, вп...) и BACKWARD (BK, НАЗАД, нд...) и добавлением значения длины требуемого отрезка в пикселах. Собственно после этого можно нажимать кнопку выполнения и созерцать результат.

Команд в базовых версиях Logo всего около 30, а самое сложное, что постигают дети на этом уровне программирования - это циклы. Выглядят они следующим образом:

  переменная х

  повторить 255 {
     х = х + 1
     цвет RGB( х, х, х)
     вперед х
     направо 75
  }

С одной стороны - ничего сложного, с другой - уже что-то похожее на взрослое программирование.

Неочевидный Logo

За всей этой мишурой и простоватостью, немногие способны разглядеть тот простой факт, что Logo - функциональный язык программирования, способный исполнять серьёзные операции. Просто взгляните на рекурсивное определение факториала в UCBLogo:

to factorial :N
  ifelse :N = 0 [output 1] [output :N * factorial :N - 1]
end

to print_factorial :i :N
  repeat :N - :i + 1 [(print :i [! =] factorial :i)
                      make "i sum :i 1]
end

print_factorial 0 16

Действительно, испытав на себе влияние Smalltalk и Lisp, Logo своим примером доказывает, что ФП - не необходимость научиться мыслить иначе, а повод очистить свой разум от стереотипов.

Востребованность

Естественно, что изучив язык Logo в любой из 250 реализаций, вы не сможете найти работу, где бы этот навык пригодился (на момент написания текста, по всей России нашлось 2 вакансии, где Logo шёл в самом конце списка требований. По всему миру нашлось около 40 подобных вакансий). Это прекрасный язык для получения представления о программировании и для общего развития вашего ребенка. А для работы вы наверняка отыщите множество языков куда удобнее и функциональнее.

Полезные ссылки

https://people.eecs.berkeley.edu/~bh/logo.html - ссылка на модификацию UCBLogo, пример из который был описан чуть выше. Также здесь необходимая документация и рекомендуемые книги;

https://turtleacademy.com/ - достаточно простой обучающий сайт, где каждый сможет обучиться языку Logo, не устанавливая при этом специальное ПО. Реализация немного хромает, поэтому приготовьтесь прыгать с русского на английский язык и обратно;

http://el.media.mit.edu/logo-foundation/index.html - язык Logo был разработан в MIT, именно на сайте института и хранится официальная страница, где вы можете подробнее изучить историю и получить первозданные исходные файлы;

http://www.int-edu.ru/logo/products.html - все отечественные реализации Logo вы можете найти здесь. К сожалению, за большую часть из них придётся заплатить;

http://younglinux.info/sites/default/files/logo_kturtle.pdf - пожалуй, одной большой русскоязчной книги хватит для изучения языка.