company_banner
22 марта в 17:54

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

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



Вот уже более одиннадцати лет я занимаюсь языками программирования .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. Мне бы хотелось, чтобы всякий раз, когда мы осуществляем определенный выбор, вы понимали, в чём причина такого решения. Когда есть недопонимание, возникают неоправданное опасение или спекуляции. Кроме того, вам необходимо принимать бизнес-решения, которые сильно зависят от того, насколько хорошо вы понимаете наши намерения.

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


Если вы увидели неточность перевода, сообщите, пожалуйста, об этом в личные сообщения.
Автор: @Schvepsss Mads Torgersen
Microsoft
рейтинг 239,38
Microsoft — мировой лидер в области ПО и ИТ-услуг

Комментарии (29)

  • 0
    F# имеет фантастический инструментарий по сравнению с большинством других языков в этом списке, он всё же не может сравниться с богатством возможностей C# и Visual Basic.

    Че вообще за бред? Record types, Discriminated unions, Pattern matching, Type providers, Крутая ситема типов, офигенно мощный компилятор, итд итп. Да в F# асинхронизм появился когда C# еще пешком под стол ходил. Не стыдно вам такую феерическую охинею писать(или переводить) ?

    • +3

      Если честно меня тоже очень сильно удивило — ведь F# всегда по возможностям опережал C#. Я даже не знаю чем именно C# богаче. Собственно именно поэтому у F# всегда были такие ярые фанаты.


      Но все равно так резго и грубо отзываться тоже не стоит — автор оригинала статьи не какой то левый человек c улицы, а человек который отвечает за развитие .net. Надо понять почему у него такая точка зрения. Статья старая, я читал оригинал примерно пару месяцев назад, и еще тогда остался в замешательстве. А автору статьи спасибо, просто и понятно доносит стратегию которая видит Microsoft на понятном русском языке, (иначе Вы бы не смогли узнать вообще об этой стратегии и так бурно возмутиться).

      • 0

        Да вы правы, я вспылил. Не ожидал конечно такой неосведомленности. Насколько я понимаю F# до сих пор пилится MS Research и этот человек ничего особо не мог и не может знать о продукте другой команды.

        • +4

          Я полез в оригинал еще раз. Там все таки скорее всего не об этом говорится.
          "it doesn’t quite measure up to the rich and polished experience of C# and VB."
          Ну т.е. можно перевести как очень большой опыт работы с C# и VB. С этим трудно не согласиться. Практически все самые лучшие книги по разработке в срезе .NET — все исключительно на C#. Если дело доходит до практической реализации (ASP.NET, WPF, Xamarin, Unity и т.д.) — все книги на C#.


          В этом плане "опыт" F# просто не сранится с опытом на C#. Так что можно просто списать на неточность перевода.


          Я сам хочу в следующем году написать книгу о применении F# на практике. А то большинство книг по F# о самом языке F# а не о его применении в практике.

          • +2

            Да я тоже после заметил, я бы сказал что тут речь шла об опыте применения, тогда конечно C# используют миллионы по всему миру.

            • 0
              Спасибо за то, что обратили внимание на эту неточность. :) Исправила в материале.
          • 0
            Я сам хочу в следующем году написать книгу о применении F# на практике. А то большинство книг по F# о самом языке F# а не о его применении в практике.
            Книги есть, но их, к сожалению, никто не спешит переводить.

            Мне F# понравился, хелловорлды пописал, а дальше… Вакансий по F# нет даже в России, не то что в регионе. Глубже изучать и негде, и незачем.
    • +7
      Просто перевод не очень точный. Тут речь идет именно про тулинг, у f# он все-таки слабее.
  • 0
    Респонденты на Stack Overflow отнеслись к Visual Basic неблагосклонно: он получил первое место в списке языков, которым пользователи предпочли бы найти замену.

    Все нормально язык это заслужил, напомнить вам, как минимум 3 различных вида назначения скобок в этом чудном языке?

  • +3
    Интересный у вас ник)
    • 0

      Это триграмма ничего общего не имеет с языком, уж поверьте. Это как MSI может быть Must Sign In.

  • +2
    Что-то о стратегии C# так ничего и не было сказано. Перечислено появление фич по версиям и всё.
  • –2
    Сишарп, увы, уже не тот:

    https://www.tiobe.com/tiobe-index/csharp/

    и это не взирая на то, что отрыли код.
  • 0
    Сделайте WPF на Linux. Использую C# только ради этого прекрасного фрэймворка. И очень не хватает его на других платформах.
    • +2
      Вы можете помочь проекту AvaloniaUI. Например товарищ kekekeks там принимает участие :)
      • +4

        А что кекекекс. Кекекекс сегодня поддержку вывода через /dev/fb0 и ввода через evdev прикрутил.

        • 0
          kekekeks
          Подскажите AvaloniaUI совместима с Mono?
          • –1

            Собрать её xbuild-ом не получится, а через нугет к моно подключить можно, да.

            • +1

              Не хватает подробного мануала как все же нормально использовать Skia в связке с mono.

              • 0

                Потому что у M0И0 ущербно сделана поддержка распространения нативных бинарников. Вернее, она отсутствует и предлагается использовать костыль в виде dllmap, который не умеет работать с файлами в произвольных директориях.
                А вообще берётся вот этот пакет, из него распаковывается libSkiaSharp.so и кладётся куда-нибудь в /usr/local/lib, где библиотеку самостоятельно находит dlopen. Ну или через LD_LIBRARY_PATH.

          • 0

            Не очень прозрачно) skia бекэнд у меня не работает, а cairo — глючный.

  • +2
    Эх в своё время мне очень VB6 нравился — а как на .NET перешли так Visual Basic я забросил.
    Сейчас на мой взгляд C# однозначно лучше.
  • +1
    Откуда такая ненависть к старичку VB? Читабельный и удобный синтаксис, куча возможностей от платформы. Просто белый и пушистый кролик, пнуть которого считает своим долгом каждый мимо проходивший…
    • +2

      Этому языку место в музее, тогда его пинать не будет каждый мимо проходящий. Каждому конечно свое, но я не знаю где вы в нем читабельность и удобный синтаксис узрели. А чего стоит explicit mode/option, которая кстати по умолчанию. Хотя если сравнивать с коболом то вб наверное лучше будет.

      • 0
        В музей пора отправлять те вещи, которые не соответствует современности, что и проделали с VB6. А VB.NET не стоит на месте и развивается вместе с платформой. Читабельность я вижу в наглядности завершения блоков кода словами, а не скобками, особенно если их много. Ну а опция explicit дана вам на выбор — хотите включите, хотите отключите. Так что претензия была бы обоснована в том случае, если если бы этого выбора не было…
        • 0
          А VB.NET не стоит на месте и развивается вместе с платформой.
          Со стороны это конечно выглядит как, вб тщательно стараются растягивать и натягивать на платформу всякий раз когда появляются новые фичи. Вспомните дженерики со скобками.
          • 0
            А я думаю, что его просто переделали в новый язык, поменяв внутренности, но оставив старую обёртку. Ну из-за одних скобок сливать весь язык — это тоже самое, что сжечь автомобиль из-за царапины на кузове. Выбор языка — дело вкуса — каждому свое. И если кому-то не нравятся пирожки с карточкой, то это не повод говорить, что они плохие. Вы просто не умеете их готовить (с)
  • 0
    Кстати, появился опрос за 2017 год.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка