Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

    JetBrains annonce la sortie de la version 2019.1 de Meta Programming System (MPS)
    JetBrains annonce la sortie de la version 2019.1 de Meta Programming System (MPS)
    son environnement de développement de langages dédiés (DSL)

    À l'instar de la plupart de ses EDI, JetBrains a annoncé la sortie de la première mise à jour majeure de cette année pour Meta Programming System (MPS), son environnement de développement de langages dédiés.

    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.

    MPS vous permet de concevoir votre propre langage dédié avec un environnement de développement complet. Il offre un éditeur de code et est fourni avec son propre moteur de génération de code, qui peut être utilisé pour fournir une sémantique aux DSL basés sur MPS. Vous pouvez donc créer des générateurs pour compiler votre DSL dans plusieurs langages cibles, tels que Java, C, XML, etc.

    Pour ceux qui sont déjà familiarisés avec MPS, l'EDI de JetBrains pour les langages dédiés embarque un bon lot de nouveautés dans sa version 2019.1. Au niveau de l'éditeur par exemple, les concepteurs de langage peuvent désormais définir le style et la priorité des éléments du menu de complétion de code. Il est possible de changer la couleur de fond et du texte, mettre un élément en gras ou italique, et même de masquer des éléments, comme cela est illustré dans l'image suivante. Notez toutefois que cette fonctionnalité est expérimentale et que sa conception peut subir des modifications dans le futur.




    Au niveau de BaseLanguage, la principale nouveauté est que MPS vous permet maintenant de créer des méthodes statiques dans des interfaces. Pour information, BaseLanguage est un langage équivalent à Java, qui partage avec Java presque le même ensemble de constructeurs. Il a en effet été créé en tant que copie de Java 6 avant de se doter de plusieurs extensions au fil du temps. BaseLanguage est également la cible la plus courante de la génération de code dans MPS.




    MPS 2019.1 améliore aussi sa prise en charge des plug-ins. Il est par exemple possible d'utiliser les plug-ins MPS à partir de la tâche de migration Ant : maintenant, si un plug-in est nécessaire à la migration d'un projet, vous pouvez le spécifier dans la tâche <migrate>. Le plug-in correspondant sera activé, ainsi que ses dépendances.




    En outre, l'instruction "run code from solution" vous permet d'activer des plug-ins dans l'instance MPS qui exécutera le code. Les dépendances du plug-in seront également incluses.




    Bon nombre d'améliorations ont été apportées à l'EDI. L'une d'entre elles est la possibilité de créer un thème d'interface utilisateur personnalisé. La plateforme IntelliJ vient d'introduire cette fonctionnalité intéressante et, puisque MPS est basé sur cette plateforme, vous pouvez désormais personnaliser les thèmes de l'interface utilisateur pour votre EDI. Vous pouvez le faire de deux manières : importer les nouveaux thèmes prédéfinis sous forme de plug-ins ou créer simplement vos propres thèmes avec Intellij IDEA.




    Toujours au niveau de l'EDI, la configuration d'exécution de JUnit accepte désormais le déploiement des plug-ins. Vous pouvez maintenant fournir une liste de plug-ins IntelliJ IDEA à déployer lors de l'exécution d'un test. La tâche Before launch "Assemble Plugins" est également disponible dans la configuration d'exécution de JUnit. Elle génère automatiquement les plug-ins qui sont en train d'être déployés et copie les artefacts dans le répertoire des paramètres.




    Entre autres améliorations, l'EDI indique maintenant si les validations (commits) entrantes et sortantes sont disponibles pour les branches individuelles dans la fenêtre contextuelle Branches.

    Vous trouverez la liste exhaustive des nouveautés et améliorations dans MPS 2019.1 sur le site officiel de l'EDI. Mais ajoutons encore pour les utilisateurs de MPS que toute la documentation est en train d'être migrée de Confluence vers le centre d’aide de JetBrains. Plus d'améliorations sont prévues de ce côté dans les prochaines versions de l'environnement de développement de langages dédiés.

    Télécharger MPS

    Source : Annonce officielle de JetBrains

    Voir aussi :

    IntelliJ IDEA 2019.1 est disponible, l'EDI pour Java vient avec les expressions Switch et offre enfin la possibilité de personnaliser les thèmes
    CLion 2019.1 disponible : l'EDI C/C++ vient avec un meilleur support du développement embarqué, ClangFormat comme formateur de code alternatif et plus
    Python en 2018, les chiffres clés de la communauté : EDI, frameworks, utilisation, SGBD, ORM, tests...
    WebStorm 2019.1 disponible : tour d'horizon des nouveautés de l'EDI de JetBrains pour les développeurs JavaScript
    IntelliJ IDEA, PhpStorm, PyCharm... Il est enfin possible de personnaliser des thèmes en couleur pour les EDI JetBrains grâce à un changement dans la plateforme IntelliJ
    JetBrains fait le bilan de son année 2018 : six millions de développeurs ont utilisé ses produits, plus d'un million de licences ont été offertes
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Chroniqueur Actualités

    JetBrains annonce la sortie de MPS 2019.3, son environnement de développement de langages dédiés
    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

    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
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités