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

Contribuez C++ Discussion :

Le langage D


Sujet :

Contribuez C++

  1. #281
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Personellement, l'absence de séparation déclaration/définition m'ennuie. J'ai pratiqué du Java, de l'ActionScript, du C# etc. et ça me choque toujours d'avoir a parcourir du code effectif juste pour repérer des noms de fonctions. Partir du principe qu'on va toujours utiliser un éditeur (supposé en Java et C#) est particulièrement naïf je trouve.
    Je ne connais personne qui code en C++ sans EDI ou éditeur avancé style Vim/emacs.
    Je trouve que c'est une bonne chose d'éliminer les redondances dans le code.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  2. #282
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Je ne connais personne qui code en C++ sans EDI ou éditeur avancé style Vim/emacs.
    C'est ce que j'appelle "le cas normal".

    Je dis que c'est naïf parcequ'il arrive que tu ais du code a toucher sans avoir d'editeur sous la main ou encore parcequ'il y a un probleme avec l'editeur (par exemple eclipse).

    Après tout, les languages de programmation sont fait pour l'homme d'abord, avant les outils.

    Ça commence à être utilisé dans l'industrie, le D ?
    A priori non, personnellement je n'ai vu que des jeux et applications amateur en D. C'est déjà pas mal.

  3. #283
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Le problèmes c'est qu'en plus, c'est hors jeu pour tout ce qui est informatique de gestion :

    • Pas d'API SGBD

    • Pas d'API pour imprimer, même basique

    • Librairies GUI en peau de banane

    • IDE en tôle ondulée (rouillée)


    Bref, D a aucune chance de se démarginaliser s'il se borne à des applications console sans interface graphique. La meilleure façon de remédier à cela serait que les contributeurs décident ensemble d'un unique IDE et qu'ils focalisent leurs efforts dessus. Ca permettrait à terme d'avoir un outil puissant et des fonctions avancés (visual designer, unit test, documentation etc..).

    On est dans le scénario catastrophe typique où tout le monde fait un projet dans son coin qui se meurt après 1-2 ans, au lieu de se recentrer autour d'un outil spécifique qui s'imposerait comme standard.

  4. #284
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Je ne pense pas que ce soit un cas catastrophique parceque le language évolue et qu'au moins pas mal de gens l'essayent. Effectivement il manque des choses pour qu'il soit plus utilisé en industrie, mais comme il faut en moyenne 10 ans pour qu'un language arrive a maturité (commence a être sérieusement utilisé) ben on peut dire que c'est plotot bien partie si il y en a qui font déjà des jeux en OpenGL (la première fois que j'ai entendu parler de D c'était a cause d'un shoot experimental).

    Pour l'ide, je sais pas si c'est l'idéal de se concentrer sur un seul, je me dit que Code::Blocks + Eclipse ça serait mieu (histoire de couvrir l'ensemble des utilisateurs potentiels).

    Eventuellement une implémentation d'entreprise (genre Microsoft) serait a mon avis plus efficace( surtout en exploitant un VisualStudio, comme ils ont fait avec IronPython par exemple, ou encore F#).

    Dans tous les cas on y est pas encore, c'est sur.

    Pour les libs d'impression etc, effectivement ce qui manque le plus c'est toutes les libs auxquelles on a accès en C++. Ya peu de bonne raison de les produires pour les vendeurs, a parti si un marché se crée (dans le jeu vidéo? pourquoi pas mais c'est un milieu qui a du mal a évoluer techniquement hors rendu graphique et IA...).

    En tout cas ya pas mal de features interessantes et d'autres que je trouve étrangement pas très logique. A voir comment ça évolue. On devrait aussi parler de Go de google qui entre dans la même catégorie de langauge (système). Après tout ce sont les deux potentiels challenger dans cette catégorie (même si ça dépends des 10 ans a venir).

  5. #285
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par _skip Voir le message
    Le problèmes c'est qu'en plus, c'est hors jeu pour tout ce qui est informatique de gestion :

    • Pas d'API SGBD

    • Pas d'API pour imprimer, même basique

    • Librairies GUI en peau de banane

    • IDE en tôle ondulée (rouillée)
    Il n'y a pas de lib C pour tout ça ?
    Il m'a bien semblé lire que D pouvait s'interfacer avec le C avec assez peu d'effort.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  6. #286
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    C'est exact.

  7. #287
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Donc on doit avoir un certain nombre de libs disponibles ?
    Un binding D de GTK, par exemple, doit être possible ?

    Après une petite recherche, il semblerait que ça existe : http://www.gtk.org/language-bindings.html
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  8. #288
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Oui, mais ça reste très limité comparé au nombre de libs dispo pour C++.
    Mais effectivemetn ya "au moins" la compatibilité avec le C.

  9. #289
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Oui, mais ça reste très limité comparé au nombre de libs dispo pour C++.
    Mais effectivemetn ya "au moins" la compatibilité avec le C.
    Es ce difficile d'utiliser des dll C++ avec D?

    Par exemple en utilisant gdc avec une lib c++ compilé avec gcc, ça devrait passer non?

  10. #290
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Appeler du code C++ depuis du code D ne serait que la partie émergée de l'iceberg : Pour utiliser confortablement du code C++ depuis un autre langage, il faudrait aussi pourvoir dériver d'une classe C++ et redéfinir des fonctions virtuelles, avoir un modère de gestion des ressources compatible, être capable de transmettre les exceptions entre les différents langages dans les deux sens...

    Pour avoir fait pas mal de C++/CLI pour interfacer du C++ et du C#, je peux dire que sans ces aspects, l'interfaces entres langages demande des efforts très importants, probablement trop pour que je jeu en vaille la chandelle dans nombre de cas.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  11. #291
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Citation Envoyé par Florian Goo Voir le message
    Il n'y a pas de lib C pour tout ça ?
    Il m'a bien semblé lire que D pouvait s'interfacer avec le C avec assez peu d'effort.
    Bien sûr mais comme dit JollyLoic c'est pas forcément un choix sans risques. Les développer toi-même est vraiment assez risqué alors que d'autres technos t'offrent ça out-of-the-box avec des outils d'édition à l'appui.

    En ce qui concerne les IHM, il existe déjà des bindings sur GTK et wxWidgets, également Qt. Mais je fais difficilement confiance à des projets qui reçoivent un commit tous les 6 mois (j'exagère un peu) et qui n'ont pas de roadmap clairement établie. Si tu devais te retrouver bloqué et être livré à toi-même sans support à cause d'un bug, ce serait un sacré coup dur sur tes délais.

    Idem pour l'aspect SGBD, as-tu réellement envie de développer un binding sur les libs C de postgres ou mysql alors que java ou .Net t'offrent des drivers testés et activement développés? Avec en plus toute une palette d'ORM éprouvés?

    Ce que je veux dire, c'est que je ne dis pas que les choses sont impossibles avec D, si on se base sur des bindings C, tout est possible. Simplement que c'est pas un choix facile par rapport aux risques et au travail supplémentaire que cela engendre.

  12. #292
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Oui, ça explique effectivement bien pourquoi une adoption de D par l'industrie est pour l'instant impossible.
    Il faudrait qu'une entreprise influente s'y intéresse, ou bien (comme ça a pu être le cas pour Python) que la communauté du libre l'adopte de façon significative pour que le langage ait un avenir industriel.
    Plus d'info sur le sujet : http://stackoverflow.com/questions/2...-have-a-future

    Plus je progresse en C++, plus je me dis qu'on a besoin d'un successeur de ce langage qui commence à devenir quelque peu overbloated.
    Je m'en vais feuilleter le bouquin d'Alexandrescu pour voir à quel point D mériterait d'être évangélisé…
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  13. #293
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Personellement, je pense que D a de très bonne idées, et d'autres moins bonnes, mais tant que je n'ai pas tout lu le bouquin, je n'aurais pas tous les arguments des créateurs.

    Selon moi quelque chose plus proche de C++ mais avec certaines feature du D (thread-local par défaut + shared , différence concrète et utile entre struct et class, modules...) serait encore plus interessant que le D.

  14. #294
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Il faudrait aussi que la communauté D s'affiche et cesse de se disperser dans tout un tas de projets foireux :

    http://dsource.org/forums/index.php
    Ca manque gravement de coordination tout ça...

  15. #295
    screetch
    Invité(e)
    Par défaut
    si le D avait un cross-compiler c'est presque sur que je développerais avec
    mais je ne crois pas qu'il y ait un cross-compiler D pour mips, arm ou powerpc, malheureusement

  16. #296
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Oui justement l'arrivée du D2.0 était censé remettre certaines pendules a l'heure mais je ne pense pas qu'on puisse voir immédiatement l'effet. Il va falloir voir comment ça évolue dans les mois (voir années) a suivre.

  17. #297
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Appeler du code C++ depuis du code D ne serait que la partie émergée de l'iceberg : Pour utiliser confortablement du code C++ depuis un autre langage, il faudrait aussi pourvoir dériver d'une classe C++ et redéfinir des fonctions virtuelles, avoir un modère de gestion des ressources compatible, être capable de transmettre les exceptions entre les différents langages dans les deux sens...
    Il me semble que gcc utilise un pseudo-langage intermédiaire (un peu comme le CIL) pendant la compilation et que les binaires étaient compatible. De plus, je n'ai pas vue de choses qui était incompatible entre le D et le C++ qui empêcherais une classe D d'hériter d'une classe C++.
    Mais bon, je ne fais que supposer.

    Es ce que l'on ne pourrais pas imaginer un équivalent de boost.python pour D ?

  18. #298
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Disclaimer : Je n'ai jamais fait de D, j'ai juste lu quelques articles.
    Citation Envoyé par yan Voir le message
    De plus, je n'ai pas vue de choses qui était incompatible entre le D et le C++ qui empêcherais une classe D d'hériter d'une classe C++.
    Mais bon, je ne fais que supposer.
    J'ai l'impression que le modèle objet n'est pas le même, par exemple l'absence d'héritage multiple doit pas mal influencer la manière dont les fonctions virtuelles sont gérées...

    En cherchant d'autres exemple, je suis tombé sur :
    Features To Drop
    Link compatibility with C++. The C++ runtime object model is just too complicated - properly supporting it would essentially imply making D a full C++ compiler too.
    Citation Envoyé par yan Voir le message
    Es ce que l'on ne pourrais pas imaginer un équivalent de boost.python pour D ?
    Je n'ai pas utilisé boost.python non plus. Je pense qu'on doit pouvoir arriver au même genre de fonctionnalités, avec le même genre de limites, qui impose d'écrire pas mal de code intermédiaire (par exemple :
    http://www.boost.org/doc/libs/1_44_0...tual_functions)
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  19. #299
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Disclaimer : Je n'ai jamais fait de D, j'ai juste lu quelques articles.

    J'ai l'impression que le modèle objet n'est pas le même, par exemple l'absence d'héritage multiple doit pas mal influencer la manière dont les fonctions virtuelles sont gérées...
    C'est le moins qu'on puisse dire :
    - pas d"héritage multiple
    - struct et class sont radicalement différent (sémantique de valeur et sémantique d'objet, respectivement) - ça pose des problèmes avec les objets c++;
    - le compilo définit à la compilation si il y a besoin de virtualité sur un fonction membre, ou pas - non-précisé par l'utilisateur
    - garbage collector par défaut (mais pas de vm)
    - thread-local par défaut...

    En gros je vois pas comment les deux languages peuvent être directement compatible. Au mieu, on pourrait pouvoir manipuler un pointeur vers un objet C++ et appeler des méthodes... et encore je suis pas sur qu'il n'y aurait pas des complications.

  20. #300
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Donc en gros on pourrait au mieux faire pour D un truc comme C++/CLI est fait pour le C#.

    Et d'expérience, même si c'est fonctionnel, c'est lourd, c'est peu élégant, et c'est une source de bugs.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. [langage] Je cherche un bon livre ?
    Par Anonymous dans le forum Langage
    Réponses: 13
    Dernier message: 09/04/2003, 13h16
  2. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  3. [langage] comment créer des fichiers ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 05/05/2002, 16h33
  4. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37
  5. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 10h21

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