среда, 26 мая 2010 г.

Ключевые направления развития разработки программного обеспечения


Перевод статьи Key Software Development Trends

 

Больше чем когда либо раньше, нынешние разработчики открыты для обсуждения и использвания большого количества технологий, и готовы использовать их для беспрепятственного создания решений и быстрой их отправке своим заказчикам. Число стилей програмирования доступное для разработчиков посторянно увеличивается. Наша цель – обеспечить максимально возможную поддержку всех стилей программирования в наших инструментах, для того, что бы сделать возможным беспрепятственное создание любого продукта хорошего качества.
В области разработки программного обеспечения в данный момент формируется несколько направлений. Ниже представлены самые важные направления, о которых я думал в последнее время. Этот список не является полным и завершенным, но каждое из представленных направлений представляет область, которую Microsoft исследует или собирается это сделать, для того что бы предоставить возможность их использования нашим заказчикам.

Облачные вычисления

Облачные вычисления позволяют компаниям использовать только те вычислительные ресурсы которые им необходмы в данный момент. Облачные вычисления выравнивают условия и затраты на размещение решений для маленьких компаний, делая их такими же как и у больших, устоявшихся компаний с благоразумной и предсказуемой ценой. Windows Server, Windows Azure, SQL Azure и такие сервисы как Windows Live, Office и Xbox Live теперь находятся в облаке. Microsoft предоставила наилучшую облачную платформу и сервисы для экосистемы Windows. Облако - это только один пример виртуальной вычислительной платформы, и следующие поколения инструментов для разработчиков должны делать возможным для разработчиков создание программного обеспечения, которое загружается и выполняется как в облаке, так и в других виртуальных окружениях.

Веб как платформа

Браузер предлагает окружение с богатой средой выполнения и беспрепятственный доступ к приложениям. Разработчики все больше выбирают веб, как платформу для создаваемого программного обеспечения и его разработки.
Все больше и больше, разработчики и дизайнеры используют средства разработки, которые предлагают практически безграничные возможности для разработки, отладки и профилирования решений адаптированных для работы в веб. Нынешние библиотеки JavaScript позволяют веб разработчикам сделать больше с использованием JavaScript, чем когда бы то ни было раньше. Такие решения становятся доступными все для большей аудитории посредством интернет-приложений, например написанные на Silverlight. Они позволяют разработчикам уйти от ограничений, налагаемых языком HTML и используют преимущества большого количества ресурсов и всевозможных средств, которые гарантируют совместимость на различных платформ.

Параллельные вычисления

Закон Мура, который предсказывал что производительность компьютеров будет удваиваться каждые восемнадцать месяцев, сегодня реализуется путем добавления новых ядер процессоров, а не увеличением производительности одного ядра, как это было раньше. Это делает возможным использование многоядерного выполнения на бюджетных компьютерах. Новые направления в вычислениях используют преимущества недорогих и широкодоступных настольных графических процессоров для разных задач. В области высокопроизводительных вычислений, центры супервычислений используют многоядерные кластеры для выполнения сложных вычислительных задач. Сегодня, немного программистов обладают достаточными знаниями для написания кода, который хорошо будет выполнятся в многоядерном окружении. В будущем, параллельные библиотеки, необходимые средства отладки, профилирования и диагностики разрабатываемых систем позволят большему числу разработчиков получать выгоду от параллельно вычисляемых ресурсов.

Распространение устройств

Вместе с увеличением доступности недорогих устройств у которых есть доступ в интернет, мы все хотим получать доступ и пользоваться своими данными в соответствии с возможностями устройств, которые мы используем. Мы ожидаем, что получение доступа к нашим учетным записям и данным в онлайне будет простым и безопасным. Сегодня Microsoft предоставляет доступ к данным пользователей через Windows Live и XBOX Live. Вместе с распространением различных устройств широкое распространение получили и новые парадигмы пользовательских интерфейсов, которые предоставляют есстественное и интуитивное взаимодействие с этими устройствами. Решения, основаные на сенсорном доступе, использовании голоса и видео-камеры становятся доступными и эффективными в плане строимости. Microsoft развивает программное обеспечение для того, что бы получить выгоду от перечеисленных возможностей и создать интуитивный пользовательский интерфейс. Windows 7 обеспечивает огромную поддержку приложении с сенсорным доступом. Silverlight и WPF предоставляют средства для работы с видео-камерами и сенсорным доступом, то же самое имеется и у технологии MFC. Я думаю, что парадигмы пользовательского интерфейса будут продолажть развиваться и станут еще более эфективными и более удобными.

Разработка с использованием гибких методологий

Разработка с использованием гибких методологий, включая Scrum, разработку через тестирование и непрерывную интеграцию – приемы распространенные в разработке корпроративных решений и небольших студиях разработок, часто используются в комбинации с другими известными практиками разработки. Внутри Microsoft, многие команды используют приемы гибких методологий в своем рабочем процессе. Visual Studio 2010 открывает дверь для подобных методик, предлагая поддержку гибких процессов таких как блочное тестирование и итерационное планирование. Мы будем продолжать поддерживать больше гибких методологий и в будущем.

Распределенная разработка

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

В заключение

Это не завершенный список возможных направлений, который охватывает все факторы всех областей, но некоторые из них могут действительно придать импульс для развития области разработки программного обеспечения. Мы рады познакомится с вашим видением будущего: какой из этих трендов по вашему мнению будет наиболее важным в будущем? Эти направления входят в данный список? Оставте комментарий с вашим видением данного вопроса.