В семидесятых годах прошлого века, когда вычислительные мощности стоили дорого, программисты в университетах США и Европы использовали ночное машинное время для многопользовательских текстовых игр. Этот вид развлечений получил название MUD (Multi User Dungeon, “многопользовательские подземелья”) и оказался чрезвычайно популярен. Десятки программистов и лаборантов собирались в группы, которые шли походом на драконов, орков, кобольдов и гоблинов, или блуждали по подземным лабиринтам.
Новизна идеи британца Мэтта Уэбба заключалась в том, чтобы использовать текстовые игры для работы.
Уэбб работал программистом, а это занятие предполагает многочасовое бдение с целью структурировать и модернизировать некий текст. Интересно и то, что программы обычно можно разделить на отдельные части – модули, процедуры, функции, циклы. Внутри этих частей находятся переменные, вызовы других функций и выходы из программы.
Вполне вероятно, что однажды Уэбб увидел в этом своеобразный фэнтези-мир, в котором роль комнат играют функции, а роль предметов – переменные. В таких комнатах на стенах будут висеть константы, в полу будут зиять бездонные дырки-выходы, а вместо дверей будут вызовы других функций.
Так или иначе, на свет появилась playsh, позволяющая воспринимать пишущуюся программу как лабиринт. Игрок ходит из комнаты в комнату, создавая новые выходы, закрывая старые, перемещая предметы и обсуждая все это с другими игроками.
Потенциал этой простой идеи оказался чрезвычайно велик. Во-первых, к процессу программирования может присоединиться сколько угодно участников. При этом, зайдя в какую-либо комнату, игрок видит, что именно его коллега меняет в коде.
Во-вторых, playsh не требует долгого освоения. Для большинства программистов интерфейс MUD не является чем-то незнакомым. Более того, этот интерфейс не требует отрывать руки от клавиатуры и максимально приближен к естественному языку, так как все действия производятся при помощи обычных глаголов.
В-третьих, playsh позволяет проводить обучение программистов прямо «на поле боя», выгодно отличаясь от традиционных методов тем, что ученики постоянно работают с текстом программы, не отвлекаясь на то, чтобы превратить схемы и диаграммы в реальный код.
Подробнее…