syam a écrit:
MisterFreez a écrit:
Personnellement quand je fais du C++ je tente de bannir les méthodes C pour rester au maximum avec une sémantique objet.
Le C++ étant justement un langage multi-paradigmes (contrairement au Java qui est exclusivement orienté objet si je ne m'abuse) je ne vois pas vraiment l'intérêt de faire des contorsions pour rester en objet quand l'équivalent procédural est tout aussi compréhensible et facile d'emploi, d'autant que la fonction en question fait explicitement partie du standard
* (tiens ça me fait penser qu'il faut que j'achète le nouveau et, pire, que je le lise

). Pas plus que ça ne me dérange de mélanger joyeusement objet, procédural, fonctionnel, impératif et macros en Lisp : c'est un peu prévu pour.
Les macros moins tu y touche mieux tu te porte (aucune vérification du type, possibilité d'ajouter des bugs dans ton code très subtils,...).
D'une part il ne s'agit pas ici de contorsion, vu le profile des deux méthodes.
Mais comme je le disais il est probable que copy utilise des fonctionnalités du langage que le memcpy ignoreras.
D'une manière général (et ce quelque soit le langage), je suis pour fournir un maximum d'informations à mon compilateur/bibliothèque et le fait qu'une adresse est un objet en fait partie, à lui de ne pas y faire attention s'il en a besoin.
syam a écrit:
Tant que le code est clair, pourquoi se priver d'un outil s'il est plus adapté à un usage donné ? Je vais mettre ça sur le compte de la rigidité de Java qui te donne des mauvaises habitudes, cf. « les
méthodes C ». (râle pas c'est une boutade

)
D'une part la question n'est pas de se cantonner à un paradigme mais d'en privilégier un. D'autre part j'ai ce comportement depuis mes premières semaines du C++ bien avant de toucher à Java
Mais plutôt ça sur le compte d'un fanatisme pour l'orienté objet (et aussi l'orienté fonctionnel).
syam a écrit:
Cela dit ça dépend aussi du contexte. Je n'ai aucun remords à utiliser des fonctions C pour manipuler des chaînes C, mais tu me verras jamais faire ce genre de trucs par exemple pour copier un std::vector (et comme tu le dis si bien, si point de contention il y a alors faut revoir l'archi en priorité). Le tout est d'utiliser les choses à bon escient.
Oui quand je fais du C++, je tente de faire d'utiliser au maximum, les fonctions qui me semblent plus dans l'esprit du langage que les méthodes qui me semblent être de l'héritage de C. Quand je manipule des fichiers et dossier, j'utilise des fonctions hérité du C, quand j'écris dedans en principe j'utilise iostream.
syam a écrit:
(
*) si je voulais troller je dirais que ça en fait une fonction C++ et non pas C. Heureusement c'est pas encore le bon jour.
syam a écrit:
MisterFreez a écrit:
Pour le reste c'est de la microoptimisation
J'accuse mes vieux restes d'assembleur ! Ça a la vie dure ces p'tites bêtes.

Personnellement, j'aime énormément en informatique le découpage des tâches/problématique. On est capable aujourd'hui, d'écrire du code de haut niveau et de laisser le travail d'optimisation au compilateur/interpréteur. Ce serait dommage de ne pas en profiter. De plus en cas de problème dans ces moulinettes, on peut faire corriger/ajouter des optimisations qui bénéficieront à tous. Note bien que je parle là de microoptimisation, il faut prendre en compte la complexité des algorithme et organiser ces traitements intelligemment.
C'est aussi l'un des trucs qui me fait adorer l'objet. On travail en boite noire. Je n'ai pas à et je ne peux pas aller taper dans l'implémentation de l'objet (oui en C++, Java et python on peut mais bon)(note que OSGi est vraiment l'une des technologies en vogue les plus avancées là dessus avec les bundles qui permettent un vrai cloisonnement). On travail en boite noire. C'est jolie, ça me fait plaisir. Si ton plaisir c'est de faire de l'optimisation tu peut te concentrer dessus, sinon tu utilise.
Enfin, c'est pour ça que j'aime la programmation par contrat comme devrait bientôt le permettre ADA (avec ADA 2012), Java avec JML ou D. On pose des post et des préconditions et des invariants de classe. On sait comment les utiliser et c'est vérifié statiquement si possible.
_________________
Je suis
Pitta, cartésien, irritable, irritant et névrosé (
de plus je fais de l'entrisme pour zsh), si l'un de mes messages vous insupporte essayez d'y voir de l'
ironie ou de
ne pas en tenir compte. Bonne journée et gardez le sourire.
