История среды программирования Alice
Alice – среда для функционального программирования, 23 года назад разработанная профессором Рэнди Паушем в США.
Последняя стабильная версия была выпущена в 2007 году.
Детство
В 1994 году профессор Рэнди Пауш задумался о создании принципиально нового языка программирования для детей и студентов первых курсов. С одной стороны, язык должен быть графическим, с другой – поддерживать парадигму объектно-ориентированного программирования и обладать возможностями «взрослых» языков. Необходимо отметить, что в те времена ещё не было Scratch.
В конце 1990-х и начале 2000-х доктор компьютерных наук Ванда Данн и доктор Стив Купер предложили профессору Рэнди Паушу сотрудничество для разработки новой версии программной среды Alice и использования ее в качестве инструмента обучения и преподавания вводных курсов программирования. Результатом этого сотрудничества стала версия Alice 2. Как и многие дети, Alice (имя взято из книг Льюиса Кэролла) родилась не очень красивым ребёнком. Хоть язык и базировался на Python, но итоговый объём кода возвращал во времена Си. Удобство работы с интерфейсом IDE оставляло желать лучшего: дизайн, расположение управляющих элементов были неудачными. Зато теперь даже ребёнок мог работать с 3D-моделями, управлять камерой, объектами и событиями, это был инструмент быстрого создания анимации в виртуальной реальности.
Рэнди Пауш так характеризовал свою деятельность по работе над проектом: «…если у вас большие амбиции и масштабы, то можно попытаться реализовать мечты миллионов людей. Мне бы хотелось думать, что «Алиса», обучающая программа университета «Карнеги-Меллон», над которой мне посчастливилось работать, сможет это сделать. «Алиса» помогает студентам и обычным людям, причем любого возраста, с легкостью создавать анимацию любого сюжета, играть в интерактивные игры или делать видеопрограммы. В ней используется трехмерная графика и приемы перетаскивания, благодаря чему ею могут пользоваться и самые неподготовленные люди».
Учебники и учебные материалы новой версии были первоначально созданы для профессоров колледжей, но вскоре учебные материалы стали адаптироваться и распространяться в средних школах США.
Кэйтлин Келлехер, бывшая студентка Рэнди Пауша, с самого начала работала над проектом и задумалась, как сделать среду Alice интересной для девочек. Кэйтлин поняла, что девочек легче всего заинтересовать увлекательными историями. Свою докторскую диссертацию она написала на тему «Алиса» и интересные истории». Учащиеся строят свой виртуальный мир, рассказывают истории трехмерных моделей.
Главной проблемой стало то, что далеко не все компьютеры в те времена могли поддерживать 3D-моделирование, да ещё и с высокоуровневым программированием событий. В итоге, юная Alice заинтересовала несколько крупных вузов, студий разработки игр, аниматоров, но так и не ушла в народ.
Alice 2.0 получила ряд важных улучшений:
- улучшилась производительность. Возможность экспортировать результат в QuickTime сократило время на разработку, ядро языка была оптимизировано.
- новый формат обучения. Теперь вы не просто могли управлять объектами и камерой, обучение происходило через создание сюжета мультфильма.
- библиотеки. Первая версия была ограничена в персонажах и местах действия, во второй программистам подарили простор для фантазии.
Юность
В 2006 году компания Electronic Arts взялась за разработку Alice 3.0 для интеграции в легендарную серию игр The Sims. Alice 3 предоставляет модели персонажей из популярной игры The Sims – они заменили текущие объекты Alice 2, нарисованные в 3-D Studio Max. В дополнение к этому Alice 3 поддерживает дополнение Alice-анимации вставками на языке Java, также в интегрированном окружении разработчика (IDE).
Бета-версия вышла в 2009 году (как и Sims 3), лицензия так и осталась открытой, поэтому любой желающий теперь получил возможность создавать знакомую анимацию, даже не приобретая игру.
В 16 лет Alice предприняла попытку выйти на широкую аудиторию – она была интегрирована в Netbeans IDE, получила поддержку Java, кардинально сменила имидж на более современный и элегантный. Также разработчики локализовали продукт, переведя его в том числе и на русский язык.
Alice 3 первоначально должна была заменить Alice 2. Но в настоящее время полноценно существуют обе версии Alice 2 и Alice 3.
Последняя версия Alice 3.2 используются в школах США в качестве начального обучения объектно-ориентированным языкам программирования и постепенного перехода к языкам такого уровня, как Java, С++.
Сегодня Alice официально сотрудничает с Disney, Google, Oracle, Pixar, Microsoft, EA и несколькими очень известными компаниями.
На некоторые уступки разработчики пошли лишь в функциональном плане – во-первых, в среде Alice максимально сокращен объем ввода с клавиатуры, во-вторых, код программы не является текстом в привычном понимании – в рамках одного метода он представляет собой набор вложенных блоков, выделенных цветом в зависимости от типа (циклы, условные переходы и пр.), их можно сворачивать, перетаскивать, изменяя порядок, и т. д. Облегчен и язык программирования – он не относится к числу известных и распространенных, а создан специально для этого проекта, хотя и почерпнул множество идей из современных ОО-языков.