IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débats sur le développement - Le Best Of Discussion :

[Débat] C++ vs Java


Sujet :

Débats sur le développement - Le Best Of

  1. #601
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 519
    Points : 1 104
    Points
    1 104
    Par défaut
    Citation Envoyé par fbehnam
    Ne remettez pas en question la legitimité des professeurs , la plupart sont tres bon et meme bien meilleur que des professionnels qui ne connaissent que peu de base et qui code grace à leur ide....
    Tu es toi-même professeur pour dire ça ou quoi ?

  2. #602
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Points : 42
    Points
    42
    Par défaut
    non je ne suis pas prof mais je pense que parfois faut savoir les remercier de ce qu'ils nous apportent...

  3. #603
    Membre averti
    Avatar de anadoncamille
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 395
    Points : 310
    Points
    310
    Billets dans le blog
    1
    Par défaut Un pari : les jeux vidéos en Java
    Bonjour,

    j'ai fait le pari depuis plusieurs années de faire du jeu vidéo en Java, après avoir fait de l'Assembleur, du Pascal et du C/C++.

    Pour ce qui est de la conception du projet, Java étant plus restrictif que C++, il oblige à faire une bonne conception et le premier jet de développement sera efficace.

    Si on a besoin de performances d'affichage et de 3D, il vaut mieux se tourner vers le C++, actuellement.

    Un bon compromis est d'utiliser Java pour la conception et l'architecture et C++ pour le développement.

    Le Java doit ses mauvaise performances au choix de la portabilité. La machine virtuelle Java absorbe une bonne partie des performances d'affichage en interdisant l'accès aux fonctions graphiques des cartes vidéos.

    Pour ce qui est des performances de calcul, par contre Java et C++ se tiennent la main et là c'est l'algorithme qui va faire la différence. Le Java a toutes ses chances dans ce défi.

    Pour revenir à l'affichage, beaucoup de développeurs travaillent justement au défaut principal de Java, ses "maigres" performances graphiques. Je vous invite cependant à constater qu'elles ne sont pas si minces, même en natif et que correctement programmé, Java tient très bien la route.
    Voici le site de mon projet actuel, AnAcondA : http://www.anadoncamille.com/

    Le post suivant présente deux librairies codées pour Java, en C++ entre autres, qui permettent de coder en Java et d'avoir des performances correctes :
    http://www.developpez.net/forums/sho...80#post2371080

    Par contre ces librairies nécessitent des fichiers adaptés à chaque machine pour fonctionner, une forme de perte de portabilité de Java.

    Actuellement, Java rattrape son retard et pourrait dans quelques années partager des domaines de création qui sont pour le moment réservés au C++ (jeux vidéos, rendu 3D et 3D).

    Java power !
    __________________________________
    | +
    | Sylvain Tournois - Création logicielle
    |
    | sylv.tournois.free.fr
    |

  4. #604
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par Tifauv'
    Je pense aussi qu'il faut apprendre les deux, mais dans un certain ordre:

    Java en premier puis C++

    Tu apprendras ainsi à 'concevoir' des applications en objet (avec Java). Tu penseras plus en objet quand tu feras du C++. En effet, on peut faire des choses abominables en C++ (mix entre C et objet), alors que si tu prends l'habitude de voir bien les divers objets et leurs interactions, tu appliqueras naturellement ces méthodes au C++ et tu auras des applis plus propres et moins buggées.

    Vous êtes sûr de ce que vous dites.

    Je pense que Java est venu avec des solutions pour combler les bugs des programmes qui sont implémentés à base de C++ (exemple : problème des pointeurs).

    A vous

  5. #605
    Membre averti Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Points : 358
    Points
    358
    Par défaut
    Citation Envoyé par zizoux5
    Je pense que Java est venu avec des solutions pour combler les bugs des programmes qui sont implémentés à base de C++ (exemple : problème des pointeurs).
    HAN !!!! les pointeurs n'ont pas de problème !!! si cela ne marche pas c'est que le programmeur a mal conçue son programme !
    Une foie qu'on sais s'en servir c'est la meilleur chose qui soit et ca devient extrêmement pratique et puissant ! =)

    Et pour moi avoir un langage sans pointeur n'est pas un avantage mais vraiment un GROS handicap !!!

  6. #606
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 259
    Points : 607
    Points
    607
    Par défaut
    Citation Envoyé par Ekinoks
    HAN !!!! les pointeurs n'ont pas de problème !!! si cela ne marche pas c'est que le programmeur a mal conçue son programme !
    Une foie qu'on sais s'en servir c'est la meilleur chose qui soit et ca devient extrêmement pratique et puissant ! =)

    Et pour moi avoir un langage sans pointeur n'est pas un avantage mais vraiment un GROS handicap !!!
    Oui c'est sur si ca marche pas c'est la faute du programmeur. Mais il n'empêche que si le langage peut éviter certains problèmes pourquoi pas.
    De même que la programmation objet a permis de simplifier la conception et le développement de bon nombre de programmes, elle n'est pas non plus indispensable.
    Parfois j'ai l'impression que le c++ serait l'étape ultime de l'évolution des langages de programmation. Que a partir de là tout est parfait et il ne faut plus toucher a rien.

    au fait, en quoi ne pas avoir de pointeurs serait un si gros handicap ? tu aurais des exemples de choses qu'on ne peut pas faire et qui serait handicapantes ? (ce n'est pas pour troller je le jure, juste que je connais c++ un peu, java beaucoup et les pointeurs me manquent pas vraiment)

  7. #607
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par Ekinoks
    HAN !!!! les pointeurs n'ont pas de problème !!! si cela ne marche pas c'est que le programmeur a mal conçue son programme !
    Une foie qu'on sais s'en servir c'est la meilleur chose qui soit et ca devient extrêmement pratique et puissant ! =)

    Et pour moi avoir un langage sans pointeur n'est pas un avantage mais vraiment un GROS handicap !!!


    Je t'accorde que les pointeurs donnent plus de flexibilité aux programmeurs, mais il ne faut pas nier que les pointeurs causent des problèmes liés à l'allocation de la mémoire.

    Sans oublier que ceux qui ont conçu le C++ sont des programmeurs, donc ils peuvent ne pas avoir bien affiné le fonctionnement des pointeurs.
    et c'est pour cela que les pointeurs sont absents de Java (si on omet les références de Java)

  8. #608
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par Ekinoks
    HAN !!!! les pointeurs n'ont pas de problème !!! si cela ne marche pas c'est que le programmeur a mal conçue son programme !
    Une foie qu'on sais s'en servir c'est la meilleur chose qui soit et ca devient extrêmement pratique et puissant ! =)

    Et pour moi avoir un langage sans pointeur n'est pas un avantage mais vraiment un GROS handicap !!!
    en plus, je vois mal comment l'absence des pointeurs pourra créer un handicap et si ce que tu as avancé est vrai, on aura pas vu l'ampleur qu'a pris Java au détrment de C++

  9. #609
    Membre averti Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Points : 358
    Points
    358
    Par défaut
    Citation Envoyé par kpouer
    Oui c'est sur si ca marche pas c'est la faute du programmeur. Mais il n'empêche que si le langage peut éviter certains problèmes pourquoi pas.
    Oui, mais a quel prix ?

    Ne plus avoir la possibilité d'utiliser des pointeurs veux dire que dans certain cas on va être obligé de trouver des solutions tordues pour palier à ce problème avec les conséquence que cela implique comme des performance réduite (car quoi de plus rapide qu'un accès directe par pointeur ?)...
    Par exemple, pour les pointeurs de fonctions.

    Alors c'est sur vous allez me dire « tu n'a cas pas utiliser des pointeurs de fonction, revoir l'architecture de ton application »
    Et c'est justement ca le problème ! On est obligé de se plier à la vision que SUN a de l'architecture des programmes !
    Et si on souhaite faire une architecture différente ?
    Avoir la possibilité d'utiliser les pointeurs donne de GRANDE liberté !

    Citation Envoyé par kpouer
    De même que la programmation objet a permis de simplifier la conception et le développement de bon nombre de programmes, elle n'est pas non plus indispensable.
    Oui, mais par exemple avec le C++ on a le CHOIX d'utiliser ou non la POO.
    En java NON !

    Citation Envoyé par kpouer
    Parfois j'ai l'impression que le c++ serait l'étape ultime de l'évolution des langages de programmation. Que a partir de là tout est parfait et il ne faut plus toucher a rien.
    Je ne dit pas de rien toucher, mais la direction que prend JAVA ne correspond pas à ma vision des choses...

    Citation Envoyé par zizoux5
    Je t'accorde que les pointeurs donnent plus de flexibilité aux programmeurs, mais il ne faut pas nier que les pointeurs causent des problèmes liés à l'allocation de la mémoire.
    Effectivement, mais l'utilisateur devrais toujours avoir à minima la possibilité d'utiliser des pointeurs si il le souhaite.
    Si non dans se cas là pour ne plus avoir de problème de se genre pour quoi ne pas passer directement à un langage « drag and drop » ? Ca enlèverai bon nombre de source de bug !

    Citation Envoyé par zizoux5
    si ce que tu as avancé est vrai, on aura pas vu l'ampleur qu'a pris Java au détriment de C++
    Déjà on mesure pas la valeur d'un langage suivant son ampleur, son taux d'utilisation ou je ne sais quoi d'autre.

    Ensuite, je ne dit pas que Java est nul, je dit juste que faire passer les pointeurs pour un problème ou mettre dans les avantages que le langage n'utilise pas de pointeurs est une bêtise.

  10. #610
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 259
    Points : 607
    Points
    607
    Par défaut
    Citation Envoyé par Ekinoks
    Oui, mais a quel prix ?

    Ne plus avoir la possibilité d'utiliser des pointeurs veux dire que dans certain cas on va être obligé de trouver des solutions tordues pour palier à ce problème avec les conséquence que cela implique comme des performance réduite (car quoi de plus rapide qu'un accès directe par pointeur ?)...
    Par exemple, pour les pointeurs de fonctions.
    Tu peux me donner des exemples, j'ai du mal a voir. Quand tu passes un objet en paramètre d'une méthode en java il est pas recopié quand même ...

    Citation Envoyé par Ekinoks
    Alors c'est sur vous allez me dire « tu n'a cas pas utiliser des pointeurs de fonction, revoir l'architecture de ton application »
    Et c'est justement ca le problème ! On est obligé de se plier à la vision que SUN a de l'architecture des programmes !
    Et si on souhaite faire une architecture différente ?
    Avoir la possibilité d'utiliser les pointeurs donne de GRANDE liberté !
    Ca donne une grande liberté mais j'aimerai trouver un exemple ou ce serait tellement nécéssaire. Quant a se plier a la volonté de Sun, oui c'est vrai, mais c'est parce que tu viens du monde c++ et que tu as une vision c++. C'est une erreur de vouloir reproduire ce qu'on connait déjà lorsqu'on aborde un nouveau langage. Je ne code pas pareil en java, en python, en php ou en c++, il faut s'adapter au langage pour en tirer le meilleur

    Citation Envoyé par Ekinoks
    Oui, mais par exemple avec le C++ on a le CHOIX d'utiliser ou non la POO.
    En java NON !
    Je ne dit pas de rien toucher, mais la direction que prend JAVA ne correspond pas à ma vision des choses...
    C'était un exemple. Ce que je veux dire c'est que les langages ont évolués pour aboutir au c++, et certains aussi ont critiqué le c++ comme tu critiques le java aujourd'hui parce que le c++ a apporté des choses qui ne correspondaient pas a leur vision des choses

    Citation Envoyé par Ekinoks
    Effectivement, mais l'utilisateur devrais toujours avoir à minima la possibilité d'utiliser des pointeurs si il le souhaite.
    Si non dans se cas là pour ne plus avoir de problème de se genre pour quoi ne pas passer directement à un langage « drag and drop » ? Ca enlèverai bon nombre de source de bug !
    Un langage drag & drop. Ben pourquoi pas, il faut être ouvert. Cela dit je suis sceptique quand même parce je pense que ca risque d'être assez limité au niveau des possibilités

  11. #611
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 519
    Points : 1 104
    Points
    1 104
    Par défaut
    Citation Envoyé par Ekinoks
    Déjà on mesure pas la valeur d'un langage suivant son ampleur, son taux d'utilisation ou je ne sais quoi d'autre.
    Je suis entièrement d'accord avec toi, car si c'était le cas, cela voudrait dire que Windows est un magnifique OS et VB6 un super langage

    Citation Envoyé par kpouer
    certains aussi ont critiqué le c++ comme tu critiques le java aujourd'hui parce que le c++ a apporté des choses qui ne correspondaient pas a leur vision des choses
    Il a apporté des choses mais n'en a pas enlevé, contrairement au Java.

  12. #612
    Membre averti Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Points : 358
    Points
    358
    Par défaut
    Citation Envoyé par kpouer
    Tu peux me donner des exemples, j'ai du mal a voir.
    Bha, comme bon exemple il y a les pointeurs de fonction...
    Je me rappelle il y a quelque temps, j’avais créé un moteur graphique avec une architecture tel que pour créer et configurer une scène cela puissent se faire simplement avec un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    changeScene(1);	// On se place sur la scene 1
    scene[1]->bindKey(‘c’, changeScene, 2 );	// touche c => se placer sur la scene 2
    Bha je peu dire que les pointeurs de fonctions m’on drôlement bien servie et je me verrais mal le faire sans...

    Citation Envoyé par kpouer
    Quand tu passes un objet en paramètre d'une méthode en java il est pas recopié quand même ...
    Un Objet non, mais essaye de passer une variable ou une fonction...

    Citation Envoyé par kpouer
    Quant a se plier a la volonté de Sun, oui c'est vrai, mais c'est parce que tu viens du monde c++ et que tu as une vision c++. C'est une erreur de vouloir reproduire ce qu'on connait déjà lorsqu'on aborde un nouveau langage. Je ne code pas pareil en java, en python, en php ou en c++, il faut s'adapter au langage pour en tirer le meilleur
    Non, je ne cherche pas à reproduire ce que je connais déjà, mais avoir la liberté d’avoir ma propre vision des choses... et la il faut bien avouer que le Java je donne aucune liberté

    Citation Envoyé par kpouer
    C'était un exemple. Ce que je veux dire c'est que les langages ont évolués pour aboutir au c++, et certains aussi ont critiqué le c++ comme tu critiques le java aujourd'hui parce que le c++ a apporté des choses qui ne correspondaient pas a leur vision des choses
    On ne peu quand même pas comparer l’évolution ASM=>C ou C => C++ à C++ => Java !
    Java n’apport pas grand-chose à par de mettre plain de restriction et une machine virtuel...

    Citation Envoyé par kpouer
    Un langage drag & drop. Ben pourquoi pas, il faut être ouvert. Cela dit je suis sceptique quand même parce je pense que ca risque d'être assez limité au niveau des possibilités
    Le langage drag & drop et une caricature de java par rapport au C++, à savoir donnée un minimum de liberté au programmeur pour évité un maximum de bug même si pour cela les performances s’en trouve réduite ainsi que les possibilités...

  13. #613
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Points : 444
    Points
    444
    Par défaut
    Citation Envoyé par Ekinoks
    Oui, mais a quel prix ?

    Ne plus avoir la possibilité d'utiliser des pointeurs veux dire que dans certain cas on va être obligé de trouver des solutions tordues pour palier à ce problème avec les conséquence que cela implique comme des performance réduite (car quoi de plus rapide qu'un accès directe par pointeur ?)...
    Par exemple, pour les pointeurs de fonctions.
    Java n'est pas un langage sans pointeurs, bien au contraire, il ne manipule quasiment que ça, ceux-ci sont simplement "cachés", les références en java sont plus ou moins l'équivalent des pointeurs en C++ :
    - comportement polymorphique
    - reassignation
    - allocation

    La seule différence vient du fait qu'on ne peut pas détruire les objets référencés nous mêmes et qu'on ne peut manipuler les objets QUE par ces références ; si Java a supprimé quelque chose par rapport au C++ c'est bien la possibilité de définir une sémantique de valeur et de manipuler directement l'objet.


    Alors c'est sur vous allez me dire « tu n'a cas pas utiliser des pointeurs de fonction, revoir l'architecture de ton application »
    Et c'est justement ca le problème ! On est obligé de se plier à la vision que SUN a de l'architecture des programmes !
    Et si on souhaite faire une architecture différente ?
    Avoir la possibilité d'utiliser les pointeurs donne de GRANDE liberté !
    En ce qui concerne les pointeurs sur fonction et fonction membre, là oui ils sont absents :
    - pointeur sur fonction, normal, les fonctions n'existent pas en java.
    - pointeur sur fonction membre : ça a tout simplement été remplacé par la RTTI. Mécanisme plus lourd a priori, maintenant je ne connais pas les détails d'implémentation des JVMs à ce niveau là. Toujours est-il qu'on peut obtenir à peu près le même résultat par un autre mécanisme.


    Oui, mais par exemple avec le C++ on a le CHOIX d'utiliser ou non la POO.
    En java NON !
    Oui mais là on rentre dans un autre débat, pur objet contre multiparadigme


    Ensuite, je ne dit pas que Java est nul, je dit juste que faire passer les pointeurs pour un problème ou mettre dans les avantages que le langage n'utilise pas de pointeurs est une bêtise.
    C'est même complètement faux en fait vu qu'il n'utilise QUE ça.

    Par contre je te rejoins de manière général sur le fait que le Java a enlevé beaucoup plus de choses qu'il n'a apporté au programmeur, un type de sémantique (entité), un type d'héritage, pas de contrôle aussi fin de la mémoire, etc ; bref je ne pense pas que réduire les possibilités offertes au programmeur sous prétexte de faciliter le développement et la compréhension du code soit une bonne chose, si on peut utiliser un ensemble large d'outils, rien n'empêche de se restreindre à un sous ensemble de ceux-ci, tout en ayant les autres à disposition le jour où on en a vraiment besoin.

  14. #614
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 259
    Points : 607
    Points
    607
    Par défaut
    Citation Envoyé par Ekinoks
    Bha, comme bon exemple il y a les pointeurs de fonction...
    Je me rappelle il y a quelque temps, j’avais créé un moteur graphique avec une architecture tel que pour créer et configurer une scène cela puissent se faire simplement avec un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    changeScene(1);	// On se place sur la scene 1
    scene[1]->bindKey(‘c’, changeScene, 2 );	// touche c => se placer sur la scene 2
    Bha je peu dire que les pointeurs de fonctions m’on drôlement bien servie et je me verrais mal le faire sans...
    Ca se fait avec une interface en java je suppose.

    Citation Envoyé par Ekinoks
    Un Objet non, mais essaye de passer une variable ou une fonction...
    euh quelle différence tu fais entre un objet et une variable en java ? A moins que tu parles des types primitifs ?

    Citation Envoyé par Ekinoks
    Non, je ne cherche pas à reproduire ce que je connais déjà, mais avoir la liberté d’avoir ma propre vision des choses... et la il faut bien avouer que le Java je donne aucune liberté


    On ne peu quand même pas comparer l’évolution ASM=>C ou C => C++ à C++ => Java !
    Java n’apport pas grand-chose à par de mettre plain de restriction et une machine virtuel...
    C'est vrai le java a apporté des restrictions. On peut aussi appeler ca structure et organisation. Après je comprend qu'on aime pas. Tu as ceux aussi qui en php aiment bien faire ca
    function toto($v,$a,$b,$c)
    {
    $v($a,$b+$d);
    }

    C'est vrai c'est souple et pratique, mais ca apporte aussi plein d'inconvénients. Perso j'aime pas.

  15. #615
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Citation Envoyé par Ekinoks
    Et pour moi avoir un langage sans pointeur n'est pas un avantage mais vraiment un GROS handicap !!!
    Dans un monde bas-niveau, qui souhaite rester proche de la machine (programmation système, implémentation de drivers...), c'est vrai. Mais pour les applications de tous les jours, on n'en a absolument pas besoin. Tu peux peut-être trouver des cas où utiliser un pointeur est une optimisation pour gagner quelques cycles, mais on peut trouver tellement d'autres cas où cela se révèle dangereux.

    J'ai utilisé le C et le C++ pendant de nombreuses années, mais depuis que j'ai arrêté, je m'en porte pas plus mal. Depuis, je n'ai jamais eu besoin d'utiliser le moindre pointeur. À moins que tu ne me montres un exemple où l'accès direct à la mémoire est indispensable (hors cas particuliers cités au début), je considère ça comme à éviter.

    Posséder le concept de pointeurs et d'accès direct à la mémoire n'est pas mauvais, mais cela devrait être évité quand on a le choix.

    Oui, mais a quel prix ?
    C'est simple : tu perds 5% des performances, mais tu augmentes considérablement la sûreté et le temps de développement. Fais ton choix.

    Par exemple, pour les pointeurs de fonctions.
    Ah ah ! Là, tu mets en valeur un défaut du C++ : les fonctions ne sont pas des objets de premier ordre, on ne peut les manipuler directement (ni créer de fonction anonyme). À la place, on doit passer par un pointeur pour pallier ce manque, mais ce n'est pas une solution.
    Je te l'accorde, Java ne fait pas mieux sur ce point, et l'utilisation d'interfaces pour faire ça est vraiment délirante. Mais regarde du côté des langages fonctionnels : tu trouveras ton bonheur. Bref, ce n'est clairement pas un argument pour les pointeurs, ça. C'est juste une roue de secours.

    Alors c'est sur vous allez me dire « tu n'a cas pas utiliser des pointeurs de fonction, revoir l'architecture de ton application »
    Je suis d'accord avec toi, c'est important de pouvoir manipuler des fonctions. Et c'est l'une des raisons pour lesquelles je déteste Java.

    Oui, mais par exemple avec le C++ on a le CHOIX d'utiliser ou non la POO. En java NON !
    Quelle différence entre une méthode statique de Java et une fonction du C++ ? Il y a quelques différences syntaxiques, mais c'est tout. Critique la syntaxe de Java plutôt que sa POO.

    Si non dans se cas là pour ne plus avoir de problème de se genre pour quoi ne pas passer directement à un langage « drag and drop » ? Ca enlèverai bon nombre de source de bug !
    Si ça permet de garder 95% de la puissance de C++ tout en améliorant le temps de développement, je suis preneur. Malheureusement, je n'y crois pas (concernant le drag and drop, il y a d'autres solutions plus convaincantes).

    Il a apporté des choses mais n'en a pas enlevé, contrairement au Java.
    Il n'a rien enlevé, par rapport à quoi ? Par rapport au C, certes, mais il y a tellement peu de choses dans le C. Par rapport aux langages existant à cette époque, non. Regarde le Lisp, regarde le C++. Il manque *beaucoup* de choses.

    Oui mais là on rentre dans un autre débat, pur objet contre multiparadigme
    Je t'arrête tout de suite : être pur objet n'empêche pas d'être multiparadigme. Par exemple Ruby et F# combinent objet pur et programmation fonctionnelle.

    Après je comprend qu'on aime pas. Tu as ceux aussi qui en php aiment bien faire ca
    function toto($v,$a,$b,$c)
    {
    $v($a,$b+$d);
    }

    C'est vrai c'est souple et pratique, mais ca apporte aussi plein d'inconvénients. Perso j'aime pas.
    Quels inconvénients ? Oui, en PHP, il y en a beaucoup. Mais on peut écrire l'équivalent Caml (ou n'importe quel autre langage fonctionnel) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let toto v a b c = v a (b + c)
    L'implémentation de PHP n'est pas à prendre en modèle, mais le fait de pouvoir manipuler simplement des fonctions me semble indispensable à tout langage sérieux. Les solutions de C++ et de Java sont particulièrement peu convaincantes.


    Pour critiquer Java, il suffit de comparer leur implémentation des generics (ou plutôt, leur non-implémentation -- cf la différence avec .NET) par rapport aux templates de C++. La différence est flagrante et, encore une fois, Java semble ridicule.

  16. #616
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 259
    Points : 607
    Points
    607
    Par défaut
    Citation Envoyé par LLB
    Quels inconvénients ? Oui, en PHP, il y en a beaucoup. Mais on peut écrire l'équivalent Caml (ou n'importe quel autre langage fonctionnel)
    Les inconvenients au bout de code que j'ai donné c'est que ca devient très difficile a débugger, que ca ouvre des tas de trous de sécurité si on est pas rigoureux (et on l'est jamais assez). Ca empêche en fait bon nombre de controles qui pourraient être fait par une compilation pour laisser toutes ortes d'étrangetés arriver au runtime. On pense souvent au cas droit, celui attendu, et un jour il arrive un cas qu'on avait pas prévu et que ce genre de code empêche de voir.

  17. #617
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Quelle différence entre un appel de fonction normal et l'appel d'une fonction contenue dans une variable ?

    J'en utilise tous les jours et je n'ai jamais rencontré le moindre problème. Tout peut être vérifié à la compilation (typage, etc.), comme tout le reste du code. Quels trous de sécurité ?

    Tu parles peut-être du cas particulier de PHP et de son typage faible et dynamique, mais ça n'a rien à voir avec le problème.

    As-tu un exemple concret ?

  18. #618
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 519
    Points : 1 104
    Points
    1 104
    Par défaut
    Citation Envoyé par LLB
    C'est simple : tu perds 5% des performances, mais tu augmentes considérablement la sûreté et le temps de développement. Fais ton choix.
    Peut-être plus que 5%, non ?

    Citation Envoyé par LLB
    Je t'arrête tout de suite : être pur objet n'empêche pas d'être multiparadigme. Par exemple Ruby et F# combinent objet pur et programmation fonctionnelle.
    Dans ce cas ce n'est plus du pur objet.

  19. #619
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 259
    Points : 607
    Points
    607
    Par défaut
    Citation Envoyé par LLB
    Quelle différence entre un appel de fonction normal et l'appel d'une fonction contenue dans une variable ?

    J'en utilise tous les jours et je n'ai jamais rencontré le moindre problème. Tout peut être vérifié à la compilation (typage, etc.), comme tout le reste du code. Quels trous de sécurité ?

    Tu parles peut-être du cas particulier de PHP et de son typage faible et dynamique, mais ça n'a rien à voir avec le problème.

    As-tu un exemple concret ?
    Je parlais effectivement de php en particulier. En effet si on peut passer n'importe quoi comme nom de fonction ca peut vite devenir le cirque.
    En c++ je dis rien je connais pas suffisament. Cela dit je suis curieux, comment se fait le typage lorsqu'on passe une fonction en paramètre ?

  20. #620
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 259
    Points : 607
    Points
    607
    Par défaut
    Citation Envoyé par spidermario
    Peut-être plus que 5%, non ?
    Ptet moins aussi. Je sais pas s'il est utile de relancer le débat sur les performances qui a déjà eu lieu dans les 40 pages précédentes

Discussions similaires

  1. [Débat] Technologie .NET vs JAVA
    Par neo.51 dans le forum Débats sur le développement - Le Best Of
    Réponses: 1047
    Dernier message: 14/01/2019, 16h15
  2. [Débat] .NET vs JAVA/J2EE
    Par tssi555 dans le forum VB.NET
    Réponses: 5
    Dernier message: 10/12/2008, 07h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo