Июль, 23, 2007
RB24. Две культуры программирования
Европе есть кем и чем гордиться. Назову лишь некоторые имена, многие из которых отмечены высшими наградами профессиональных ассоциаций, включая IFIP, ACM, IEEE Computer Society: Европа по праву гордится своими достижениями. Среди них: Среди ведущих парадигм программирования явные европейские корни имеют: В отношении языков программирования не так просто определить принадлежность их той или иной школе. Для этого недостаточно знать гражданство авторов — требуется выяснить, где и какое образование они получали, каким научным и инженерным традициям следовали, в каких организациях создавали свои творения. Если говорить о достижениях европейского программирования, которые видны в повседневной жизни, достаточно упомянуть всего три: К сожалению, мы редко об этом задумываемся. Если попросить какого-нибудь специалиста назвать десяток операционных систем, отличных от мэйнстрима (UNIX, DOS, Windows), то он наверняка окажется в несколько затруднительном положении. А если попросить ещё назвать такой десяток именно европейских — тем более. Постепенно мы подошли к тому проекту новой ОС, которому были посвящены прямо и косвенно практически все мои последние заметки. Думаю, проницательный читатель уже догадался, к чему я клоню.
Среди европейских языков программирования в соответствии с таким подходом я бы выделил следующие:
Хотя как раз-таки в сфере инфраструктурной, сфере системного программирования Европа смогла сохранить ценности и традиции своей школы.
Вот лишь несколько примеров:
В самом деле, если за основу разработки новой ОС берётся модель открытого исследовательского программирования, где подразумевается участие специалистов в НИОКР на некоммерческой основе, если делается ставка на наукоёмкость, если технологическое совершенство положено во главу угла, то рассуждения относительно отечественной государственной ОС офисного направления выглядят несколько странно. Ведь если создаётся такая ОС (в том смысле, что всё готовится для того, чтобы ей придали такой статус) с прицелом под офисную работу, то зачем городить огород из существенных наворотов по инструментарию, по математике? Можно же сделать проще. Другой вопрос: если делается просто ещё одна экспериментальная ОС, искусства ради, то чем этот проект выделяется на фоне остальных? А если не выделяется, то он теряет главные плюсы своей открытости — концентрацию интеллектуальных ресурсов для решения масштабной задачи.
На самом деле рассматривался лишь один из возможных вариантов сценария перенацеливания ОС после завершения стадии НИОКР. Т.е. при переходе к полноценному производству. Пока об этом можно говорить весьма умозрительно. В преддверии старта было интересно узнать мнение общественности по двум моделям — чисто экспериментальной ОС (ради искусства) и государственной ОС (ради общественной пользы). И в рамках форума "Королевства Delphi", выбранного в качестве пробного камня проверки идей среди отечественного Паскаль-сообщества, такая обратная связь была получена. На самом деле, задумка несколько иная. Абсолютно не отрицающая то, что было изложено ранее.
Государственная ОС для проекта создания новой ОС — это:
1) вариант продвижения ОС на внутренний рынок России;
2) возможность финансовой поддержки стадии производства и, возможно, стадии НИОКР.
Для государственной ОС требуется полноценная стадия производства, до которой дело из-за отсутствия должного финансирования и политических поветрий может так и не дойти. Т.е. НИОКР будут сделаны, а самой заявленной ОС (по независящим от группы причинам) не будет. Значит, минимизируя риски, мы должны идти по другому пути, который позволит ограничиться в худшем случае НИОКР, получив при этом нормальную ОС.
То, как задумано продвижение проекта, с большой долей вероятности приведёт к появлению в нём не одной дюжины светлых голов, которым по силам решить планируемые задачи. На начальном этапе в ближайшие месяцы требуется хорошо продумать взаимосвязанные контуры проекта, провести эскизное проектирование, добиться целостной картины с сохранением вариативности, требующей дополнительных исследований. Без коллективного обсуждения и консультаций с экспертами (даже при наличии вполне конкретных намёток и проработок) это затруднительно. Проект будет набирать свой вес постепенно. Это неизбежно вызовет волну неприятия. Со стороны самых разных лиц и групп. Я ожидаю резкое противоборство проекту. Особенно внутри России. Но этот вопрос был проработан ещё до старта и предусматривает разные сценарии защиты от атак. Начало проекта было запланировано на осень, но активность В.Алксниса вынудила начинать раньше.
Казалось бы, если проект не политический, а в первую очередь научно-технологический, то откуда будут исходить риски?
Всего несколько моментов:
1. В основе проекта лежат технологии, которые не вписываются в магистральное развитие (в мэйнстрим). При постоянном повышении статусности проекта это будет вызывать заметное недовольство.
2. Проект посягает на сложившееся статус-кво, которое устраивает в России очень многих.
3. Проект при позиционировании как альтернативы инфраструктуре от Microsoft имеет наглость отделять себя от Linux-направления, которое рассматривается как единственный возможный выбор в любой перспективе на внутреннем рынке.
4. Проект будет оттягивать к себе сильные кадры и приковывать повышенное внимание.
5. Сопутствующие проекту материалы, которые увидят свет, посягают на глубинный пересмотр сложившихся стереотипов в области программирования, которые пропитали насквозь не только сообщество независимых разработчиков, ИТ-индустрию, но и академическую среду.
Некоторые принципиальные моменты в отношении проекта вполне можно озвучить уже сейчас. Игнорирование лежащих в основе проекта Оберон-технологий как в мире, так и в России вызвано целым рядом причин, которые данный проект (его полезное побочное следствие) способен устранить:
1. Проект уходит от замкнутости ETH-разработок и будет использовать мощный потенциал OpenSource-движения, реализуя наиболее радикальную форму воплощения идей сообщества открытых исходных текстов (public domain под зонтиком Open Research Programming).
2. Проект станет одной из важнейших точек притяжения последователей европейской школы программирования в противостоянии с моделью американизации мировой ИТ-индустрии. И это один из главных стратегических моментов всего проекта.
Один из рисков в данной ситуации — это профанация идей, спекулирование на патриотической теме, что даёт возможность нашим оппонентам замыливать суть проекта. В том числе и по этой причине задача ставится ещё более серьезная (при этом посильная), чем просто новая отечественная ОС.
Вот логика рассуждений.
1. Патриотический подтекст (отечественная ОС, русская ОС) — палка о двух концах. Он неизбежно у многих лишь усиливает скепсис.
2. Мы не можем позиционировать свою ОС как русскую (российскую) по целому ряду причин. И далеко немаловажный из них — богатая география участников, выходящая за рамки одной страны. Нет смысла делать из системы яблоко раздора на национальной почве. Будет она государственной в России — пусть тогда с полным правом зовётся российской. А так — будет самостоятельной, без привязки к стране.
3. Для России справедливо утверждение "Нет пророка в своем Отечестве". Т.е. если делаем для своей страны и активно об этом заявляем, то ни уровень проработки, ни квалификация кадров почти ничего для общественного мнения не значат. Есть устойчивый стереотип: у нас для себя делать не умеют.
Какой напрашивается вывод?
Мы будем строить ОС с прицелом на Европу, а не просто на Россию. Для этого есть все предпосылки. Большое турне Вирта в Россию осенью 2005 г. и консультации с ним привели к пониманию того, что европейские специалисты прекрасно отдают себе отчёт в том, что сломать ситуацию с монополизацией рынка и уничтожением науки в компьютерной сфере по силам только мощному интеллектуальному движению со стороны стран бывшего Советского Союза.
Мы применяем новейшие проработки, преимущественно европейские, причём такие, которые сами европейцы продвинуть не смогли. Мы закладываем в систему полноценную интернационализацию с прицелом под локализацию на европейские языки. Мы будем под эгиду Европейского центра программирования привлекать сильных научных консультантов из стран Европы. Мы способны выполнить такие НИОКР, которые позволят создать полуфабрикатную перенацеливаемую ОС, при этом её смело можно использовать там, где достаточно сильного ядра, относительно слабого сервисного слоя и почти вырожденного прикладного слоя. Но инструментарий и надёжность должны быть на высоте. Сфера автоматизации научных исследований, где сильны были Modula-2, Oberon, а потом и Компонентный Паскаль, — это ярко выраженная ниша. В которую можно попасть, почти не целясь.
Таким образом, проект новой ОС, которая с лёгкой руки Владимира Лося получила название "Роса" (Rosa), направлен на создание европейской бесплатной открытой перенацеливаемой операционной системы, предназначенной для использования, прежде всего, в сфере автоматизации научных исследований. Системы, которая будет создаваться преимущественно силами независимых специалистов из стран бывшего Советского Союза. Проект "Роса" будет одним из первых, проводимых под эгидой Европейского центра программирования при участии авторитетных научных консультантов и экспертов.
Теперь, думаю, понятно, почему нами используется модель открытого исследовательского программирования Open Research Programming. Понятна ставка на виртовскую школу. Понятна наукоёмкость. Понятен отход от моноязыковой системы. Понятно требование технологического совершенства. И понятен уникальный статус проекта, который за счёт такой идеи способен привлечь к себе на продолжительный период очень сильные кадры.