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

C++ Discussion :

Interface interactive et Qt, bon choix?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2011
    Messages : 36
    Par défaut Interface interactive et Qt, bon choix?
    Bonjour à tous,

    Je suis passionné par les interfaces interactives, je fais du design etc. mais je n'y connais pas grand chose en programmation.

    J'ai commencé le c++ il y a un moment et j'ai bientot finit le chapitre traitant de la POO, et là j'arrive à QT. Je me demandais si c'était le choix le mieux adapter pour développer des applications desktop très poussé graphiquement?

    En gros je veux transformer les interfaces figées effectuée via gimp en un programme qui réagit à l'utilisateur (avec des effets plus ou moins légers) et permet d'introduire du contenu, gérer des bases de données, du contenu web etc.

    Que me conseillez vous?
    Sachant que à terme je souhaite faire une application smartphone et un site web reliés au programme desktop ==> évidemment projet de plusieurs années, mais c'est pour le plaisir!
    D'ailleurs j'ai failli choisir Java à cause de ça puisqu'il sert dans android/windows/web, mais j'ai douté de sa robustesse pour le desktop sachant que mes interfaces prendront dans une certaine mesure des ressources et que je voudrais vraiment optimiser l'utilisation de la mémoire avec c++ afin d'offrir aux utilisateurs une bonne expérience même avec un pc pourri, bon choix?

    Merci,

    Kadesh

  2. #2
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Si tu veux des interfaces graphiques très poussées graphiquement, le C++ n'est selon moi pas le bon choix, en tout cas sous Windows.
    Si tu le peux, passe en C# et utilise WPF qui va te permettre de faire des GUI poussées, avec des shaders et tout et tout...

    EDIT :
    Je n'avais pas lu tout ton message, dont la partie smartphone et web.
    Pourquoi ne pas partir sur du développement web moderne ? (HTML5, CSS3)
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2011
    Messages : 36
    Par défaut
    dragonjoker59 >

    Merci pour l'information, je ne savais pas que C# avait des fonctionnalités supérieures à celles du C++ concernant le graphisme, je pensais vraiment qu'avec C++ on pouvait tout faire sur desktop et c'est ça qui m'avait attiré. Ne puis-je pas arriver au même résultat graphique avec C++ sans trop me tordre le cerveau? Peut être y-a-t-il de nouvelles fonctionnalités avec C++11?

    J'avais également été attiré par le fait que le C++ est tellement large niveau paradigmes qu'il permettait de passer à presque n'importe quel autre langage relativement facilement quand on a un besoin spécifique. Alors que le passage de C# vers C++ est plus compliqué n'est-ce pas?

    Et je voulais également acquérir de bonnes habitudes en programmation, ai-je fait le mauvais choix?
    Le C++ est-il limité à un domaine particulier de l'informatique?

    Par ailleurs concernant le web, effectivement je comptais utiliser le couple html5 css3, mais ca ce sera plus tard, là je me concentre exclusivement sur une version desktop de mon programme, car je ne veux pas avoir de limitations graphiques, alors que sur navigateur malheureusement tu dois faire beaucoup de sacrifices à ce niveau sinon c'est ingérable.

    J'attends avec impatience vos réponses

  4. #4
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Ben en C++, théoriquement tu peux tout faire. Par contre, tu vas effectivement te tordre le cerveau pour avoir le résultat voulu (pour l'avoir fait, je te le confirme).
    Ne connaissant pas Qt, je ne peux pas te dire ce qu'elle vaut au niveau personnalisation de ta GUI.
    Par contre, pour faire de la GUI, C# est nettement plus approprié que le C++, qui n'intègre rien de base pour la gestion des GUI (d'où l'existence de bibliothèques telles que Qt et wxWidgets).
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Bien sûr que C++ peut tout faire, GIMP est codé avec, justement.
    Il suffit de savoir comment, et c'est là le problème.

    Certains langages sont plus pratiques, car il y a ce qu'il faut de base.
    Un autre exemple, c'est Java, avec Swing. C'est ainsi qu'est codé LibreOffice (et OpenOffice).

    Avec les dernières normes HTML5 (et CSS3, son compagnon), tu peux faire énormément de choses avant de rencontrer les limites.

    La question est de savoir ce que ton interface sert à faire.
    Un jeu, avec beaucoup de données derrières, et du temps réel? reste sur le C++, ca me parait plus adapté (drivers opengl/directX)
    Un programme à base de bouton, qui fait quasiment rien tant que l'utilisateur ne clique pas partout? (Traitement de texte, tableur, progiciel de comptabilité...) Java+Swing par exemple

    Tu tiens à te limiter explicitement à windows? C# peut être considéré.

    Tu veux pouvoir modifier le style selon l'utilisateur, il n'y a que peut de traitement, l'application pourrait avoir un usage sur tablette/téléphone? html+css est idéal.

    N'hésite pas à nous en dire un peu plus, nous pourrons te conseiller un peu mieux.

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2011
    Messages : 36
    Par défaut
    Enfaite je suis intéressé par pleins de domaines en programmation et j'ai beaucoup de projets.
    Par exemple l’intelligence artificielle, la gestion vidéo (ex movie maker avec des fonctionnalités supplémentaires), architecture etc.

    Je pensais que débuter par C++ permettrait de faire de moi un excellent programmeur qui peut passer à n'importe quel langage en fonction de son projet.

    Mon premier projet est un projet de traitement de l'information, de bases de données (infos contenus sur le pc, ou sur des serveurs, ou des navigateurs),
    Il y aura plusieurs fenêtres redimensionnables au sein du logiciel qui permettent de comparer des données et d'en extraire les informations utiles.
    Mais je veux que ce soit ergonomique, interactif et poussé graphiquement.

    En gardant l'objectif de ce premier projet en tête, plus mon objectif d'avoir une excellente culture des différents paradigmes disponibles en programmation, Le C++ est-il un bon choix pour ce premier projet?

    Je veux faire d'une pierre deux coups, commencer ce projet qui me motive ET acquérir une culture de programmeur en même temps.
    Même si c'est raisonnablement plus galère de faire ce projet en C++ (j'imagine qu'il existe quand même une bibliothèque correcte pour la GUI non? J'ai cité QT mais il en existe peut être d'autres?)

    Imaginons que je commence par Java ou C#, ne serais-je pas limité si plus tard j'ai besoin du C++?
    J'ai souvent lu qu'il est plus long d'acquérir une bonne vision de programmeur dans ces langages relativement plus haut niveau et plus limités niveau paradigmes que C++, est-ce vrai?

    J'ai lu ceci sur un forum :
    Le C# et le Java ne se sont pas suffisamment détaché de leur modèle, le C++, pour justifier leur intérêt intrinsèque en tant que langage. Pire encore, ils sont tous les deux destinés à une mort inévitable, Microsoft va disparaître en emportant C# dans sa lente agonie, et la plate-forme Java devient de plus en plus ingérable, la machine virtuelle est déjà poussée à ses limites quand on veut certains concepts de programmation fonctionnelle qui seront essentiels dans l'avenir
    J'ai également lu ceci
    Le C# et le Java sont un peu dans le même bateau, ce sont deux langages assez semblables, créés en réaction à la complexité extravagante du C++, pour permettre à une masse de programmeurs bas de gamme de travailler sur des gros projets sans trop tout casser, en forçant partout des contraintes de programmation orienté objet dans des proportions malsaines et parfois comiques, et encourageant des "design patterns" qui dans leur majorité sont des béquilles pour compenser le manque de dynamisme du langage, la difficulté de manipuler les traitements comme des données, et les couplages introduits par l'utilisation déraisonnable de la relation d'héritage.

    Programmer en C# ou en Java, c'est sortir des outils d'une boîte à outils géante, qui font à peu près ce qu'on veut faire mais pas tout à fait, et taper avec jusqu'à ce que ça rentre. On finit avec un programme qui fait à peu près ce qu'on veut faire, dont on prie que l'implémentation cachée derrière n niveaux d'abstractions et une hiérarchie de classes imbitable fonctionne correctement et soit adaptée à nos besoins, avec des performances acceptables et sans occuper toute la RAM.

    Dans 99% des cas, le C# ou le Java permettent d'accomplir ce qu'on veut, avec une approche systématique pour ne pas dire ennuyeuse, sans trop se casser le cul.

    Ces langages relèvent parfois davantage de l'outil de propagande corporatiste auprès d'une génération de programmeurs lobotomisés et consentants, que réellement de la programmation. Ce sont des langages efficaces, productifs, charmeurs, mais qui pouponnent les programmeurs pour en faire des esclaves de telle plate-forme propriétaire aux garanties de performance ou de sécurité parfois vagues.


    ___________

    Adopter un langage de programmation copyrighté défini par une entreprise plutôt que par des comités internationaux indépendants, c'est aussi vendre son âme au diable en échange de confort, de facilité de déploiement ou de gestion de la médiocrité générale des programmeurs impliqués dans le projet. S'il s'agit de faire des logiciels pour gérer les factures pour le compte d'un grand groupe multinational dans une SSII, alors oui tu trouveras ces langages partout.

    __________
    Java tiendra plus longtemps que C# (quelques projets intéressants sont basés sur Java : Hadoop, Cassandra, le langage Scala) mais ils disparaîtront comme tendent à disparaître toutes les tentatives de les généraliser au-delà des contextes que l'entreprise qui les gère peut les supporter (Mono, implémentations alternatives de la jvm, etc.).

    Il y aura une inertie d'au moins quinze ou vingt ans sur C# et Java, donc ce sont encore des alternatives très viables pour le moment, d'un point de vue purement "perspectives d'avenir pour des professionnels de l'informatique".
    Bon je veux pas lancer une guerre, d'ailleurs je comprends pas la moitié de ce qui est écrit là dessus, mais ca ne donne pas envie...
    Je suis vraiment un débutant complet qui prends du temps avant de se lancer corps et âme dans un premier langage (même si je commence tout doucement C++, car comme vous le voyez, je suis déjà pas mal influencé par ce que j'ai lu, ai-je tort ?)

  7. #7
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Par défaut
    Qt fait de très bonne choses également du point de vue des interfaces graphiques. Par exemple, un logiciel fait en C++ avec Qt : Open Sankoré

    Donc continue ton apprentissage avec Qt et le C++, car si le C++ n'était pas bon en interface graphique, il n'y aurait pas autant d'applis et de jeux vidéos AAA faits en C++

    le C# non plus n'intègre rien nativement pour les GUI, c'est le framework .Net (le Qt du C#) qui le fait.

  8. #8
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Par défaut
    Des projets comme VLC (lecteur multimédia) ou KDE (environnement de bureau) sont faits avec Qt.

  9. #9
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Par défaut
    Si tu veux faire des trucs assez bas-niveau (entends proche de la machine), il vaut mieux que tu t'orientes vers le C++, qui contrairement au C# par exemple, va te laisser gérer la mémoire utilisée par ton programme toi-même, te fournissant ainsi des notions indispensables pour la suite de ce que tu veux faire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 15
    Dernier message: 16/05/2005, 10h31
  2. Réponses: 3
    Dernier message: 24/12/2004, 17h22
  3. bon choix , choix de la configuration materielle
    Par madmortal dans le forum Débuter
    Réponses: 15
    Dernier message: 16/08/2004, 21h18
  4. Réponses: 3
    Dernier message: 28/07/2003, 22h01

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