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

Windows Discussion :

Langage pour Windows rapide et facile à développer


Sujet :

Windows

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut Langage pour Windows rapide et facile à développer
    Hello,

    Je vais commencer à coder un modélisateur d'objets 3D pour le fun. Par contre, j'ai un problème sur le choix du language. J'ai besoin du maximum de rapidité pour mon application car je veux que ce soit un de ses points forts.

    J'ai déjà programmé sous Windows en Win32, c'est rapide mais je déteste l'API WIN32. Je trouve l'API WIN32 difficile, peu intuitive, brouillon et pas désignée à la base pour programmer objet. J'ai aussi essayé les classes MFC mais je n'ai pas accroché.

    Je me suis alors tourné vers la plateforme JAVA et je trouve ce langage formidable pour ce qui est de la création d'interfaces graphiques. Il est simple, on passe plus de temps à coder la logique qu'à programmer l'interface qui se fait en quelques clics (ou presque ). Par contre, Java est trop lent (je veux donner la possibilité de manipuler des millions de polygones). Pour finir j'ai aussi essayé ASP.NET et les webforms en C#, j'ai aussi adoré !

    Je voudrais une interface graphique qui soit aussi rapide que les meilleurs logiciels professionnels. La solution que je retiens pour le moment serait : C# combiné à OPENGL pour l'interface graphique, puis délégation du rendu réaliste à un programme C++ qui tournerait sur un server distant (ou non) et plus puissant.

    Qu'est ce que vous en pensez ?

  2. #2
    Membre éprouvé Avatar de trattos
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 000
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 000
    Points : 1 080
    Points
    1 080
    Par défaut
    Niveau 3D je ne sais pas ce que vaut C# mais je pense qu'il conviendrai très bien!
    Sinon il te reste toujours C++!

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Oui, est si tu veut des interfaces utilisateurs (GUI) tu peut prendre C++ Builder par exemple si ton programme n'est prévu que pour Windows biensur
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    C++ Builder me tente plutôt bien ! J'espère juste que cet IDE n'est appelé à disparaitre ? Je ne voudrais pas avoir à reprogrammer dans deux ans toute mon application lol,...

    Par contre quelqu'un pourrait me dire aussi s'il existe un compilateur C# qui compile en langage machine pour processeurs INTEL par exemple ? Car dans ce cas je pencherais plutôt pour cette option ! Je pense qu'il n'existe que du code interpreté pour le C# mais j'espère me tromper

    Pour la plateforme, en fait je pense que je vais le faire juste pour Windows dans un premier temps car le seul langage que je connais qui me permet de programmer pour d'autre plateformes est le Java. Et le problème est que j'ai besoin de beaucoup de puissance de calcul donc je préferre éviter un langage interprêté.

    Dernière chose, Est-il facile / possible de programmer en OPENGL avec C++ builder et C# ?

  5. #5
    Membre actif Avatar de etranger
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 333
    Points : 268
    Points
    268
    Par défaut
    C++ Builder me tente plutôt bien ! J'espère juste que cet IDE n'est appelé à disparaitre ?
    C++ Builder n'est pas appelé à disparaitre, il sera juste incorporé dans les prochaines versions de Delphi (la prochaine c'est la 2006), qui permetera aussi le dveloppement en C# (en plus de Delphi win32 et .NET).

    pour plus d'information tu peu voir ici

    Sinon je ne voit pas pourquoi la programation OpenGl poserait probleme avec Builder.

  6. #6
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par mlequim
    C++ Builder me tente plutôt bien ! J'espère juste que cet IDE n'est appelé à disparaitre ? Je ne voudrais pas avoir à reprogrammer dans deux ans toute mon application lol,...
    Ca, c'est le danger du propriétaire, et Borland n'est pas connu pour le suivi. Mais deux ans, cela devrait aller.

    Et le problème est que j'ai besoin de beaucoup de puissance de calcul donc je préferre éviter un langage interprêté.
    VC et le compilo d'intel doivent être les deux meilleurs optimisateurs pour windows.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  7. #7
    Membre averti
    Inscrit en
    Août 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 307
    Points : 378
    Points
    378
    Par défaut
    Citation Envoyé par mlequim
    Je pense qu'il n'existe que du code interpreté pour le C# mais j'espère me tromper
    Est ce qu'on peut vraiment dire que C# est interprété? je ne pense pas. Ce n'est qu'au moment de charger le code en memoire que le code C# est compilé par la suite, le programme s'execute comme un programme compilé.

    Donc un programme C# se charge relativement lentement, mais s'execute rapidement.

  8. #8
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    Citation Envoyé par kisitomomotene
    Donc un programme C# se charge relativement lentement, mais s'execute rapidement.
    et java fonctionne exactement de la meme facon. il n'est donc pas vraiment interprété non plus

  9. #9
    Rédacteur en Chef
    Avatar de Marc Lussac
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Mars 2002
    Messages
    28 664
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2002
    Messages : 28 664
    Points : 61 601
    Points
    61 601
    Par défaut
    Déplacé de général langage à prog windows
    Ne pas me contacter pour le forum et je ne répondrai à aucune question technique. Pour contacter les différents services du club (publications, partenariats, publicité, ...) : Contacts

    15 000 offres d'emploi développeurs et informatique
    Cours et tutoriels développeurs et informatique
    Les FAQ's & Les Livres
    Codes sources
    Téléchargements

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par mlequim
    Pour la plateforme, en fait je pense que je vais le faire juste pour Windows dans un premier temps
    Si tu raisonnes comme ça, tu risques d'être gêné le jour où tu voudras que ton programme tourne aussi sous d'autres systèmes... La portabilité, ça se pense dès le début...enfin, à toi de voir...

    Citation Envoyé par mlequim
    car le seul langage que je connais qui me permet de programmer pour d'autre plateformes est le Java.
    D'après ce que tu as dit auparavant : non.
    Tu dis avoir fait des applications Win32 et MFC, donc tu sais programmer en C++ et le C++ existe sur bien d'autres plateformes (pour le graphisme, il y a des librairies portables).
    Et le C# n'est pas réservé à Windows : http://www.mono-project.com/CSharp_Compiler
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  11. #11
    Membre averti
    Inscrit en
    Août 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 307
    Points : 378
    Points
    378
    Par défaut
    Citation Envoyé par lunatix
    Citation Envoyé par kisitomomotene
    Donc un programme C# se charge relativement lentement, mais s'execute rapidement.
    et java fonctionne exactement de la meme facon. il n'est donc pas vraiment interprété non plus
    Pas tout à fait. Seul les compilateurs JIT de Java fonctionne comme C#. Les compilateurs Java non JIT font de Java un langage interprété.

  12. #12
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    oui, je parle de la JVM de sun, c'est la plus répandu. c'est d'ailleurs pas le compilateur qui fait le boulot, mais la machine virtuelle

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    tout d'abord merci pour ces réponses , elles changent mes idées, par chance je suis encore dans les analyses donc j'ai encore pas mal de temps avant de coder (je n'ai pas participé au débat sur la programmation spontanée, mais je peux dire que je fais partie de ceux qui sont contre , d'ailleur un sondage pourait être amusant) !

    Donc si j'ai bien compris, avec Java, j'aurai un langage portable, mais surtout avec la JVM de sun et JIT (qu'est ce que JIT ? ) le code est compilé dans le langage machine de la plateforme ciblée au moment du chargement du programme et s'exécute donc aussi rapidement ou presque qu'une application C.

    Avec ce que vous me dites je pense que je vais choisir (sauf si apport d'autres éléments) le Java comme plateforme.

    J'aurais besoin d'un dernier élément pour faire mon choix aussi, quelqu'un à t'il déjà vu une application manipuler des modèles géométriques contenant des millions de polygones en Java ? et dans le cas contraire pensez vous que Java pourais le faire ? Mon idée était d'avoir les 4 vues classiques dans un modeleur, vue du dessus, de côté et de face, puis une vue en 3D. Pour la vue en 3D je vais utiliser OPEN GL, donc le langage utilisé importe peu, mais pour les 3 autres vues en java il y à la bibliothèque JAVA 2D, est t'elle suffisament rapide pour afficher de telles quantitées de polygones (en fil de fer) ? ainsi que pour les manipuler en temps réel (déplacements) ?

    Ou alors je pourrais n'utiliser qu'OPEN GL pour les 4 vues, c'est la solution que je pense retenir car j'imagine qu'elle devrait être la plus rapide.

    j'aimerais choisir un langage qui ne me mettrait pas en défaut en terme de rapidité par rapport aux programmes commerciaux et j'aimerais en être certain bien avant de coder .

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    une dernière chose, le code Java et C# est compilé d'abord dans un langage intermédiaire, puis au chargement en mémoire ce code intermédiaire est compilé en langage machine pour la plateforme ciblée. Est ce que cette double compilation ne produit pas un code moins performant qu'un compilateur C++ produisant directement du code pour la machine cible ?

    J'imagine que les compilateurs qui produisent directement du langage machine l'optimisent pour la machine ciblée, mais dans le cas de code intermédiaire on doit rester générique à toutes les machines et donc on ne peut pas coder les optimisations. Savez vous si ce point est très pénalisant en terme de vitesse ?

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    je n'aurais du faire qu'un seul post mais les idées me viennent après,... ce que je voulais rajouter c'est que si j'hésite à utiliser openGL pour une fenêtre (pré-rendu solide perspective) et JAVA2D pour les trois autres (wireframe projections orthographiques) ou OPENGL partout c'est car je ne sais pas si en pratique l'api OPENGL gère de manière plus lourde des fonctions de graphisme simple comme un tracé de ligne ou de polygone en wireframe. Il serait en effet possible que ce soit plus long car OPEN GL est prévu pour le rendu 3D et donc il doit gèrer des fonctions fonction plus générales et plus compliquées (gestion polygones texturés, ...), dans ce cas il faudrait que j'utilise pour les trois vues simple l'api du langage que j'utiliserai, si c'est JAVA ce devrait être JAVA 2D. Voila pourquoi j'ai besoin de savoir si cette librairie est capable de manipuler de grandes quantitées d'objets géométriques.

    Par contre il est aussi possible qu'OPEN GL même en utilisant des fonctions plus complexes reste plus rapide que les apis graphiques du JAVA car il gère les cartes 3D.

    que choisir,...

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par mlequim
    une dernière chose, le code Java et C# est compilé d'abord dans un langage intermédiaire, puis au chargement en mémoire ce code intermédiaire est compilé en langage machine pour la plateforme ciblée. Est ce que cette double compilation ne produit pas un code moins performant qu'un compilateur C++ produisant directement du code pour la machine cible ?

    J'imagine que les compilateurs qui produisent directement du langage machine l'optimisent pour la machine ciblée, mais dans le cas de code intermédiaire on doit rester générique à toutes les machines et donc on ne peut pas coder les optimisations. Savez vous si ce point est très pénalisant en terme de vitesse ?
    non , en realité , un compilateur c optimisant (disons , gcc ) va améliorer le code au niveau des algorithmes (par exemple en faisant sortie le maximum de code des boucles) pour qu'il s'execute le plus vite possible.gcc tentera ensuite d'optimiser le code pour la machine.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    yep, en effet, le déroulage de boucle marche surrement sur toutes les plateformes et peut transparaitre dans le code intermédiaire.

  18. #18
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    swing n'est pas lent du tout. certes il a eut des problemes de jeunesse, mais c'est terminé. OpenGL est utilisé pour les primitives de dessin des composants. il est largement au niveau de SWT et des autres toolkits pour la vitesse.


    quand a la "double compilation", cela devient de plus en plus un avantage, en effet, lorsque la JVM prends le byte code et le compile a la volée pour en faire du natif, elle peut apporter des optimisations que ne seraient pas faites en compilation normale par rapport a l'utilisation du code.

    essaye des applications modernes comme http://blog.developpez.com/index.php...&pb=1#more1290
    pour voir que swing est une tres bonne et rapide APi

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par lunatix
    swing n'est pas lent du tout. certes il a eut des problemes de jeunesse, mais c'est terminé. OpenGL est utilisé pour les primitives de dessin des composants. il est largement au niveau de SWT et des autres toolkits pour la vitesse.


    quand a la "double compilation", cela devient de plus en plus un avantage, en effet, lorsque la JVM prends le byte code et le compile a la volée pour en faire du natif, elle peut apporter des optimisations que ne seraient pas faites en compilation normale par rapport a l'utilisation du code.

    essaye des applications modernes comme http://blog.developpez.com/index.php...&pb=1#more1290
    pour voir que swing est une tres bonne et rapide APi
    Merci pour ces infos Je ne suis pas sur d'avoir bien tout compris, quand tu dis qu'OpenGL est utilisé pour les primitives de dessin des composants, tu veux dire que par exemple les JButton et les JFrame sont dessinés par Open GL ? C'est fait par default ou il faut l'activer ?

    et pour le dessin vous me conseillez une page avec 4 JPanel, 3 JPanel dans lequels je dessine avec Java2D et un avec OPenGL ou alors 4 JPanel utilisant OPenGL pour dessiner ? Je penche de mon côté pour la solution 2.

    Personne n'à l'air de dire que Java avec Swing/OpenGL ne pourait pas afficher des millions de polygones en wireframe dans 3 vues + une en prérendu donc je vais prendre ça pour un oui .

    Pour finir, pour la gestion de la mémoire, un tel nombre de polygones ne poserait pas problème à Java ? Je penche notamment au Garbage collector qui à réputation d'être lent, c'est aussi un problème de jeunesse ? Peut être y à t'il moyen pour accellerer le tout de ne pas l'utiliser et d'effectuer les allocations désallocations explicitement ?

    voilou, c'est tout

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    Je suis maintenant décidé pour Java et Open GL, cependant j'aurais besoin d'une réponse à mon précédent post pour continuer mon analyse, quelqu'un pour m'aider ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Cherche un langage pour WIndows et Linux pour IP/TCP-UDP/DSCP
    Par alacran35 dans le forum Programmation système
    Réponses: 2
    Dernier message: 09/11/2012, 14h15
  2. Quel langage pour Windows CE et interfaces ports COMs ?
    Par Nicoteen dans le forum Mobiles
    Réponses: 10
    Dernier message: 24/08/2007, 12h53
  3. Quel langage pour le développement embarqué ?
    Par freakydoz dans le forum Débats sur le développement - Le Best Of
    Réponses: 37
    Dernier message: 23/04/2007, 19h31
  4. Quel langage pour développer un logiciel de télétransmission
    Par gidebo dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 28/08/2003, 14h19
  5. Quel langage pour un application graphique sous windows
    Par ipeteivince dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 06/06/2003, 17h00

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