Visual Basic est l'homme étrange dans le nouveau .NET

Dans une série d'articles de blog la semaine dernière, Microsoft a détaillé les changements fondamentaux dans la façon dont il développe ses langages .NET. C'était une bonne nouvelle pour les développeurs C # et F #, mais si Microsoft a donné une tournure positive à ce que les changements signifiaient pour Visual Basic, l'avenir à long terme du vénérable langage semble moins certain.

Le Visual Basic de Microsoft a longtemps été l'un des langages les plus utilisés au monde, sinon l'un des langages les plus utilisés, et il a vraiment placé Microsoft au centre de la scène d'entreprise. Depuis ses six premières itérations en tant que langage pour le développement d'applications client-serveur jusqu'à sa renaissance dans le cadre de la plate-forme .NET, Visual Basic a été l'outil incontournable pour le développement rapide d'applications d'entreprise. C'est en partie à cause de sa bibliothèque massive de composants d'interface utilisateur, ainsi que de connecteurs vers des bases de données communes et d'un modèle de composant qui permet à des tiers de créer des entreprises en fournissant des fonctionnalités supplémentaires.

Le passage à .NET en tant que fondement de la stratégie de développement de Microsoft avait du sens pour les nouveaux langages comme C #, mais cela impliquait des modifications de Visual Basic dans lesquelles le code ne pouvait pas facilement migrer de l'ancien Visual Basic vers le nouveau VB.NET.

Ce fut une transition difficile pour les développeurs, et Visual Basic a commencé à perdre sa part d'esprit au sein du développement d'entreprise et au sein de Microsoft. Même ainsi, Microsoft a promis de garder C # et VB.NET synchronisés. Les fonctionnalités créées pour C # feraient partie de Visual Basic, les deux langages se développant ensemble. La raison en était qu'ils étaient souvent utilisés pour la même tâche et avaient la même nature sous-jacente: deux langages orientés objet fortement typés fonctionnant avec les mêmes outils.

Visual Basic et C #: une nouvelle divergence est à venir

Avec l'annonce de la semaine dernière, cette co-évolution a disparu. Microsoft laissera les deux langages suivre des chemins différents, à commencer par le prochain Visual Basic 15.

Ce n'est pas un divorce surprenant. La popularité de C # a augmenté à pas de géant, tandis que Visual Basic a lentement glissé dans les graphiques, disparaissant presque du radar des sites de requêtes de programmation populaires tels que Stack Overflow. Les cas d'utilisation changent également: Visual Basic est toujours concentré sur son paradigme client-serveur d'origine, tandis que C # est devenu un outil pour les applications Web de niveau n , fonctionnant dans le cloud et sur site. Avec de plus en plus d'applications conçues pour fonctionner avec le Web et le cloud, il n'est pas surprenant que C # devienne le premier choix pour de nombreux projets.

Il y a aussi des changements dans la façon dont les langues sont développées. C # est passé à un modèle de conception ouvert, ce qui signifie que ses utilisateurs sont aux commandes pour prioriser les nouvelles fonctionnalités, grâce à une liste de diffusion active et un référentiel GitHub public. Microsoft a déjà pris de nouvelles fonctionnalités de l'extérieur de l'entreprise - un grand changement par rapport à ses processus traditionnels d'ingénierie linguistique qui se concentraient sur ses groupes de recherche et ses équipes internes de gestion de produits.

Visual Basic a également un modèle de conception ouvert, mais il a des priorités différentes de C #. Il prend déjà en charge un sous-ensemble des fonctionnalités de C # dans ses versions actuelles dans le cadre de la version candidate de Visual Studio 2017.

Comme C # continue de diverger de Visual Basic, nous allons voir les deux langages se développer séparément, bien qu'ils devraient pouvoir fonctionner ensemble. Les deux doivent toujours adresser les mêmes API .NET et les deux feront toujours partie des outils Visual Studio.

Ce que ces changements signifient pour les développeurs d'entreprise

Pour le moment, les entreprises ont très peu à faire face à cette divergence à venir.

Mais à l'avenir, il y a certainement de la place pour le travail multiplateforme dans Visual Basic, car il passe à la prise en charge de l'ensemble .NET Standard de bibliothèques de classes de base aux côtés du .NET Framework familier. Bien que certains codes soient portables, tous les codes Visual Basic ne pourront pas passer d'un ensemble de bibliothèques à un autre ensemble plus petit. Il est probable que le code existant restera uniquement sous Windows et uniquement dans les applications sur site.

En tant que développeur, vous allez devoir choisir entre apporter du code Visual Basic sur de nouvelles plates-formes via .NET Standard ou passer à des langages comme C # qui offrent une plus large gamme de frameworks et d'appareils cibles.

Étant donné que .NET Standard est destiné à toutes les plates-formes .NET, il s'agit d'un égaliseur important. Cependant, ce n'est pas nécessaire pour tous les langages .NET. Bien que Visual Basic en ait besoin sur les systèmes qui ne disposent pas du .NET Framework complet, C # pourra adresser directement des plates-formes comme .NET Core, en accédant à ses API. Cela permet également aux dérivés C #, comme Unity, de prendre plus facilement en charge leurs propres API spécialisées.

C # avec prise en charge du .NET Framework sur Windows et du .NET Core open source (fonctionnant sur Nano Server et dans des conteneurs) deviendra le premier choix pour le cloud et pour les applications mobiles, tandis que le modèle de programmation fonctionnelle F # sera idéal pour les services financiers et les applications qui reposent sur l'apprentissage automatique.

L'acquisition de Xamarin par Microsoft est un facteur clair de ces changements. Microsoft a besoin d'un ensemble d'outils multiplateforme pour prendre en charge une gamme plus large d'appareils mobiles, Windows Mobile ne réussissant pas à gagner des parts de marché comme espéré. Même dans les zones géographiques compatibles avec Windows Mobile comme le Royaume-Uni, iOS et Android représentent ensemble plus de 80% du marché. Les développeurs Microsoft souhaitant créer des frontaux mobiles pour leurs applications devront utiliser des outils tels que Xamarin pour cibler les plates-formes mobiles dominantes.

Avec Xamarin se concentrant sur C #, Microsoft doit préciser que C # est le langage .NET de première classe pour l'avenir. Bien que ce ne soit pas explicite dans les récentes annonces linguistiques de Microsoft, c'est fortement implicite.

Comment gérer la stratégie linguistique de votre entreprise

Ce n'est pas un adieu à Visual Basic, mais il est temps de faire le point sur où vous en êtes et où vous voulez être. Les applications Visual Basic existantes peuvent continuer à être développées, mais à mesure que la plate-forme .NET sous-jacente évolue, vous devez vous attendre à ce qu'un seul sous-ensemble d'API .NET soit disponible pour vos développeurs Visual Basic. Bien que ce ne soit probablement pas un problème à court terme, vous devez vous préparer à une migration à plus long terme vers C # ou F #, en particulier si vous prévoyez des expériences utilisateur mobiles ou multiplateformes pour vos applications.

Il semble clair que la meilleure option pour éviter le surendettement technique est de faire du C # votre priorité pour les nouveaux développements. C # a un support de première classe et un modèle de conception orienté utilisateur. C'est également le cœur du développement multiplateforme de Microsoft et de sa plateforme Windows universelle. Cela signifie que vous pouvez écrire une seule fois la logique métier, puis proposer des expériences utilisateur personnalisées pour le Web, Windows 10, iOS, Android et MacOS. Il existe également suffisamment de points communs entre les langues pour que les développeurs puissent effectuer les transitions relativement facilement, en choisissant de nouvelles fonctionnalités après la formation initiale.