33 votes

Quelle est la meilleure alternative au C++ pour la programmation graphique en temps réel ?

Le C++ me fait perdre trop de temps en me faisant microgérer ma propre mémoire, en me faisant taper beaucoup trop souvent (bonjour std::vector<Thingy>::const_iterator it = lotsOfThingys.begin() ), et m'ennuie avec de longs temps de compilation. Quelle est la meilleure alternative pour une programmation graphique temps réel sérieuse ? La collecte des déchets est indispensable (tout comme la possibilité d'éviter son utilisation lorsque cela est nécessaire), et la vitesse doit être compétitive avec le C++. Une histoire raisonnable pour accéder aux librairies C est également un must.

(Divulgation complète : j'ai ma propre réponse à cette question, mais je suis intéressé de voir ce que d'autres ont trouvé comme bonnes alternatives au C++ pour le travail graphique en temps réel).

Edit : Merci à tous pour ces réponses réfléchies. Étant donné qu'il n'y a pas vraiment de "bonne" réponse à cette question, je ne choisirai pas de réponse particulière. De plus, je choisirais simplement le langage que j'aime comme alternative au C++, ce qui ne serait pas vraiment juste.

19voto

daddz Points 2994

Qu'en est-il Langage de programmation D ?

Quelques liens demandés dans le commentaire :

Api Win32

Derelict (Multimedia lib)

18voto

Martin Cote Points 12762

Je ne rejetterais pas le C++. En fait, j'envisagerais d'ajouter Boost à votre bibliothèque C++, qui rend le langage beaucoup plus utilisable. Votre exemple deviendrait :

BOOST_FOREACH( Thingy& t, lostOfThingys ) {
    // do something with 't'
}

Boost possède des tonnes d'outils qui contribuent à faire du C++ un meilleur langage.

17voto

Drealmer Points 2284

C# est un langage agréable qui répond à vos exigences, et il est définitivement adapté au graphisme, grâce aux efforts de Microsoft pour le doter d'outils et de bibliothèques formidables comme Visual Studio et XNA.

15voto

Dima Points 19888

Je ne suis pas d'accord avec votre prémisse. Lorsqu'il est utilisé avec soin et correctement, le C++ est un excellent langage, en particulier pour un domaine tel que les graphiques en temps réel, où la vitesse est essentielle.

La gestion de la mémoire devient facile si vous concevez bien votre système, et si vous utilisez des conteneurs stl et des pointeurs intelligents.

std::vector::const_iterator it = lotsOfThingys.begin()) sera beaucoup plus courte si vous utilisez

using namespace std; typedef vector::const_iterator ThingyConstIter;

Et vous pouvez réduire considérablement les temps de compilation en divisant vos systèmes en modules raisonnablement autonomes, en utilisant des en-têtes précompilés ou en utilisant l'idiome PIMPL.

13voto

James Hopkin Points 8318

Peut-être une approche hybride. Python et C++ font une bonne combinaison (voir, par exemple, PyGame).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X