Je suis développeur Java principalement (bouuuh, bouuuh, ...), et C++
occasionnel.
J'ai eu l'occasion de discuter ici ou ailleurs avec certains habitués
(Fabien, Kame, Christophe de mémoire). On avait notamment discuté des
avantages/inconvénients respectifs de Java et C++... A cette ocasion
j'avais découvert des alternatives propres à certaines pratiques que
je considère comme douteuses dans l'usage du C++ que je connais
(C/C++, principalement sous VC++).
Actuellement je suis ammené à faire de + en + de C/C++ ce qui
m'emmerde profondément. ça n'est pas que je n'aime pas C++, mais
fesant pas mal de Java, je ne supporte pas les absurdités de la
programmation C/C++ sous Windows. Pourquoi éxiste-t-il 873
redéfinition d'un entier 32 bit??? Les programmeur de chez MS sont
payés au #define? Pourquoi dans VC++ on doit choisir entre CString qui
est non portable, et "char *" qui est légèrement primitif!!! (J'ai
une idée de la réponse...). On devrait disposer avec chaque
environnement C++ d'un bibliothèque portable reprenant au minimum les
fonctions des packages java.lang et java.util de java...
Il me semble qu'il y a un fossé (20 ans et pas mal de bon sens) entre
ce que je lis ici et ce que je constate dans la "vraie vie" (du moins,
la mienne)!!! Que me conseilleriez-vous pour me sortir de cette
panade?
Comment faire du C++ propre et portable (GUI portable en option) en
alternative à VC++. Ou, comment et avec quoi bossez-vous? Quel IDE,
quel compilo et surtout quelle(s) bibliothèque(s) pour remplacer les
MFC? Le tout à l'echelle d'une PME et sans obliger tous mes collègues
à migrer avec moi (même si certains me suivraient bien volontier). Je
sais, je suis très éxigeant, mais bon, je viens de java ;-)
Au passage, je suis bien intéressé par des bons livres (de préférence
en français, mais pas obligatoirement) sur la bonne programmation
(C/)C++... Mais j'imagine qu'en faisant qq recherches je trouverais la
réponse dans les archives... (si vous avez un lien vers un post
intressant...)
Il me semble qu'il y aurait moins de librairies écrites en C, et plus écrites en C++ si le format binaire des .LIB était standardisé...
Mouais... la quasi-totalité des bibliothèques écrites en C que j'utilise sont fournies sous forme de sources (parfois assez chiants à compiler, d'ailleurs), rarement sous forme précompilée (.lib/.a). Du coup, l'argument ne tient pas.
-- ;-)
Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" et le "libre" dans la vie.
Il y a des domaines d'activité où tu as juste le droit de payer une somme très élevée pour avoir droit à un ensemble de .LIB avec une doc, et s'il y a un problème tu as un support technique pour te dépanner.
Mike
Il me semble qu'il y aurait moins de librairies écrites en C, et plus
écrites en C++ si le format binaire des .LIB était standardisé...
Mouais... la quasi-totalité des bibliothèques écrites en C que
j'utilise sont fournies sous forme de sources (parfois assez chiants à
compiler, d'ailleurs), rarement sous forme précompilée (.lib/.a). Du
coup, l'argument ne tient pas.
--
;-)
Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" et
le "libre" dans la vie.
Il y a des domaines d'activité où tu as juste le droit de payer une somme
très élevée pour avoir droit à un ensemble de .LIB avec une doc, et s'il y a
un problème tu as un support technique pour te dépanner.
Il me semble qu'il y aurait moins de librairies écrites en C, et plus écrites en C++ si le format binaire des .LIB était standardisé...
Mouais... la quasi-totalité des bibliothèques écrites en C que j'utilise sont fournies sous forme de sources (parfois assez chiants à compiler, d'ailleurs), rarement sous forme précompilée (.lib/.a). Du coup, l'argument ne tient pas.
-- ;-)
Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" et le "libre" dans la vie.
Il y a des domaines d'activité où tu as juste le droit de payer une somme très élevée pour avoir droit à un ensemble de .LIB avec une doc, et s'il y a un problème tu as un support technique pour te dépanner.
Mike
Fabien LE LEZ
On Wed, 21 Jul 2004 10:52:40 +0200, "Mickael Pointier" :
Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" et le "libre" dans la vie.
Certes. Mais ton argument n'explique pas pour autant pourquoi tant de bibliothèques open-source sont écrites en C.
On Wed, 21 Jul 2004 10:52:40 +0200, "Mickael Pointier"
<mpointier@edengames.moc>:
Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" et
le "libre" dans la vie.
Certes. Mais ton argument n'explique pas pour autant pourquoi tant de
bibliothèques open-source sont écrites en C.
On Wed, 21 Jul 2004 10:52:40 +0200, "Mickael Pointier" :
Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" et le "libre" dans la vie.
Certes. Mais ton argument n'explique pas pour autant pourquoi tant de bibliothèques open-source sont écrites en C.
Parce qu'au début de l'open source, le C++ n'était pas stable ?
-- Loïc
Matthieu Moy
Fabien LE LEZ writes:
On Wed, 21 Jul 2004 10:52:40 +0200, "Mickael Pointier" :
Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" et le "libre" dans la vie.
Certes. Mais ton argument n'explique pas pour autant pourquoi tant de bibliothèques open-source sont écrites en C.
Parce que c'est le plus réutilisable, principalement : D'une bibliothèque écrite en C, tu peux faire des bindings vers d'autres langages sans trop de problèmes. Avec une API en C++ plein de templates, d'héritage, ... tu es bien embêté quand tu veux appeler ta bibliothèque depuis un language qui n'a pas toutes ces fonctionalités.
Bon, et c'est surtout parce que les auteurs sont des gens qui trouvent que le C++, ça pue, et qu'ils aiment bien réinventer la roue en réécrivant des vtables, des types strings et une gestion des exceptions en C pur ...
(comment ça un troll ? ;-)
-- Matthieu
Fabien LE LEZ <gramster@gramster.com> writes:
On Wed, 21 Jul 2004 10:52:40 +0200, "Mickael Pointier"
<mpointier@edengames.moc>:
Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" et
le "libre" dans la vie.
Certes. Mais ton argument n'explique pas pour autant pourquoi tant de
bibliothèques open-source sont écrites en C.
Parce que c'est le plus réutilisable, principalement : D'une
bibliothèque écrite en C, tu peux faire des bindings vers d'autres
langages sans trop de problèmes. Avec une API en C++ plein de
templates, d'héritage, ... tu es bien embêté quand tu veux appeler ta
bibliothèque depuis un language qui n'a pas toutes ces fonctionalités.
Bon, et c'est surtout parce que les auteurs sont des gens qui trouvent
que le C++, ça pue, et qu'ils aiment bien réinventer la roue en
réécrivant des vtables, des types strings et une gestion des
exceptions en C pur ...
On Wed, 21 Jul 2004 10:52:40 +0200, "Mickael Pointier" :
Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" et le "libre" dans la vie.
Certes. Mais ton argument n'explique pas pour autant pourquoi tant de bibliothèques open-source sont écrites en C.
Parce que c'est le plus réutilisable, principalement : D'une bibliothèque écrite en C, tu peux faire des bindings vers d'autres langages sans trop de problèmes. Avec une API en C++ plein de templates, d'héritage, ... tu es bien embêté quand tu veux appeler ta bibliothèque depuis un language qui n'a pas toutes ces fonctionalités.
Bon, et c'est surtout parce que les auteurs sont des gens qui trouvent que le C++, ça pue, et qu'ils aiment bien réinventer la roue en réécrivant des vtables, des types strings et une gestion des exceptions en C pur ...
(comment ça un troll ? ;-)
-- Matthieu
Fabien LE LEZ
On Wed, 21 Jul 2004 21:21:48 +0200, Matthieu Moy :
Bon, et c'est surtout parce que les auteurs sont des gens qui trouvent que le C++, ça pue
... et qui tiennent à mettre des "buffer overflow" dans leurs programmes pour donner leur chance aux pirates ;-)
Snif... ne sommes-nous qu'une dizaine dans le monde à être au courant qu'on peut programmer en C++ ?
-- ;-)
On Wed, 21 Jul 2004 21:21:48 +0200, Matthieu Moy
<MatthieuNOSPAM.Moy@imag.fr.invalid>:
Bon, et c'est surtout parce que les auteurs sont des gens qui trouvent
que le C++, ça pue
... et qui tiennent à mettre des "buffer overflow" dans leurs
programmes pour donner leur chance aux pirates ;-)
Snif... ne sommes-nous qu'une dizaine dans le monde à être au courant
qu'on peut programmer en C++ ?
On Wed, 21 Jul 2004 21:21:48 +0200, Matthieu Moy :
Bon, et c'est surtout parce que les auteurs sont des gens qui trouvent que le C++, ça pue
... et qui tiennent à mettre des "buffer overflow" dans leurs programmes pour donner leur chance aux pirates ;-)
Snif... ne sommes-nous qu'une dizaine dans le monde à être au courant qu'on peut programmer en C++ ?
-- ;-)
Martinez Jerome
Fabien LE LEZ wrote:
Certes. Mais ton argument n'explique pas pour autant pourquoi tant de bibliothèques open-source sont écrites en C.
Peux-tu me donner une solution pour que ma bibliotheque soit utilisable par : - MS Visual Basic - MS Visual C# - Python - Borland Delphi - etc...
Meme si je travaille en C++, la seule solution que j'ai trouvé pour pouvoir faire cohabiter tous ces languages est d'avoir une interface en C pur.
Pour ma bibliothèque, je suis pret a avoir une interface en C++ dès que je saurais au moins comment faire pour pouvoir programmer en d'autres languages avec!
Voila sans doute la raison du pourquoi, meme en open-source les libs sont en C, au moins pour l'interface.
Fabien LE LEZ wrote:
Certes. Mais ton argument n'explique pas pour autant pourquoi tant de
bibliothèques open-source sont écrites en C.
Peux-tu me donner une solution pour que ma bibliotheque soit utilisable
par :
- MS Visual Basic
- MS Visual C#
- Python
- Borland Delphi
- etc...
Meme si je travaille en C++, la seule solution que j'ai trouvé pour
pouvoir faire cohabiter tous ces languages est d'avoir une interface en
C pur.
Pour ma bibliothèque, je suis pret a avoir une interface en C++ dès que
je saurais au moins comment faire pour pouvoir programmer en d'autres
languages avec!
Voila sans doute la raison du pourquoi, meme en open-source les libs
sont en C, au moins pour l'interface.
Certes. Mais ton argument n'explique pas pour autant pourquoi tant de bibliothèques open-source sont écrites en C.
Peux-tu me donner une solution pour que ma bibliotheque soit utilisable par : - MS Visual Basic - MS Visual C# - Python - Borland Delphi - etc...
Meme si je travaille en C++, la seule solution que j'ai trouvé pour pouvoir faire cohabiter tous ces languages est d'avoir une interface en C pur.
Pour ma bibliothèque, je suis pret a avoir une interface en C++ dès que je saurais au moins comment faire pour pouvoir programmer en d'autres languages avec!
Voila sans doute la raison du pourquoi, meme en open-source les libs sont en C, au moins pour l'interface.
Gabriel Dos Reis
"Mickael Pointier" writes:
| > >Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" | et | > >le "libre" dans la vie. | > | > Certes. Mais ton argument n'explique pas pour autant pourquoi tant de | > bibliothèques open-source sont écrites en C. | | Parce que le C bien écrit compile avec un compilateur C++, alors que le C++ | ne compile pas avec un compilateur C ?
Non.
De ce que j'ai pu voir depuis que je traine dans la communauté des projets open-source au sens large, la réticence à utiliser C++ est lié au moins à deux facteurs :
(1) ignorance (2) irrationnalité
Ces facteurs ne viennent pas souvent des développeurs eux-mêmes, mais plutôt de gens bien pensants.
| > >Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit"
| et
| > >le "libre" dans la vie.
| >
| > Certes. Mais ton argument n'explique pas pour autant pourquoi tant de
| > bibliothèques open-source sont écrites en C.
|
| Parce que le C bien écrit compile avec un compilateur C++, alors que le C++
| ne compile pas avec un compilateur C ?
Non.
De ce que j'ai pu voir depuis que je traine dans la communauté des
projets open-source au sens large, la réticence à utiliser C++ est lié
au moins à deux facteurs :
(1) ignorance
(2) irrationnalité
Ces facteurs ne viennent pas souvent des développeurs eux-mêmes, mais
plutôt de gens bien pensants.
| > >Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" | et | > >le "libre" dans la vie. | > | > Certes. Mais ton argument n'explique pas pour autant pourquoi tant de | > bibliothèques open-source sont écrites en C. | | Parce que le C bien écrit compile avec un compilateur C++, alors que le C++ | ne compile pas avec un compilateur C ?
Non.
De ce que j'ai pu voir depuis que je traine dans la communauté des projets open-source au sens large, la réticence à utiliser C++ est lié au moins à deux facteurs :
(1) ignorance (2) irrationnalité
Ces facteurs ne viennent pas souvent des développeurs eux-mêmes, mais plutôt de gens bien pensants.
-- Gaby
Gabriel Dos Reis
Loïc Joly writes:
| Fabien LE LEZ wrote: | | > On Wed, 21 Jul 2004 10:52:40 +0200, "Mickael Pointier" | > : | > | >>Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" et | >>le "libre" dans la vie. | > Certes. Mais ton argument n'explique pas pour autant pourquoi tant de | > bibliothèques open-source sont écrites en C. | | Parce qu'au début de l'open source, le C++ n'était pas stable ?
Tu crois que dans les années 80, le C était stable ?
-- Gaby
Loïc Joly <loic.actarus.joly@wanadoo.fr> writes:
| Fabien LE LEZ wrote:
|
| > On Wed, 21 Jul 2004 10:52:40 +0200, "Mickael Pointier"
| > <mpointier@edengames.moc>:
| >
| >>Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" et
| >>le "libre" dans la vie.
| > Certes. Mais ton argument n'explique pas pour autant pourquoi tant de
| > bibliothèques open-source sont écrites en C.
|
| Parce qu'au début de l'open source, le C++ n'était pas stable ?
Tu crois que dans les années 80, le C était stable ?
| Fabien LE LEZ wrote: | | > On Wed, 21 Jul 2004 10:52:40 +0200, "Mickael Pointier" | > : | > | >>Ne prend pas ton cas pour une généralité: Il n'y a pas que le "gratuit" et | >>le "libre" dans la vie. | > Certes. Mais ton argument n'explique pas pour autant pourquoi tant de | > bibliothèques open-source sont écrites en C. | | Parce qu'au début de l'open source, le C++ n'était pas stable ?
Tu crois que dans les années 80, le C était stable ?