IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Langages de programmation Discussion :

D2 : un nouveau langage déclaratif pour convertir du texte en diagrammes


Sujet :

Langages de programmation

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Dirigeant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Points : 66 257
    Points
    66 257
    Par défaut D2 : un nouveau langage déclaratif pour convertir du texte en diagrammes
    D2 : un nouveau langage déclaratif pour convertir du texte en diagrammes
    il prend en charge les extraits de code et la syntaxe Markdown

    D2 (Declarative Diagramming) est un langage dédié à un domaine (domain-specific language -DSL). C'est un langage déclaratif permettant de générer des diagrammes à partir d'un texte. Développé par une entreprise américaine appelée Terrastruct, D2 est actuellement en version alpha. Pendant cette période, il sera uniquement hébergé sur Terrastruct, qui fournit l'environnement de développement intégré. L'entreprise a déclaré qu'une fois que D2 aura atteint la première version stable, il publiera et continuera son développement en open source et rendra les options locales disponibles.

    Terrastruct explique que D2 a été conçu dans un seul but : faire de la création de diagrammes une expérience agréable pour les ingénieurs. Alors pourquoi D2 ? Selon l'entreprise, de nombreux outils peuvent prétendre le faire pour des diagrammes simple, mais les choses se compliquent dès que vous arrivez à des diagrammes même légèrement complexes. Il estime que la plupart des outils de création de diagrammes existants sont des outils de conception, et non des outils de développement. Ils offrent un canevas vierge et une barre d'outils de glisser-déposer, et traitent le flux de travail prévu comme un processus de conception.



    Cependant, Terrastruct pense que les ingénieurs ne sont pas des concepteurs visuels, et le manque de capacité à architecturer spatialement un système ne devrait pas bloquer la création d'une documentation précieuse. « Chaque glisser-déposer ne devrait pas nécessiter de planification, et les mises à jour ne devraient pas être un exercice frustrant de déplacement et de redimensionnement pour faire de la place à la nouvelle pièce. Le diagramme déclaratif élimine cette friction », explique-t-il. En somme, D2 est présenté comme un outil de création de diagrammes conçu pour visualiser l'architecture logicielle. Voici quelques-unes de caractéristiques :

    • D2 vous permet d'éditer des diagrammes avec du texte ou une interface graphique, avec des changements synchronisés entre les deux ;
    • D2 supporte les icônes personnalisées ;
    • D2 n'a pas de types de diagrammes. Dans d'autres outils, vous spécifiez "ceci est un diagramme de classe", ou "ceci est un diagramme d'état". L'un des objectifs de la conception de D2 est d'avoir une syntaxe minimale avec laquelle vous composez. Terrastruct explique qu'elle évite la mode "DSL dans un DSL" qui consiste à déclarer des diagrammes spéciaux et à avoir une syntaxe spéciale pour chacun ;
    • Terrastruct note que D2 est plus lent à compiler, car les algorithmes de mise en page sont lourds en recherche heuristique sur les règles. Pour créer des diagrammes de classes dans D2, vous créez des objets comme n'importe quels autres et leur donnez une forme : classe ;
    • D2 supporte actuellement moins de types de diagrammes. Si vous avez besoin de faire des camemberts, des "diagrammes de temps" ou des cartes heuristiques, il faudra du temps, si jamais Terrastruct le prend en charge. L'entreprise a déclaré qu'elle se concentre sur les diagrammes d'architecture logicielle ;
    • D2 supporte les extraits de code et le texte Markdown ;
    • D2 supporte entièrement les diagrammes de classe UML.


    Exemple de déclaration en D2 et de formes


    Ceci déclare une connexion entre deux formes, "x" et "y", avec l'étiquette, "hello world". Le résultat obtenu est le suivant (image) :

    Nom : hello-world-31da218cb5c8701ad816145c0952e8f5.png
