OVH Cloud OVH Cloud

Votre IDE préféré ?

125 réponses
Avatar
Vincent Schmid
Bonjour,
Questions aux développeurs, s'il y en a sur ce groupe :
- Quel est votre langage de développement multi-plateforme préféré ?
- Quel est le meilleur IDE pour Java ?
- Quelqu'un a-t-il essayé Mono ? Est-ce une bonne solution ?
- Y a-t-il quelqu'un qui utilise Kylix ?
Voilà, réponses, commentaires, avis autorisés ou non sont les bienvenus...

Vincent

10 réponses

Avatar
k
Le Fri, 27 Aug 2004 17:54:31 +0200 après l'an de grâce, inspiré(e)
Laurent BERNE écrivait la plume
légère :



Du code C++ pur n'a pas besoin de pointeur.
J'ai fait un moteur d'optimisation de découpe entièrement en C++,
quelques milliers de lignes (je sais pas combien, je m'amuse pas à les
compter). Pas un seul pointeur dedans. Uniquement l'outillage fourni
par la STL.
A l'inverse, la moindre transmission de paramètre à une interface
graphique se fait par cette intermédiaire..
Juste par curiosité le «À l'inverse» me paraissant pas clair je voudrais

comprendre :

La transmission de paramètres se fait par l'intermédiaire de quoi ?
passage par valeur, par adresse, par magie ? pour passer un objet STL
il faut faire hériter de la classe parameter et il s'en occupe
tout seul ou quoi ?

--
Thou shalt not omit adultery.

Avatar
Manuel Leclerc

Manuel Leclerc a pensé très fort :


[snip smart pointer]


Et quand on veut que l'objet survive à la fonction qui
l'a créé ?


déclaré dans la portée appelant la fonction, et transmis
comme argument à la fonction initialisante.


Cela revient à ne pouvoir instancier que des objets dont
la durée de vie est contrôlée par la notion de portée dans
les sources. Sans parler du problème du nombre d'objets (il
faut un pointeur différent déclaré par objet, non ?). Et puis,
il faut du coup faire remonter les détails d'implémentations
dans les fonctions appelantes, jusqu'à 'main' tant qu'on y est.

Ce n'est evidement pas ce genre de chose qui permet de se
passer des pointeurs en C++, à mon humble avis.

--
<@Logan> I spent a minute looking at my own code by accident.
<@Logan> I was thinking "What the hell is this guy doing?"



Avatar
Laurent BERNE

Cela revient à ne pouvoir instancier que des objets dont
la durée de vie est contrôlée par la notion de portée dans
les sources.
ouaip. Code beau, propre et structuré.



Sans parler du problème du nombre d'objets (il
faut un pointeur différent déclaré par objet, non ?). Et puis,
dans ces cas là, on utilise les conteneurs plutôt (list, vector,

deque..)
Ils se redimensionnent à l'infini(enfin dans la possibilité de la
machine), se demerdent comme des grands pour la gestion de la mémoire.
On créer l'objet, on le jette dans le conteneur(mais dans ce cas
précis, on l'instancie pas par l'opérateur new..)



il faut du coup faire remonter les détails d'implémentations
dans les fonctions appelantes, jusqu'à 'main' tant qu'on y est.

Ce n'est evidement pas ce genre de chose qui permet de se
passer des pointeurs en C++, à mon humble avis.


L'étape la plus dure pour moi a été la réorganisation du code en "tout
objet".
Le reste a coulé de source par la suite.

--
Ce n'est pas parce que tu touches le fond que tu dois t'arrêter de
creuser

Avatar
Laurent BERNE
Le Fri, 27 Aug 2004 17:54:31 +0200 après l'an de grâce, inspiré(e)
Laurent BERNE écrivait la plume
légère :



Du code C++ pur n'a pas besoin de pointeur.
J'ai fait un moteur d'optimisation de découpe entièrement en C++,
quelques milliers de lignes (je sais pas combien, je m'amuse pas à les
compter). Pas un seul pointeur dedans. Uniquement l'outillage fourni
par la STL.
A l'inverse, la moindre transmission de paramètre à une interface
graphique se fait par cette intermédiaire..


Juste par curiosité le «À l'inverse» me paraissant pas clair je voudrais
comprendre :

La transmission de paramètres se fait par l'intermédiaire de quoi ?
D'un pointeur.


passage par valeur, par adresse, par magie ? pour passer un objet STL
il faut faire hériter de la classe parameter et il s'en occupe
tout seul ou quoi ?


Par exemple. Transmet une chaine de caractère à une boite de dialogue.
la fonction "MessageBox" de l'APIWin32 demande en paramètre uniquement
des pointeurs sur caractères (tableau de caractères à zéro terminal
quoi).
Si tu travail avec le type std::string standard, il te faut convertir
le type string en pointeur de caractères. Pas le choix, c'est imposé
par la lib.
Tu te retrouves donc à créer un pointeur uniquement pour
ça(heureusement, dans ce cas précis, y'a la fonction standard c_str());

--
Ce n'est pas parce que tu touches le fond que tu dois t'arrêter de
creuser


Avatar
David MAREC
Salut les gens.
D'après k:

Du code C++ pur n'a pas besoin de pointeur.



Si. Mais ça ne s'utilise pas tout à fait de la même façon qu'en C.
En fait, les pointeurs sont _moins_ utilisés.
On peut, comme le souligne Laurent Berne, écrire tout un projet sans en voir
la queue d'un.

Pour ce faire, la STL fournit des conteneurs prêts à l'emploi,
vector/list/map etc., qui évite de gérer les mécanismes d'allocation et de
libération de ressources dans de nombreux cas de figures.

Sinon, on utilise un pointeur intelligent, on encapsule ses pointeurs dans
une classe ou un conteneur étudié pour qu'il libère les ressources allouées
proprement, on fait gaffe etc.

Ceci dit, il est possible de se tirer une balle dans le pied comme en C.

[...]
La transmission de paramètres se fait par l'intermédiaire de quoi ?
passage par valeur, par adresse, par magie ?


Par référence, au possible.

pour passer un objet STL
il faut faire hériter de la classe parameter et il s'en occupe
tout seul ou quoi ?


Par référence, Oui.


Avatar
David MAREC
D'après Laurent BERNE:

Si tu as envie de rire, vas faire un tour sur fclc++ et décrit comment
le C++ a une gestion pourrie des pointeurs.
Tu vas va voir tu vas y déclencher l'hilarité générale !


Bof, ils ne sont pas très portés sur l'humour dans ce groupe là.


Des pinces-sans-rire, peut-être ?

Avatar
David MAREC
D'après Vincent Schmid:

Questions aux développeurs, s'il y en a sur ce groupe :


A vue de nez, y 'en a .

Avatar
Thierry B.
Manuel Leclerc wrote:
faut un pointeur différent déclaré par objet, non ?). Et puis,
il faut du coup faire remonter les détails d'implémentations
dans les fonctions appelantes, jusqu'à 'main' tant qu'on y est.

A la limite, on met ça dans l'installeur, et zou...


Avatar
Emmanuel Florac
Le Fri, 27 Aug 2004 16:34:35 +0200, Laurent BERNE a écrit :

Si tu fais du C++, tu n'utilises pas de pointeurs, donc pas de fuite
mémoire. Tu confonds avec le C.


Ah oui, d'accord. Mais bien sûr. Tu confonds sans doute avec C#?

--
Mais monsieur, voudriez-vous que je me l'écorchasse?
Barbey d'Aurevilly.

Avatar
Emmanuel Florac
Le Fri, 27 Aug 2004 17:55:59 +0200, Laurent BERNE a écrit :

Je sais pas si c'est considéré comme un garbage collector, du fait que
l'objet ne survit pas à la portée (au contraire des GC qui ont un
mécanisme plutôt flou sur le sujet..).


Ça n'en est pas un, et c'est pour cela qu'on se retrouve à gérer
généralement la mémoire à la main aussi en C++.

--
Le commissaire : Comment vous appelez-vous?
Garance : Moi je ne m'appelle jamais, je suis toujours là. J'ai pas
besoin de m'appeler. Mais les autres m'appellent Garance, si ça peut
vous intéresser.
Prévert,"les enfants du Paradis".