Visual Basic - странный человек в новом .NET

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

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

Переход на .NET в качестве основы стратегии развития Microsoft имел смысл для новых языков, таких как C #, но он означал изменения в Visual Basic, в которых код не мог легко перенести со старого Visual Basic на новый VB.NET.

Это был сложный переход для разработчиков, и Visual Basic начал терять свою долю внимания в корпоративной разработке - и в Microsoft. Несмотря на это, Microsoft пообещала синхронизировать C # и VB.NET. Функции, созданные для C #, станут частью Visual Basic, двух языков, разрабатываемых вместе. Причина в том, что они часто использовались для одной и той же задачи и имели одну и ту же основную природу: оба строго типизированных объектно-ориентированных языка работали с одними и теми же инструментами.

Visual Basic и C #: грядет новое расхождение

С объявлением на прошлой неделе этой совместной эволюции больше нет. Microsoft позволит двум языкам пойти разными путями, начиная с Visual Basic 15, который скоро будет выпущен.

Развод не удивительный. Популярность C # росла не по дням, а по часам, в то время как Visual Basic медленно скатился вниз по диаграммам, почти исчезнув с радаров популярных сайтов программирования запросов, таких как Stack Overflow. Сценарии использования тоже меняются: Visual Basic по-прежнему ориентирован на свою исходную парадигму клиент-сервер, а C # стал инструментом для n- уровней веб-приложений, работающих в облаке и локально. Поскольку все больше и больше приложений создаются для работы с Интернетом и облаком, неудивительно, что C # становится лучшим выбором для многих проектов.

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

Visual Basic также имеет открытую модель дизайна, но имеет другие приоритеты, чем C #. Он уже поддерживает подмножество функций C # в своих текущих сборках как часть кандидата на выпуск Visual Studio 2017.

Поскольку C # продолжает расходиться с Visual Basic, мы увидим, что эти два языка развиваются отдельно, хотя они должны иметь возможность работать вместе. Оба должны по-прежнему обращаться к одним и тем же API-интерфейсам .NET, и оба по-прежнему будут частью инструментов Visual Studio.

Что эти изменения значат для корпоративных разработчиков

На данный момент предприятиям очень мало что поделать с этим грядущим расхождением.

Но в будущем, безусловно, есть возможности для кросс-платформенной работы в Visual Basic, поскольку он переходит к поддержке набора библиотек базовых классов .NET Standard наряду со знакомой .NET Framework. Хотя некоторый код будет переносимым, не весь код Visual Basic сможет перейти от одного набора библиотек к другому меньшему набору. Вероятно, что существующий код останется исключительно в Windows и только в локальных приложениях.

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

Поскольку .NET Standard предназначен для всех платформ .NET, это важный эквалайзер. Однако это не обязательно для всех языков .NET. Хотя Visual Basic потребуется в системах, в которых нет полной .NET Framework, C # сможет напрямую обращаться к таким платформам, как .NET Core, обращаясь к его API. Это также упрощает для производных от C #, таких как Unity, поддержку собственных специализированных API.

C # с поддержкой .NET Framework в Windows и .NET Core с открытым исходным кодом (работающий на Nano Server и в контейнерах) станет лучшим выбором для облачных и мобильных приложений, а модель функционального программирования F # будет идеальной для финансовых услуг. и приложения, основанные на машинном обучении.

Одним из очевидных драйверов этих изменений является приобретение Microsoft Xamarin. Microsoft нужен кроссплатформенный набор инструментов для поддержки более широкого спектра мобильных устройств, при этом Windows Mobile не сможет завоевать долю корпоративного рынка, как надеялись. Даже в таких благоприятных для Windows Mobile регионах, как Великобритания, iOS и Android вместе занимают более 80% рынка. Разработчики Microsoft, желающие создавать мобильные интерфейсы для своих приложений, должны будут использовать такие инструменты, как Xamarin, для ориентации на доминирующие мобильные платформы.

Поскольку Xamarin делает упор на C #, Microsoft должна ясно дать понять, что C # - это первоклассный язык .NET в будущем. Хотя в недавних языковых объявлениях Microsoft это явно не указано, это явно подразумевается.

Как вы должны управлять своей языковой стратегией на предприятии

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

Кажется очевидным, что лучший способ избежать чрезмерного технического долга - сделать C # своим приоритетом для новых разработок. C # имеет первоклассную поддержку и модель проектирования, управляемую пользователем. Это также сердце кроссплатформенной разработки Microsoft и ее универсальной платформы Windows. Это означает, что вы можете написать бизнес-логику один раз, а затем предоставить пользовательский интерфейс для Интернета, Windows 10, iOS, Android и MacOS. Также существует достаточная общность языков, чтобы разработчики могли относительно легко переходить друг к другу, приобретая новые функции после начального обучения.