Microsoft еще в 2003 г. приняла решение о создании Oslo, платформы общего назначения для моделирования ПО, с намерением сделать программирование более доступным благодаря возможности строить приложения на основе моделей или диаграмм.
Первоначально идея заключалась в разработке визуального инструмента для создания моделей и репозитория, в котором будут храниться модели и метаданные. Но здесь возникла необходимость в новом декларативном языке программирования. Такой язык получил кодовое обозначение D. И в октябре, на конференции разработчиков Professional Developers Conference, Microsoft обнародует первые сведения о нем, новом инструменте и репозитории.
Oslo предоставит не знакомым с программированием людям возможности для создания распределенных приложений. С помощью первой версии новички еще не смогут строить приложения, но она упростит разработку и, как надеется Microsoft, позволит расширить круг программистов.
“Бизнес-аналитики испытывают нехватку инструментов, и здесь имеются хорошие перспективы для нового продукта”, — сказал Брэд Лаверинг, который руководит в Microsoft разработкой технической стороны проекта Oslo. Дон Бокс, архитектор ПО из подразделения Microsoft Connected Systems Division (CSD), принимающий участие в создании языка для Oslo, добавил: “Мы стремимся сделать его таким, чтобы он давал возможность легко перенести идею из вашей головы на жесткий диск”.
По словам Бокса, Oslo предназначается для формулирования идеи ПО, предъявляемых к нему требований и возлагаемых на него надежд, чтобы затем с помощью этой платформы можно было производить любую нужную обработку. “Но в действительности мы стремимся превратить написание ПО в проектирование данных. Это самое простое определение того, чем мы занимаемся. Таким образом, одна из задач заключается в том, чтобы предоставить людям возможность легко взаимодействовать с данными. А один из способов взаимодействия — через визуализацию и построение диаграмм, создание окошек и линеек, через различные схемы”, — пояснил он.
Лаверинг считает, что новизна Oslo как инструмента разработки заключается в том, что массовому пользователю не придется долго осваивать эту платформу: “Скажем так, если вы применяете Microsoft Access, она покажется вам достаточно знакомой”.
В сущности, как пояснил Лаверинг, это интерактивный инструмент разработки базы данных: “Так, Access и Excel... можно рассматривать в качестве его упрощенных вариантов, но следует быть осторожнее при подобных сравнениях, а то они могут далеко завести. Я лишь пытаюсь дать вам общее представление об основной идее. Это не то же самое, что Access и Excel, но они лучше всего подходят для сравнения, если вы еще не работали с новой платформой”.
Дэвид Чэппелл, руководитель компании David Chappell & Associates, успел познакомиться с некоторыми технологиями Oslo. “Это инструмент для работы с данными и создания данных”, — поделился он своими впечатлениями.
По словам Лаверинга, новый инструмент дает пользователям возможность представлять имеющиеся знания в нужном им виде. Кроме того, он будет полезен при построении сложных диаграмм, например, необходимых для разработки уведомлений о бизнес-процессах (Business Process Modeling Notification, BPMN) в потоках работ и сервисов на основе языка UML (Unified Modeling Language).
Язык Microsoft D
Тем временем в целях ускорения разработки контента для Oslo Microsoft создала язык D. Зачем потребовался новый язык? “Потому что для создания Oslo нам необходима революция в области производительности труда разработчиков, — заявил Стивен Луччо, инженер из Microsoft Developer Division, который участвовал в формировании концепций подразделения CSD и платформы Oslo. – Сегодня разработчики помешались на объектно-ориентированном программировании. У них любой элемент данных должен быть инкапсулирован в объект, представляющий собой машину Тьюринга. И вы не имеете никакой возможности проанализировать, что происходит там внутри. Кроме того, это совершенно не похоже на программирование с помощью языка SQL, когда вы можете как угодно манипулировать данными, а в последующем различные программы способны обращаться к одним и тем же данным. Мы сформулировали свою задачу следующим образом: «Как нам добиться того, чтобы написание основной массы программ больше напоминало программирование на SQL, но без присущих ему, как часто утверждают, сложностей?»”.
Однако, чтобы пользоваться Oslo, нет необходимости изучать язык D. “Этот язык — что-то вроде технических деталей, предназначенных для определенной категории пользователей”, — сказал Лаверинг.
Дон Бокс, который связан по работе с создателями языка, добавил: “Вы не обязаны его знать, но тем, кто предпочитает писать тексты программ вручную, он понравится”.
Более того, как считает Лаверинг, язык для Oslo нелегок в изучении: “Наши специалисты по базам данных добиваются с его помощью больших успехов... Наши разработчики Dynamics, которые, в сущности, создают базы данных для приложений, говорят, что давно хотели бы иметь что-то в этом роде”. Тем не менее, по утверждению Лаверинга, изучение этого языка требует технической подготовки. “Он труднее в использовании, чем Visual Basic, и значительно труднее, чем Excel, — подчеркнул он. — Будет ли труднее написать эффективную программу на нем, чем на C#? Не обязательно”.
По словам Лаверинга, язык для Oslo является новаторским, с новаторской системой типов данных: “Он очень подходит для создания структурированных данных и эффективно используется нами для работы с SQL, поскольку позволяет создавать синтаксис SQL”.
Microsoft применяет данный язык при разработке репозитория контента для Oslo. При этом она стремилась как можно меньше отдаляться от SQL и подумывала о генерации синтаксиса T-SQL (Transact-SQL). “Однако я решил, что T-SQL недостаточно распространен, чтобы обеспечить тот широкий охват пользователей, к которому я стремился”, — пояснил Лаверинг.
В целях создания языка для Oslo он обратился к некоторым исследователям Microsoft и воспользовался отдельными разработками в области языков программирования баз данных. Большое влияние оказали на него функциональный язык программирования ML, а также LISP.
“Язык создавался с очень сильной ориентацией на РСУБД, поэтому у нас получилась весьма четкая схема (mapping), — рассказал Лаверинг. — Но язык не имеет жесткой привязки к РСУБД или к реляционной модели. В сущности он разработан для абстрактной модели данных. Саму программу мы также представляем в виде той же абстрактной модели данных. Эта идея заимствована из языка LISP. Как вы знаете, там вся программа встроена в структуру данных, которыми она оперирует”.
Кроме того, язык для Oslo отчасти использует TLA+ — язык, разработанный исследователем из Microsoft Лесли Лэмпортом.