Affichages : 18548
Taille : 12,0 Ko

    Vous pouvez également utiliser des points-virgules pour définir plusieurs formes sur la même ligne :


    Par défaut, l'étiquette d'une forme est la même que la clé de la forme. Mais si vous voulez qu'elle soit différente, attribuez une nouvelle étiquette comme suit :


    Par défaut, le type d'une forme est rectangle. Pour spécifier autre chose, fournissez la forme du champ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    pg: PostgreSQL
    Cloud: my cloud
    Cloud.shape: cloud
    SQLite; Cassandra

    Le résultat obtenu est le suivant (image) :

    Nom : shapes-2-0d260b93b89fc74a9e645e2c17345f98.png
Affichages : 6733
Taille : 31,1 Ko

    Réaliser des connexions avec le langage D2

    Les connexions définissent les relations entre les formes. Les traits d'union/flèches entre les formes définissent une connexion. Si vous faites référence à une forme non déclarée dans une connexion, elle est créée. Il existe 4 façons valides de définir une connexion, notamment avec les symboles : "--" , "->", "<-" et "<->". En outre, les étiquettes de connexion peuvent être définies de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Read Replica 1 -- Read Replica 2: Kept in sync

    Il est important de noter que les connexions doivent faire référence à la clé d'une forme, et non à son étiquette

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    be: Backend
    fe: Frontend
    
    # This would create new shapes
    Backend -> Frontend
    
    # This would define a connection over existing labels
    be -> fe

    Exemple


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Write Replica Canada <-> Write Replica Australia
    
    Read Replica <- Master
    
    x -- y
    
    super long shape id here --\
      -> super long shape id even longer here

    Nom : 4.png
