Стратегия развития языков программирования .NET

в 14:54, , рубрики: .net, C#, F#, microsoft, visual basic, Visual Studio, Блог компании Microsoft

Мэдс Торгерсен (Mads Torgersen), занимающийся больше 11 лет развитием .NET-языков в Microsoft, поделился описанием принципов, которыми руководствуется его команда, принимая решения о развитии каждого языка. Передаю слово Мэдсу.

Стратегия развития языков программирования .NET - 1

Вот уже более одиннадцати лет я занимаюсь языками программирования .NET в компании Microsoft, и все это время, развивая языки, мы старались в первую очередь учитывать интересы разработчиков. Благодаря революции открытого исходного кода (в отношении не только языков программирования .NET, но и всего стека .NET) был кардинально улучшен диалог с разработчиками, и это, на мой взгляд, помогло нам осуществлять более правильный выбор. Однако не всегда нам удавалось поделиться с вами тем, как именно мы принимали эти решения. Речь идет о нашей стратегии развития языков программирования: концепции каждого языка .NET и планах его развития.

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

C#

C# используют миллионы людей.

Согласно проведенному опросу разработчиков на Stack Overflow, C# был признан одним из самых популярных языков программирования в 2016 году. По популярности его обошли лишь Java и, конечно же, JavaScript (SQL не рассматривается в качестве языка программирования, но не будем спорить об этом). На эти результаты мог повлиять уровень популярности сайта Stack Overflow в разных языковых сообществах, но без сомнений, С# однин из самых распространенных языков программирования. Он широко используется в различных направлениях: игры на движке Unity, мобильные приложения в Xamarin, веб-приложения в ASP.NET, бизнес-приложения в Windows, микрослужбы .NET Core в Linux на платформах Azure и Amazon Web Services (AWS) и многое другое.

Также интересен факт, что в другом опросе на Stack Overflow про 10 самых любимых языков и технологий из предыдущего опроса вошли только С# и Python.

После стольких лет люди продолжают любить C#! Почему? Всё это время мы развивали его с прагматичностью и своим стилем, решая новые задачи и не меняя при этом саму суть языка. C# считается мощным, эффективным и простым в использовании языком. Он и обычно ассоциируется с .NET, поскольку друг без друга у них нет будущего.

Стратегия развития C#

Мы будем продолжать развитие C#, чтобы «идти в ногу» с растущими потребностями разработчиков и сохранить лидирующие позиции. Мы будем активно внедрять новшества, стараясь при этом сохранить особый «дух». Учитывая разнообразие аудитории разработчиков, мы обратим особое внимание на повышение производительности и улучшение языка, которые будут полезны для большей части из вас. Мы продолжим расширение экосистемы и усиление её роли в определении направления развития языка С#, сохраняя полный контроль над проектными решениями для обеспечения постоянной согласованности.

Каждая следующая версия C# содержит существенные улучшения: универсальные шаблоны в C# 2.0, LINQ и большое количество функциональных улучшений в C# 3.0, тип dynamic в C# 4.0, async в C# 5.0 и целый набор небольших, но полезных функций в C# 6.0. Многие возможности добавлялись для адаптации к новым вариантам использования, а начиная с версии C# 5.0 особое внимание уделяется подключенным устройствам и службам, скорости таких подключений и обработке потоков данных, идущих через них. Не будет исключением и новая версия C# 7.0, основными нововведениями которой являются кортежи и сопоставление шаблонов, позволяющие преобразовать и упростить работу с потоком данных и управление в коде.

Начиная с версии C# 6.0 мы начали делиться заметками разработчиков языка на GitHub. Всё чаще новые фичи появляются в диалоге с сообществом, иногда доходит до того, что Microsoft воспринимается как один из «contributors».

Описание процесса разработки языка C# опубликовано на GitHub в разделе dotnet/csharplang, а обсуждение происходит в рассылке csharplang.

Visual Basic

Visual Basic используют сотни тысяч людей.

Большинство из них используют WinForms для создания бизнес-приложений для Windows, а некоторые весьма умело пользуются возможностями веб-форм ASP.NET для создания веб-сайтов. Большинство из них также используют C#. Для многих разработчиков это обусловлено требованиями к языку в различных проектах, над которыми они работают. Однако, выходя за рамки основных вариантов использования Visual Basic, многие не раздумывая переходят на C#, даже если можно использовать Visual Basic. Экосистема, примеры и сообщество для C# зачастую оказываются обширнее.

В Visual Studio мы видим интересную тенденцию: процент использования Visual Basic среди новых разработчиков вдвое больше, чем среди всех разработчиков. Это говорит о том, что Visual Basic продолжает играть роль качественного и доступного языка для знакомства с программированием и подходит для тех, кто осваивает как платформу, так и разработку вообще.

