Служба новостей IDG, Сан-Франциско

Первая попытка Microsoft ликвидировать разрыв между обработкой данных и объектно-ориентированным программированием
Андерс Хейльсберг: «Сегодня разработчики хотят не только определять задачи, решаемые с помощью тех или иных программ, но и в мельчайших подробностях расписывать порядок решения этих задач»

Технический консультант корпорации Microsoft Андерс Хейльсберг (именно ему приписывается авторство архитектуры .Net) считает себя также ответственным за предоставление разработчикам инструментальных средств, которые позволили бы в долгосрочной перспективе осуществлять проектирование все более сложных приложений.

По его словам, новая технология .Net Language Integrated Query (LINQ) — ее презентация состоялась на организованной корпорацией Microsoft конференции Professional Developers Conference — позволит гиганту программной отрасли еще на шаг приблизиться к решению одного из наиболее болезненных для разработчиков вопросов. Он связан с интеграцией различных источников данных в приложениях, создаваемых в рамках объектно-ориентированной модели программирования.

«Сегодня разработчики хотят не только определять задачи, решаемые с помощью тех или иных программ, но и в мельчайших подробностях расписывать порядок решения этих задач, — пояснил Хейльсберг. — В то же время преимущества, которые мы получаем от роста производительности процессора и увеличения объемов памяти, сводятся на нет отсутствием инфраструктуры, располагающей механизмами гибкого решения поставленных задач».

Один из путей достижения поставленной цели заключается в упрощении интеграции реляционных баз данных с приложениями .Net. Появление технологии LINQ — это первая попытка Microsoft ликвидировать разрыв между обработкой данных и объектно-ориентированным программированием.

Структура, представленная разработчикам в качестве технологической новинки на конференции, добавляет к .Net возможность формирования запросов к источникам данных. А поскольку эти функции применимы к любым типам данным, разработчики смогут осуществлять выборку информации из самых различных источников, в том числе из баз данных, документов XML, а также непосредственно из кода Visual Basic и C# (VB и C# — два основных языка программирования, с помощью которых создаются приложения .Net) .

В настоящее время наиболее общим способом переноса информации из баз данных в приложения .Net является механизм SQL (structured query language). Однако синтаксис SQL принципиально отличается от синтаксиса языков C# и VB, используемых разработчиками .Net для проектирования приложений, а объединение конструкций двух разных языков в рамках единой структуры требует слишком большого объема работы по кодированию.

«Программисты, занимающиеся проектированием корпоративных приложений, которые предусматривают обработку данных, говорят, что их работа больше напоминает работу водопроводчика, стыкующего трубы разного диаметра и назначения, чем программиста, потому что для получения доступа к информации им приходится объединять два совершенно разных языка, — подчеркнул Хейльсберг. — Языки C# и Visual Basic не понимают языка запросов».

Еще один недостаток SQL заключается в том, что он позволяет создавать запросы только к реляционным базам данных. Если разработчику требуется извлекать нужную информацию из документов XML или какого-то другого источника, отличного от базы данных (а сегодня подобные источники все чаще встречаются в корпоративных приложениях), он вынужден искать альтернативный путь. Таким образом, даже в части составления запросов SQL не обладает необходимой универсальностью.

Предполагается, что в конечном итоге LINQ будет поддерживать все языки, используемые для разработки приложений .Net.

«Нам бы хотелось создать единую программную модель для объектов, реляционных данных и XML», — пояснил Хейльсберг

Ожидается, что внедрение новой технологии будет способствовать повышению производительности труда разработчиков программного обеспечения .Net, поскольку им больше не придется применять для обработки данных в корпоративных приложениях две программные модели. Кроме того, при решении новых задач они смогут опереться на уже имеющиеся знания. Таким образом, в процессе разработки им не нужно будет приобретать многочисленные дополнительные навыки.

«Избранный нами путь разработки предполагает использование ранее накопленного материала и добавление к нему недостающих компонентов, — отметил Хейльсберг. — Задачи, которые сегодня приходится решать с помощью архитектуры .Net или языков .Net, значительно шире возможностей языка запросов. Поэтому, когда речь заходит о добавлении архитектуры .Net к механизмам обработки запросов или функций обработки запросов к архитектуре .Net, гораздо проще реализовать последнее. Именно этим мы сейчас и занимаемся».

Пока представители Microsoft ничего не говорят о том месте, которое технология LINQ займет в портфеле продуктов корпорации. Но с большой долей вероятности можно предположить, что она будет интегрирована в будущие версии базы данных Microsoft SQL Server и среды разработки Visual Studio.