Affichages : 6683
Taille : 23,8 Ko

    Terrastruct associe D2 et une interface graphique

    D2 permet de créer des diagrammes à partir de texte, mais Terrastruct propose aussi une interface graphique avec des formes préconstruites. Bien que D2 soit une fonctionnalité remarquable, l'entreprise ne la voit pas remplacer entièrement l'interface graphique. « Nous aimons utiliser le clavier pour piloter nos machines, mais parfois la souris est l'outil le plus approprié, comme lorsque nous faisons défiler un site Web, que nous pinçons pour zoomer ou que nous redimensionnons un objet pour qu'il soit parfait. Terrastruct vous offre l'interface la plus optimisée pour la création de diagrammes », a-t-il déclaré.

    Ainsi, vous avez la possibilité de passer de l'éditeur de texte à l'interface graphique de manière transparente. L'interface graphique, contrairement aux lignes de texte, permet un balayage facile et un retour visuel rapide. « Nous avons l'intention de continuer à tirer parti de ces avantages pour vous offrir l'expérience de diagramme la plus fluide », explique l'entreprise. Par exemple, vous pouvez utiliser votre souris pour double-cliquer sur une zone problématique, au lieu de parcourir des centaines de lignes pour la trouver. Choisissez une couleur de manière interactive au lieu de taper le code hexadécimal.

    En outre, vous pouvez cliquer et faire glisser une boîte de sélection pour supprimer certaines entités obsolètes au lieu de rechercher les lignes exactes où elles sont définies. Tout est bidirectionnel, de sorte que tout ce que vous faites sur l'interface graphique est répercuté dans vos déclarations.

    Feuille de route

    D2 est actuellement en version alpha avec un ensemble minimal de fonctionnalités pour être utile. Terrastruct a déclaré qu'il continue de travailler pour l'enrichir de fonctionnalités et d'intégrations dans l'application. L'entreprise prévoit d'ajouter les fonctionnalités suivantes :

    • pour les relations entre tables SQL, les connexions doivent pointer vers la ligne exacte ;
    • fractionnement d'un seul diagramme D2 en plusieurs fichiers qui peuvent être importés et réutilisés ;
    • intégrer des métriques et des variables dynamiques dans le texte (par exemple, $vars.aws.cpu) ;
    • support du développement local ;
    • diagrammes de séquence ;
    • transpilation à partir de Mermaid, Graphviz et PlantUML ;
    • ouvrir le code source ;
    • prise en charge des connexions courbes ;
    • personnalisation et création de thèmes ;
    • fonctions LSP, par exemple liste autocomplète de formes, choix d'objets à partir de la portée, etc. ;
    • classes pour agréger les styles ;
    • raccourcis clavier sur le sélecteur d'icônes ;
    • etc.


    D2 est semblable à d'autres outils comme Mermaid et PlantUML. Mermaid est un outil de création de diagrammes et de graphiques basé sur JavaScript qui utilise des définitions de texte inspirées de Markdown et un moteur de rendu pour créer et modifier des diagrammes complexes. L'objectif principal de Mermaid est d'aider la documentation à rattraper le développement. Mermaid permet aux utilisateurs de créer des diagrammes facilement modifiables, qui peuvent également être intégrés aux scripts de production (et autres morceaux de code). Mermaid est un outil open source.

    De son côté, PlantUML est un outil open source permettant aux utilisateurs de créer des diagrammes à partir d'une description textuelle. PlantUML vous permet de dessiner à peu près n'importe quel diagramme architectural dont vous avez besoin lors de la conception d'un système. Outre les diagrammes UML, il prend en charge plusieurs autres formats liés au développement de logiciels (Archimate, BPMN, C4, Gantt chart et WBD), ainsi que la visualisation de fichiers JSON et YAML. D2 est jeune, contrairement à Mermaid et PlantUML qui sont des produits bien établis. Il reste à savoir si D2 pourra les concurrencer à l'avenir.

    Source : D2

    Et vous ?

    Quel est votre avis sur le sujet ?
    Que pensez-vous du langage D2 ?
    Pourrait-il faire de l'ombre à Mermaid et PlantUML à l'avenir ?

    Voir aussi

    JetBrains annonce la sortie de la version 2021.3 de MPS (Meta Programming System) : un aperçu des nouveautés de l'environnement de développement de langages DSL

    OK ?, le langage de programmation moderne, dynamiquement typé, élimine la complexité inutile des langages de programmation actuels

    Microsoft lance Power Fx, un nouveau langage de programmation low-code open source basé sur Excel

    Python est le langage de programmation le plus utilisé et il ne montre aucun signe de ralentissement, selon l'index TIOBE de janvier 2022
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre émérite
    Profil pro
    retraité
    Inscrit en
    Décembre 2010
    Messages
    806
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 806
    Points : 2 312
    Points
    2 312
    Par défaut
    C'est pas mal, cela fera gagner du temps sur de la documentation. J'avais déjà testé un truc dans le genre peut être étais ce cela, faut que je regarde

  3. #3
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Oui les langage du genre, c'est pas ce qui manque, l'article en site parmi les plus connus, je vois pas vraiment ce que celui la a à apporter.

  4. #4
    Membre expert
    Profil pro
    programmeur du dimanche
    Inscrit en
    Novembre 2003
    Messages
    783
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : programmeur du dimanche
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 783
    Points : 3 371
    Points
    3 371
    Par défaut
    ça ressemble vite fait au langage de https://graphviz.org/ . Ce dernier n'est pas hyper-beau, ni personnalisable à souhait, mais en quelques lignes le rendu est très correct (et c'est mature).

  5. #5
    Membre régulier Avatar de TheGuit
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Juin 2005
    Messages : 33
    Points : 100
    Points
    100
    Par défaut
    Il reste à savoir si D2 pourra les concurrencer à l'avenir.
    Reste à savoir si on a besoin d'un autre truc qui fait exactement la même chose mais en moins bien ? Ben non !

    PlantUML marche très bien, supporte de nombreux types de diagramme. Aucune raison d'en faire un nouveau.

    Le fait que Mermaid s'intègre un tout petit peu plus simplement dans Markdown est déjà un argument très faible ...

  6. #6
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 935
    Points : 2 014
    Points
    2 014
    Par défaut
    Pour ma part je suis content de voir cet outil arriver parce que PlantUML a un langage bien moins lisible je trouve que ce que nous offre D2 et surtout D2 génère par defaut des trucs simples et élégants là ou PlantUML fait des trucs surchargés, très moches et oldmade.
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 4
    Points
    4
    Par défaut D2 face au lanagage DPIC et à Tikz
    Bonjour,

    J'ai comme l'impression que le projet D2 revient à tenter de refaire le monde car il existe par exemple les langages DPIC et PostScript. On peut aussi s'appuyer sur Tikz/PGF, se pencher sur le format PDF, sur les nombreuses extensions graphiques autour de LaTeX.

    Il me semble préférable d'intégrer des langages existants dédiés aux graphiques ou de les compléter que de vouloir tout refaire. On peut aussi améliorer les extensions graphiques ou la surcouche applicative; le travail ne manque pas !

    Ceci dit, vouloir repartir de zéro est un bon exercice pédagogique même si cela ne dure généralement pas trop longtemps car on se rend vite compte avec l'expérience que c'est assez chronophage.

  8. #8
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 935
    Points : 2 014
    Points
    2 014
    Par défaut
    Citation Envoyé par naoweb Voir le message
    par exemple les langages DPIC et PostScript.
    Je ne partage pas du tout. DPIC et comme les pires des extensions LaTex (et j'adore LaTex), après avoir regardé la doc on ne sait même plus ce que c'est sensé faire. On a notamment vu des montagnes de descriptions de commandes immangeables sans avoir ne serait ce qu'un aperçu de ce que ça fait.
    PostScript c'est un langage vectoriel fait pour représenter tout et n'importe quoi. Un langage comme D2 ne fait pas la même chose, il pourrait exploiter un langage bas niveau comme PostcScript.

    Le but c'est de générer du contenu à valeur ajouté, pas d'être capable d'afficher tout absolument tout en passant 5ans à tout construire, c'est en fait pas du tout la même chose.


    Citation Envoyé par naoweb Voir le message
    On peut aussi s'appuyer sur Tikz/PGF, se pencher sur le format PDF, sur les nombreuses extensions graphiques autour de LaTeX.
    Tout pareil du super bas niveau, on pourrait faire du beau et du compliqué avec mais en y passant une vie.

    J'ai tenté de faire des illustrations avec Tikz, c’était super beau tout comme je voulais mais le temps que j'y ai passé a fait que j'en ai plus jamais refait et que ce qui avait été ait n'a jamais été mis à jour et finalement supprimé parce que pas à jour. Je suis passé sur des Visio, libreOffice Draw et autres trucs comme D2 qui sont fait pour générer des choses utilises sans s'intéresser au bas niveau.

    Ce n'est pas l'acte de faire un diag qui a de la valeur, c'est l'information synthétisée dans le diag, tant mieux s'il faut 1/2 seconde pour le faire.
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres

  9. #9
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 065
    Points : 2 567
    Points
    2 567
    Par défaut
    Bonjour,

    Désolé pour le retard j'avais ouvert l'onglet et je suis retombé dessus par hasard.

    Moi ça m'intéresse car je ne suis pas un concepteur visuelle. ouarfffff

    Pour faire mes MCD ou plutôt des MPD je fais une base mysql et je fais le reverse avec MySqlWorkbench.

    Pour les diagrammes de classes je fais des squelettes de classe et fais le reverse avec un plugin de diagramme qui me tombe sous la main.

    J'avais pensé faire mon outil avec le MOF(meta object facillity).

    Alors si je pouvais faire mes diagrammes en ligne de commandes avec une CLI, et si l'outil pouvait comprendre la logique du diagrammes pour me retourner des informations comme le chemin pour allé d'une entité A vers B, c'est qui me manque un peu pour le SQL pour faire mes jointures.

    J'utilise aussi des magnettes j'ai plein de traits, de flèches, de cardinalités, mots écrits à la fois en noire pour vous et en braille pour moi, ça aide mais ça me prend temps à faire
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/05/2022, 08h28
  2. Choix de langage / framework pour extraire du texte
    Par Symbal dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 07/08/2013, 11h03
  3. [Images] Quelle librairie utiliser pour transformer du texte en image ?
    Par [ZiP] dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/01/2012, 15h23
  4. Excel:probleme pour transformer du texte en nombre par macro
    Par pcheval dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/11/2005, 22h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo