Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

JetBrains annonce la sortie de la version 2019.3 de MPS (Meta Programming System)
La dernière mise à jour majeure de l'année pour son environnement de développement de langages dédiés

Le , par Michael Guilloux

23PARTAGES

2  0 
Un langage dédié (en anglais, Domain specific language ou DSL) est un langage de programmation dont les spécifications sont conçues pour répondre aux contraintes d’un domaine d'application précis. Il s'oppose conceptuellement aux langages de programmation classiques (ou généralistes) comme Java ou C, qui tendent à traiter un ensemble de domaines. Dans de nombreux cas, les DSL ne sont pas conçus pour être utilisés par des développeurs, mais par des non-programmeurs maîtrisant parfaitement le domaine couvert par le langage dédié.

La construction des langages dédiés diffère fondamentalement de celle d'un langage classique. Le processus de développement peut s’avérer très complexe. Sa conception nécessite en effet une double compétence dans le domaine à traiter et en développement informatique. Mais un langage dédié étant basé sur les concepts et les fonctionnalités d'un domaine spécifique, il reste un moyen efficace de décrire et de générer des programmes dans ce domaine ; ce que veut faciliter JetBrains avec MPS.

Pour en venir à la version 2019.3 de MPS, elle est un peu spéciale, car c'est la première fois que JetBrains consacre un cycle de développement complet à la stabilisation du produit. Pour les versions précédentes, l'entreprise se concentrait sur le développement de fonctionnalités, et la correction des bogues était une préoccupation secondaire. Bien que la communauté apprécie toujours une version avec beaucoup de fonctionnalités, JetBrains a également reçu de nombreuses demandes d'amélioration des performances et de stabilisation en général. En tant que réponse à ces demandes, MPS 2019.3 est une version axée principalement sur la correction des bogues : en plus d'améliorations significatives, plus de 700 problèmes ont été corrigés. Toutefois, cela ne signifie pas qu'il n'y a pas de nouvelles fonctionnalités dans MPS 2019.3. Quelles sont donc les nouveautés et améliorations dans l'environnement de développement de langages dédiés de JetBrains ?

Déchargement de modèle

Dans les versions précédentes, MPS n'était pas en mesure de décharger les modèles. Cela signifie que si vous travaillez avec MPS sur une longue période et que vous avez accédé à de nombreux modèles, tous ces modèles seraient chargés en mémoire. Ainsi, la consommation de mémoire augmenterait avec le temps, ce qui affectait également les pauses du ramasse-miettes. Mais il est maintenant possible d'améliorer la consommation de mémoire en retirant explicitement tous les modèles de la mémoire. Vous pouvez cliquer sur l'indicateur de mémoire ou définir un paramètre de nettoyage programmé (en secondes) avec l'action Registry. Il s'agit d'une fonctionnalité qui est pour le moment expérimentale et que JetBrains prévoit d'améliorer dans les futures versions de MPS.


Conversion de concepts et d'interfaces

JetBrains a ajouté une nouvelle intention qui convertit un concept en un concept d'interface et inversement. Vous pouvez utiliser cette fonction lors de la création d'une structure de langage, et cela n'en change pas les utilisations.


Action Quick Definition

Quick Definition est similaire à son homologue dans IntelliJ IDEA. Il suffit de cliquer sur un nœud, maintenir les touches Ctrl-Maj-I, et vous obtenez une fenêtre contextuelle affichant la définition du nœud. Cette fenêtre contextuelle vous permet de naviguer, de sélectionner d'autres nœuds et de lancer l'action Find. Il n'est donc pas nécessaire d'ouvrir un nouvel onglet à chaque fois que vous souhaitez avoir un aperçu du nœud.


Modules de générateurs indépendants et plusieurs générateurs par langage

Vous pouvez à présent créer plusieurs générateurs par langage, et soit les héberger à l'intérieur d'un langage (comme dans les versions précédentes), soit les ajouter à côté d'un langage comme un module de niveau supérieur normal. L'utilisation de plans de générateurs vous permet de tirer le meilleur parti de plusieurs générateurs. Pour faciliter la transition, un seul des générateurs de langage continuera d'être impliqué pour un modèle sans plan de génération explicite. Le nouveau générateur peut être créé à partir du menu contextuel du langage et la boîte de dialogue ci-dessous a une nouvelle case que vous pouvez cocher pour le rendre autonome.


Créer à partir d'une utilisation

Il est maintenant possible de créer des concepts, des méthodes et des classes à partir d'utilisations dans le code. L'intention peut créer une classe sur de nouvelles déclarations, des méthodes dans les expressions, ainsi que des concepts et des interfaces dans des rôles enfant/référence et dans extends/implements.


Génération d'identifiants Java valides à partir de INamedConcepts

Une nouvelle déclaration de générateur vous permet de générer un identifiant Java valide à partir de tout INamedConcepts. Cela crée un nom unique en supprimant les symboles illégaux, en transformant des lettres en majuscules et en ajoutant un préfixe si nécessaire.


Find Usages : nouvelle déclaration pour signaler un résultat de recherche arbitraire lors de l'écriture d'un module de recherche

Dans les versions précédentes de MPS, la déclaration "add result" du module de recherche n'acceptait que des résultats de recherche basés sur "node<>". Maintenant, avec "add raw result", le concepteur de langage peut afficher tous les résultats que la vue Find Usages est en mesure de visualiser.

Télécharger MPS 2019.3

Voir aussi :

Sortie de DataGrip 2019.3, l'EDI de JetBrains destiné aux administrateurs de bases de données vient avec le support de MongoDB et une première version du débogueur PL/SQL
RubyMine 2019.3 est disponible avec la possibilité de configurer le mappage pour RuboCop, apporte un meilleur aperçu du code et améliore le débogueur
IntelliJ IDEA 2019.3 est disponible avec une amélioration notable des performances et de la qualité, ainsi que de nombreuses corrections de bugs
WebStorm 2019.3 est disponible avec un démarrage plus rapide, une prise en charge plus avancée de Vue.js et une complétion de code plus intelligente pour JavaScript
PhpStorm 2019.3 est disponible et intègre un support complet de PHP 7.4, le style de code PSR-12, le support de MongoDB, le Windows Subsystem for Linux (WSL), et autres
Sortie de CLion 2019.3, la dernière version majeure de l'année 2019 pour l'EDI C/C++ de Jetbrains

Une erreur dans cette actualité ? Signalez-le nous !