Один из девизов OLPC – "низкие полы и никаких потолков". С одной стороны, система должна быть максимально простой, чтобы быть доступной для полностью самостоятельного освоения ребенком с нуля, а с другой – эта простота не должна служить препятствием для раскрытия возможностей устройства и талантов ее владельца. Пятилетнему пользователю вряд ли захочется учить три тысячи команд Unix и читать многие страницы документации, но уже десятилетнему, возможно, захочется разобраться в том, как работает эта система и чего он может достичь с ее помощью.
"Прозрачность" системы – еще один ключевой пункт философии всего проекта. Конечно, открытые исходные коды – необходимое условие, однако одного лишь open source здесь мало. Требуется создать инфраструктуру, максимально упрощающую изучение и модификацию кода.
Такую инфраструктуру обеспечивает специальная Developer-activity, представляющая собой полноценную среду разработки новых видов деятельности. Большинство компонентов XO написаны на языке Python, по мнению многих экспертов являющемся одним из лучших кандидатов на роль первого «серьезного» языка программирования. Юный хакер может модифицировать любую готовую «активность» или даже организовать совместную разработку по всем правилам open source (с патчами, контролем версий и т. д.), а также использовать приемы экстремального программирования благодаря функциям совместного редактирования кода в реальном времени (эта возможность присутствует и в обычном текстовом редакторе, основанном на AbiWord).
Впрочем, вся эта деятельность доступна скорее достаточно продвинутым пользователям, нежели начинающим – разбираться в реальном коде реальных приложений – нетривиальная задача даже для людей, уже владеющих базовыми навыками программирования.
Получить же их можно с помощью «активности» eToys – визуальной среды разработки мультимедийных приложений. Основанная на языке Squeak (вариации легендарного Smalltalk) и созданная специально для обучения программированию, эта система позволяет максимально интуитивным способом создавать и модифицировать интерактивные "книги", объединяя и настраивая различные объекты, управляемые скриптами.
Многие вещи, о которых я рассказал выше (и те, которые не поместились в формат этого краткого обзора), пока не реализованы в коде и остаются скорее концепциями, либо реализованы не до конца (трехсоткилобайтный документ, описывающий пользовательский интерфейс системы, доступен на wiki.laptop.org). Посмотреть «вживую» мне удалось только на eToys и, отчасти, на зуммируемый рабочий стол (не слишком функциональный на одиночном компьютере, не включенном в беспроводную сеть с другими подобными устройствами). Однако это не самое главное. Как писал Джереми Эллисон (Jeremy Allison) в статье для ZDnet, "даже если OLPC потерпит неудачу, он существенно повлияет на компьютерный ландшафт". Идеи, заложенные в его основу, стоят того, чтобы их реализовали. И они будут реализованы. В рамках этого проекта или другого, через полгода или десять лет – уже не столь важно.
ГОСТИНАЯ: Парадоксы систематики
Первое дело первого человека до сих пор не доделано. Адам, по свидетельству Библии, до грехопадения (определившего необходимость добывать хлеб насущный в поте лица своего) придумывал имена для животных. Ныне поименовано более миллиона видов, а очередь безымянных все еще скрывается за горизонтом. Классифицирование названных видов позволяет разобраться в миллионе имен и сделать информацию об их сходстве и различии более компактной.
Систематики до сих пор спорят, существует ли единая, правильная классификация. Оптимисты верят, что это та классификация, которая точно отражает филогению – эволюционную историю. Вот узнаем с помощью молекулярных методов, как шла эволюция, и поставим все на свои места… Увы, эволюционные изменения многомерны, и, проецируя их на иерархическую систему, мы неизбежно теряем значительную часть информации. Какую? Ту, которую сочтем менее важной. Считаете, что «объективными» методами можно определить, какая часть информации наиболее важна? Оставьте эти иллюзии!