OVH Cloud OVH Cloud

Visual C++

7 réponses
Avatar
Neu²
Salut,
Qu'en pensez vous de VC++ vs gcc ou mingw (c'est loin d'etre un troll),
je ne cherche pas forcement une compatibilité windows/linux.
Merci.

7 réponses

Avatar
adebaene
Neu² <rien> wrote in message news:<416a72c8$0$6170$...
Salut,
Qu'en pensez vous de VC++ vs gcc ou mingw (c'est loin d'etre un troll),


Si c'est un troll!

- L'IDE de VC est 10 foix plus évolué et convivial.
- Côté conformance à la norme, VC est peut être légèrement en avance
sur gcc (mais je n'ai pas suivi les dernières versions de gcc). mingw
a généralement quelques versions de retard par rapport à la dernière
version de gcc.
- Côté optimisation, gcc est peut être légèrement meilleur(inlining,
omission de la copie de la veleur de retour). Ceci dit, l'optimiseur
back-end de VC - qui génère l'assembleur - est très bon.
- VC est *beaucoup* plus simple à mettre en oeuvre pour utiliser l'API
Windows.
- L'un est payant l'autre pas!

Arnaud
Avatar
Pierre Maurette
(Arnaud Debaene) a écrit:

Neu² <rien> wrote in message news:<416a72c8$0$6170$...
Salut,
Qu'en pensez vous de VC++ vs gcc ou mingw (c'est loin d'etre un troll),


Si c'est un troll!

- L'IDE de VC est 10 foix plus évolué et convivial.
- Côté conformance à la norme, VC est peut être légèrement en avance
sur gcc (mais je n'ai pas suivi les dernières versions de gcc). mingw
a généralement quelques versions de retard par rapport à la dernière
version de gcc.
- Côté optimisation, gcc est peut être légèrement meilleur(inlining,
omission de la copie de la veleur de retour). Ceci dit, l'optimiseur
back-end de VC - qui génère l'assembleur - est très bon.
- VC est *beaucoup* plus simple à mettre en oeuvre pour utiliser l'API
Windows.
- L'un est payant l'autre pas!


C'est marrant, en me basant sur la version 7 (.NET) de VC et les
portages Windows 3.2 à 3.4 de gcc, j'aurais dit le contraire quand à
la conformance (mais je pensais plus à du C qu'à du C++) et surtout
l'optimisation...

L'EDI de VS .NET est paynat et génial (AMHA, et comparé même à VS6).
En revanche, le compilateur même dans sa version complète (optimiser
compiler) est gratuit :
http://msdn.microsoft.com/visualc/vctoolkit2003/
et ça, que je ne connais pas:
http://lab.msdn.microsoft.com/express/visualc/

Il existe pour gcc des EDI prêts à installer (DevC++, C++BuilderX par
exemple) très pratiques.

Je suis convaincu qu'il existe de bons IDE pour le toolkit VC++,
peut-être Eclipse ?

C++BuilderX supporte à la fois (entr'autres) gcc et VC++.
Malheureusement, sa version gratuite ne supporte pas légalement
l'intégration du dégogueur de Microsoft.
--
Pierre
Avatar
Luc Hermitte
Pierre Maurette wrote in
news::

>Si c'est un troll!



Il a faim ?

>- Côté conformance à la norme, VC est peut être légèrement en avance
>sur gcc (mais je n'ai pas suivi les dernières versions de gcc). mingw
>a généralement quelques versions de retard par rapport à la dernière
>version de gcc.
C'est marrant, en me basant sur la version 7 (.NET) de VC et les
portages Windows 3.2 à 3.4 de gcc, j'aurais dit le contraire quand à
la conformance (mais je pensais plus à du C qu'à du C++) et surtout
l'optimisation...



VC 7.0 n'est pas aussi au point que VC 7.1, qui lui est un des plus
conformes. Voir par exemples les tests de regression chez boost.
Pour le C, je ne sais pas.

Pour l'optimisation, je n'ai jamais trop entendu que GCC s'en sortait
mieux que VC. Serait-ce récent ?

En revanche, le compilateur même dans sa version complète (optimiser
compiler) est gratuit :
http://msdn.microsoft.com/visualc/vctoolkit2003/ et ça, que je ne
connais pas: http://lab.msdn.microsoft.com/express/visualc/



Penser aux divers SDK pour avoir les bibliothèques qui manquent et
autres outils comme le débuggueur.

Je suis convaincu qu'il existe de bons IDE pour le toolkit VC++,
peut-être Eclipse ?



Jusqu'à présent, je n'ai jamais entendu parler d'eclipse en termes
d'«adapté au C++». Même avec ses plugins comme CDT.

C++BuilderX supporte à la fois (entr'autres) gcc et VC++.
Malheureusement, sa version gratuite ne supporte pas légalement
l'intégration du dégogueur de Microsoft.




Quant à MinGW, c'est une adaption win32 d'un ensemble d'outils du monde
*nix. On y trouve GCC. On le trouve aussi avec une autre adaptation :
cygwin.

--
Luc Hermitte
Avatar
adebaene
Pierre Maurette wrote in message news:...
(Arnaud Debaene) a écrit:

>Neu² <rien> wrote in message news:<416a72c8$0$6170$...
>> Salut,
>> Qu'en pensez vous de VC++ vs gcc ou mingw (c'est loin d'etre un troll),
>Si c'est un troll!
>
>- L'IDE de VC est 10 foix plus évolué et convivial.
>- Côté conformance à la norme, VC est peut être légèrement en avance
>sur gcc (mais je n'ai pas suivi les dernières versions de gcc). mingw
>a généralement quelques versions de retard par rapport à la dernière
>version de gcc.
>- Côté optimisation, gcc est peut être légèrement meilleur(inlining,
>omission de la copie de la veleur de retour). Ceci dit, l'optimiseur
>back-end de VC - qui génère l'assembleur - est très bon.
>- VC est *beaucoup* plus simple à mettre en oeuvre pour utiliser l'API
>Windows.
>- L'un est payant l'autre pas!
C'est marrant, en me basant sur la version 7 (.NET) de VC et les
portages Windows 3.2 à 3.4 de gcc, j'aurais dit le contraire quand à
la conformance (mais je pensais plus à du C qu'à du C++)


Si tu parles du C, effectivement, les versions récentes de gcc
implémentent une bonne partie de C99, ce que ne fait pas du tout VC
(et ce n'est pas prévu qu'il le fasse un jour d'ailleurs).

et surtout
l'optimisation...


C'est à dire? Tu peux préciser? Tu as des benchmarks? Tu parles
d'optimisation à quel niveau? Pour ce que j'en sais, gcc est meilleur
sur l'optimisation front-end (aliasing, optimisation de la valeur de
retour), mais le back-end de VC est supérieur pour généré du code x86
optimisé.

Arnaud
Avatar
Pierre Maurette
Luc Hermitte a écrit:

Pierre Maurette wrote in
news::


[...]
C'est marrant, en me basant sur la version 7 (.NET) de VC et les
portages Windows 3.2 à 3.4 de gcc, j'aurais dit le contraire quand à
la conformance (mais je pensais plus à du C qu'à du C++) et surtout
l'optimisation...



VC 7.0 n'est pas aussi au point que VC 7.1, qui lui est un des plus
conformes. Voir par exemples les tests de regression chez boost.


C'est à la 7.1 que je pensais (celle de .NET 2003).
Dont acte pour la qualité du C++.

Pour le C, je ne sais pas.


Je me basais sur
1) le fait que Microsoft semble se désintéresser de C99
2) les seules approches c99 que j'ai trouvé sous Windows sont sur les
dernières versions de gcc.
3) le fait que Microsoft documente clairement les "Specific
Microsoft", ce qui est tout à son avantage
4) le bruit de fond anti Microsoft sur certains NGs.

Pour l'optimisation, je n'ai jamais trop entendu que GCC s'en sortait
mieux que VC. Serait-ce récent ?


Je ne crois pas. Des tests simples (donc imparfaits) sont calamiteux
pour gcc, face à 7.1 et même à Borland. Mais je dois admettre que je
compile/lie une fois, je n'utilise pas le profiler GNU par exemple.

En revanche, le compilateur même dans sa version complète (optimiser
compiler) est gratuit :
http://msdn.microsoft.com/visualc/vctoolkit2003/ et ça, que je ne
connais pas: http://lab.msdn.microsoft.com/express/visualc/



Penser aux divers SDK pour avoir les bibliothèques qui manquent et
autres outils comme le débuggueur.

Je suis convaincu qu'il existe de bons IDE pour le toolkit VC++,
peut-être Eclipse ?



Jusqu'à présent, je n'ai jamais entendu parler d'eclipse en termes
d'«adapté au C++». Même avec ses plugins comme CDT.


CDT était destiné à gcc quand je l'ai testé. Mon but était de
supporter les debuggers Microsoft dans une optique assembleur/C/C++.
Il eut été plus simple de partir d'Eclipse from scratch que d'Eclipse
+ CDT. C++BuilderX est (entr'autres) un EDI somme toute assez proche
d'Eclipse, puisque c'est une adaptation de l'EDI de jBuilder. C'eut
été une solution idéale, malheureusement le support du debugger
Microsoft est réservé aux versions payantes. Pour le reste, ça marche,
puisque la construction est basée sur des fichiers XML. Le plugin
(Java) de coloration syntaxique est relativement facile à écrire. On a
également le droit d'écrire les classes du support debugger Microsoft,
mais ce n'est pas à ma portée.
Enfin, C++BuilderX a toutes les chances d'être un produit mort-né.
C'est dommage, parce que la version personnelle gratuite 1.0 pouvait
être utilisée pour tout déploiement.

C++BuilderX supporte à la fois (entr'autres) gcc et VC++.
Malheureusement, sa version gratuite ne supporte pas légalement
l'intégration du dégogueur de Microsoft.




Quant à MinGW, c'est une adaption win32 d'un ensemble d'outils du monde
*nix. On y trouve GCC. On le trouve aussi avec une autre adaptation :
cygwin.


Il est livré/installé avec C++BuilderX (en 3.2).

--
Pierre
Avatar
Pierre Maurette
(Arnaud Debaene) a écrit:
[...]
et surtout
l'optimisation...


C'est à dire? Tu peux préciser? Tu as des benchmarks? Tu parles
d'optimisation à quel niveau? Pour ce que j'en sais, gcc est meilleur
sur l'optimisation front-end (aliasing, optimisation de la valeur de
retour), mais le back-end de VC est supérieur pour généré du code x86
optimisé.


Non, sincèrement, je n'ai pas fait de bench sérieux, ma démarche était
bidouillesque et j'en ai conscience. Elle consiste à proposer au
compilateur un petit problème, et à mesurer et désassembler le code
générer. Je connais les limites de la mesure sur un petit bout sous
Pentium/Windows (on peut en partie s'en affranchir) et la différence
entre uns sortie code assembleur et le code machine généré dans la
release.
Je voulais vous donner un exemple, malheureusement minilien.com a
l'air en rideau. Collez:
optimisation gcc borland vc7 group:fr.comp.lang.c* author:Pierre
author:Maurette
dans Google Groups, il devrait y avoir une seule réponse.
--
Pierre
Avatar
Pierre Maurette
Voilà:
http://minilien.com/?A2rDzNqVIB
--
Pierre