Респонденты на Stack Overflow отнеслись к Visual Basic неблагосклонно: он получил первое место в списке языков, которым пользователи предпочли бы найти замену. Считаю, что к этому стоит отнестись с некоторой долей скептицизма. Во-первых, в число этих людей могут входить разработчики VB6, которых нельзя винить в желании двигаться вперед. Кроме того, Stack Overflow — это не основная среда обитания разработчиков Visual Basic, так что если вы решили принять участие в опросе, то это, скорее всего, потому что вы уже посещали Stack Overflow, будучи поклонником другого языка программирования. Наконец, более глубокий взгляд на эти результаты показывает, что большинство разработчиков Visual Basic предпочли бы перейти на C#, что может свидетельствовать скорее об их желании сфокусировать свое развитие в области .NET на одном языке, чем о том, чтобы просто отказаться от Visual Basic.

С учётом всего вышесказанного такая статистика заставляет задуматься. Похоже, что многие из тех, кто использует Visual Basic, чувствуют себя отстающими или сомневаются в будущем языка. Давайте воспользуемся представившейся возможностью разобраться с данным вопросом!

Стратегия развития Visual Basic

Мы будем поддерживать Visual Basic как простой и доступный язык. Мы сделаем всё необходимое, чтобы он оставался одним из основных языков среды .NET: например, если при добавлении новых возможностей в C# изменяется какой-либо API, то использование этого API в Visual Basic должно выглядеть так же естественно. С учётом того, что многие разработчики используют и Visual Basic, и C#, мы сохраним принцип использования кросс-языкового инструментария. Мы сосредоточим выпуск обновлений в популярных для Visual Basic областях и сценариях использования.

Это отступление от той стратегии совместного развития, которой мы придерживались в 2010 году, когда C# и Visual Basic следовали общему курсу. Следование за стремительно эволюционирующим C# не только является проигрышной стратегией для Visual Basic, но и отрицательно сказывается на простоте и доступности, которые являются его ключевыми преимуществами.

В Visual Studio 2015 Visual Basic 14 и C# 6.0 в основном продолжали развиваться совместно и имели много общих усовершенствований: операторы с условием NULL (?.), NameOf и так далее. При этом в обоих языках были устранены некоторые специфические для каждого из них недостатки. Например, в Visual Basic появились многострочные строковые литералы, комментарии после неявного продолжения строки и многое другое. В это же время в C# появились функции и свойства в теле выражений (expression-bodied members), а также другие возможности, которым нет места в Visual Basic.

В VB 15 появятся некоторые из новых возможностей C# 7.0. Кортежи полезны не только сами по себе, но и благодаря тому, что обеспечивают совместимость, так как они будут использоваться в подписях API. Тем не менее в Visual Basic 15 не будет таких возможностей, как выражение is, выходные переменные (out-variable) и локальные функции, которые принесут больше вреда, например, ухудшат читабельность языка.

Описание процесса разработки языка Visual Basic опубликовано на GitHub в разделе dotnet/vblang, f обсуждение происходит в рассылки vblang.

Более подробно стратегия развития Visual Basic описана в этой статье.

F#

Язык F# используют десятки тысяч людей.

Он стремительно развивается и демонстрирует перспективы дальнейшего роста. Являясь универсальным языком, он имеет довольно широкое применение, но особенно актуально его использование в облачных и веб-сервисах, инструментах и утилитах, аналитических рабочих нагрузках и обработке данных.

F# занял высокую позицию в рейтинге любимых языков программирования: люди просто любят работать в нём! Несмотря на то, что F# имеет фантастический инструментарий по сравнению с большинством других языков в этом списке, он всё же не может сравниться с богатством возможностей C# и Visual Basic. Многие нововведения значительно способствуют прогрессу языка. Всё больше разработчиков для среды .NET (как внутри, так и за пределами Microsoft) считают F# языком программирования, который нужно учитывать и осваивать.

У F# невероятно заинтересованное сообщество, которое играет очень важную роль в его развитии и постоянном совершенствовании, не в последнюю очередь благодаря полностью открытому процессу разработки языка. Это абсолютный лидер среди языков .NET с открытым исходным кодом, существенный вклад в его разработку осуществляется за пределами Microsoft.

Стратегия развития F#

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

На основе мощного функционального наследства семейства языков ML и глубокой интеграции с платформой .NET, F# получил ряд новаторских возможностей. Поставщики типов, активные шаблоны и вычислительные выражения предлагают потрясающие возможности для тех, кто готов шагнуть вперед и освоить этот язык. F# больше всего нуждается в устранении препятствий на пути его принятия на всех уровнях.

F# 4.1 содержит значительное улучшение инструментария в Visual Studio за счет интеграции с абстракцией рабочего пространства редактора Roslyn, направленности на .NET Core и .NET Standard, а также улучшенных сообщений компилятора об ошибках. Значительная часть оптимизации инструментария Visual Studio (в том числе улучшенные сообщения об ошибках) является результатом активного участия сообщества F#. В будущем мы намерены работать как с сообществом F#, так и c другими специалистами в Microsoft, чтобы обеспечить F# лучшим в своем классе инструментарием и сделать его функциональным языком программирования с лучшим инструментарием на рынке.

Описание языка F# можно найти в репозитории с предложениями на GitHub и RFC.

Заключение

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

Удачи в разработке!


Если вы увидели неточность перевода, сообщите, пожалуйста, об этом в личные сообщения.

Автор: Microsoft

Источник

Поделиться

* - обязательные к заполнению поля