С Blockly легко научиться программировать | Нил Фрейзер | Blockly.Ru

OpenSource

Blockly – это движок, который сегодня используется во многих обучающих онлайн-сервисах, позволяющих людям всех возрастов изучать программирование. Мы взяли интервью у Нила Фрейзера и познакомились с его точкой зрения и планами на будущее его команды.

Где мы можем увидеть Blockly?

В последние месяцы наблюдается увеличение количества мероприятий, направленных на привлечение людей всех возрастов к программированию. Например, организация “The Hour of Code” провела по всему миру более 70 тысяч мероприятий. В них приняли участие более 95 миллионов людей, от обычных студентов до глав государств.

code.org

Сайт Code.org предлагает бесплатные онлайн-уроки, которые может попробовать любой человек. Если вы принимали участие в этих уроках (например, Flappy Bird – мой любимый урок), то вы заметили область с блоками кода, которые можно собирать, как LEGO.

Платформа, благодаря которой возможно создание таких визуальных блоков кода, называется Blockly. Библиотеку с открытым исходным кодом Blockly разрабатывали, в основном, программисты Google при участии других заинтересованных разработчиков. Код Blockly можно найти в репозитории GitHub.

Нил, расскажи нам немного о себе, о том, с чего начинался Blockly и как ты попал в этот проект.

У Google есть проект App Inventor, с помощью которого новички в программировании могут создавать приложения для Android-устройств. В этом проекте используется визуальное программирование, которое легко изучать и интересно использовать. К сожалению, визуальная часть была написана на Java. Для людей, которые с компьютером на “вы”, установка и запуск какого-либо стороннего ПО – это настоящий кошмар. Я же известен как создатель невероятных вещей на JavaScript, и поэтому разработчики App Inventor попросили у меня помощи. Нужно было переписать их интерфейс на JavaScript, чтобы App Inventor запускался в браузере, не требуя от пользователя установки дополнительных программ.

blockly-code

Спустя несколько месяцев проект App Inventor отменили и код проекта передали Массачусетскому технологическому институту. Но я верил в потенциал разрабатываемого мной пользовательского интерфейса и не хотел бросать работу над ним. Поэтому я использовал единственную возможность – продолжить работу над интерфейсом во время заслуженного отпуска. Я приходил в офис каждый день и работал над проектом. После двух месяцев работы была готова демоверсия. Мои руководители были поражены, мы запустили проект Blockly, а компания Google дала мне отпуск задним числом. Вот еще одна причина, почему я люблю эту компанию.

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

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

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

Чаще, конечно, мы не видим, что именно разработчики делают с Blockly изнутри. Но я обычно слежу за релизами новых приложений, сделанных на Blockly. Недавно увидел в газете, что президент США использовал Blockly.

Обучалки на сайте Code.org сделаны для новичков, и там мы видим упрощенный интерфейс. Blockly может делать куда больше, например, есть такие возможности, как проверка типов, генерация кода (в Javascript, Python, Dart и др.), редактор кода и отладка, как показано в демо-версии. Что вы думаете насчет того, чтобы использовать Blockly в образовательных организациях для полноценного курса программирования? Например, в средней школе или в колледже?

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

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

Вы ориентируетесь на работу с учениками со всего мира. Можете рассказать, какие усилия вы прилагаете, чтобы перевести Blockly на более чем 40 языков, и как люди, использующие Blockly, вам помогают?

94% процента людей, не говорящих по-английски, пытаются запоминать, что комбинация букв 'R', 'E', 'P', 'E', 'A', 'T' именно в такой последовательности приведет к повторному действию. Представьте, как было бы тяжело одновременно учиться программированию и запоминать вот такие последовательности символов: 'كرر' or 'عودة'. Конечно, выучить придется только несколько десятков слов, но мы делаем акцент на обучении логики программирования, а не иностранных языков.

Перевод Blockly на разные языки позволяет преодолеть языковой барьер в тот момент, пока азы программирования еще не изучены. Мы чрезвычайно признательны людям, которые делают для Blockly переводы. Удивительно наблюдать, как пятиклассники из Вьетнама разбираются в Blockly без помощи учителя.

Blockly разрабатывался таким образом, чтобы быть доступным для максимального количества людей. Например, он работает полностью на Javascript (на стороне клиента), является небольшой библиотекой, поддерживает работу с планшетными компьютерами и touch-экранами. С другой стороны, было принято и нелегкое решение в виде отказа от поддержки старых версий браузера. Расскажите, каким образом вы принимаете такие решения?

У большинства учеников нет большой тяги к программированию. У нас есть около 20 секунд, чтобы привлечь их внимание перед тем, как им станет скучно и они пойдут играть в видеоигры. Любое препятствие к сервису (установка Java, медленная загрузка, изучение иностранного языка, непонятный интерфейс) отпугивает пользователей. Мы полагаемся на показатели, опросы пользователей, обратную связь от разработчиков и стараемся убрать любые препятствия.

Некоторые описывают Blockly как “стартовый наркотик”. Его легко попробовать, он быстро захватывает и толкает людей к более серьезным вещам. Возможно, это не самое лестное сравнение, зато оно предельно точное.

Каким вы видите будущее Blockly? И как опенсорс-сообщество может вам помочь?

Google будет продолжать совершенствовать Blockly, добавляя ему новые возможности. Например, многопользовательская работа над проектом, использование увеличения Google Maps для больших проектов, специальная клавиатура для слабовидящих. Но вклад Google сейчас не самый значительный. Будущее Blockly в руках сторонних разработчиков. Именно они расширяют Blockly, используют его в обучении, домашней автоматизации, робототехнике, и в визуализации данных. Они переводят Blockly на все языки мира (включая клингонский). И только благодаря им приложения на Blockly попадают в руки учеников. Я безмерно горд той работой, которую эти разработчики выполняют.