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

C++ Discussion :

Impossible de rendre le C++ portable


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Par défaut Impossible de rendre le C++ portable
    Bonjour tout le monde, j'avais commencé à apprendre le C, mais un amis informaticien m'a déconseillé pour plusieurs raisons :
    - Si je voulais apprendre le C++ il faut mieu directement commencer par la car sinon je risque de m'embrouillé ayant des bases anciennes (C)
    - Le C et le C++ ne sont casiment pas utilisés en tant que développeur

    Il m'a conseillé le Java par exemple. Je me suis renseigné et en fait le Java est + utilisé pcq'il est portable, cependant on peut faire moins de choses avec et il est + lent que le C++.


    Ma question est est-il possible de rendre le C++ portable avec par exemple certaines librairies ? (parceque le Java c'est bien mais on peut faire moins de choses, alors bon, le C++ c'est la classe )

  2. #2
    Membre émérite

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Par défaut
    - Si je voulais apprendre le C++ il faut mieu directement commencer par la car sinon je risque de m'embrouillé ayant des bases anciennes (C)
    C'est vrai que ce n'est pas une mauvaise chose, en tout cas il n'y a pas d'obligations

    - Le C et le C++ ne sont casiment pas utilisés en tant que développeur
    Pas tant vrai, ça dépend surtout de quel type d'application, mais ces langages sont loin d'être mort encore. La question est un peu trollesque...

    Il m'a conseillé le Java par exemple. Je me suis renseigné et en fait le Java est + utilisé pcq'il est portable, cependant on peut faire moins de choses avec et il est + lent que le C++.
    Aïe encore un troll.. Ben je connais peu le Java il n'est pas mal non plus. Par contre je ne vois pas où tu as vu que C++ n'est pas portable , il faut simplement recompiler le programme, et ne pas utiliser directement d'API système.

    Ma question est est-il possible de rendre le C++ portable avec par exemple certaines librairies ? (parceque le Java c'est bien mais on peut faire moins de choses, alors bon, le C++ c'est la classe)
    Bien sûr, et il y en a pour tous les goûts mais attention ton sujet est vachement trollesque, d'une manière générale on peut à peu près tout faire autant avec un langage que l'autres.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Par défaut
    Par contre je ne vois pas où tu as vu que C++ n'est pas portable Confused, il faut simplement recompiler le programme, et ne pas utiliser directement d'API système.
    Oui mais le Java, étant donné que c'est une compilation ki est ensuite interprétée, je crois qu'il n'y a pas besoin de recompiler en changeant d'OS.

    Bien sûr, et il y en a pour tous les goûts Wink mais attention ton sujet est vachement trollesque, d'une manière générale on peut à peu près tout faire autant avec un langage que l'autres.
    Le C++ étant plus bas niveau, théoriquement on peut faire plus de choses non ?

  4. #4
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Sans vouloir (re)lancer un débat qui fait rage, et de plus mon point de vu ne concerne que le C mais ceci :

    Le C et le C++ ne sont casiment pas utilisés en tant que développeur
    Ceci est totalement faux, le C est utilisé pratiquement toujours pour le développement système ou d'interfaces embarqués.

    Concernant le C++ je ne connais pas les chiffres mais je doute que ce soit un langage pas/peu utilisé. (je suis sur du contraire mais n'ayant pas de chiffres, je n'en dirais pas plus)

    Je me suis renseigné et en fait le Java est + utilisé pcq'il est portable
    Ca veut dire quoi plus portable pour toi (ou ton ami), parce qu'on a peut être pas la même définition ...

    parceque le Java c'est bien mais on peut faire moins de choses,
    D'ou tu tiens ça ? Tu venais juste au dessus de dire que C/C++ ne sont pas utilisés, là tu dis que java ne sais pas faire grand chose, mais alors quel(s) est (sont) les langages qui sont utilisés dans l'industrie ?

    alors bon, le C++ c'est la classe
    Auh dans tous les langages objets, y'a des classes (quoi j'ai pas compris ?)

    Non, personnellement, je suis lassé des trolls, pour ou contre tel ou tel langage. Il faut absolument tester les langages et prendre celui avec lequel on a le plus de facilitée pour développer ...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Par défaut
    Le C et le C++ ne sont casiment pas utilisés en tant que développeur
    je me suis mal exprimé, je voulais dire qu'ils sont de moins en moins utilisés et que le temps n'arrangera rien... dsl

    Je me suis renseigné et en fait le Java est + utilisé pcq'il est portable
    Pour moi portable c'est qui est compatible sous différent OS... je crois qu'avec le Java on peut plus facilement passez d'un OS a un autre (sans recompiler par exemple)

    tu dis qu'il faut mieu tester les languages et apres choisir celui / ceux qu'on préfère. je connais le Php, j'avais commencé a apprendre le C, je préfère la programmation type php/C a celle Java/Javascript (c'est la poo à laquelle j'ai pas l'habitude). Y'a - t - il en C++ de la programmation type php/C ou alors est-ce que c'est aussi de la poo ? merci d'avance.

    P.S.: dsl pour le trollage....

  6. #6
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Pour moi portable c'est qui est compatible sous différent OS
    Montres nous alors en quoi le C++ n'est pas compatible sous différents OS.

    (sans recompiler par exemple)
    Ce n'est pas le langage qui veut ça, c'est la façon dont il est utilisé, java n'est pas compilé de la même façon que C++ ..., le byte-code( il me semble que c'est le nom, mais corrigez moi si ce n'est pas le cas) généré par java est ensuite interprété sur ta machine, celà implique donc deux choses, tu as besoin de quelque chose pour l'interprèter et celà entraine une exécution plus lente (on dira ce qu'on voudra mais même si le temps n'est peut être plus perceptible pour nous humain, la phase d'interprètation induit tout de même un cout supplémentaire).
    La portabilité de java à ton sens est donc la portabilité de ton interprèteur (la JVM si je ne me trompe pas).

    De plus, la re-compilation de C++ n'entraine pas de modification de code pour changer de système, c'est cette définition de la portabilité que j'avais...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Par défaut
    Oui mais si tu dois compiler pour chaque OS, ca te donne un .exe pour chaque OS non ? Sinon alors pourquoi dit-on que Java est + portable que C++ ? : /
    merci =)

    P.S.: tout le monde dit quand meme que Java est plus lent... C'est pour ca qu'on l'utilise pas pour les jeux ?

  8. #8
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 292
    Par défaut
    La JVM est un OS en soi. Et d'une famille (voire version) de JVMs à une autre, un même programme peut ne pas marcher. Voir ce qui s'était passé avec OOo.

    Le C++ est à la fois plus bas et plus haut niveau que le java.

    Quant à la portabilité du C++, beaucoup se joue au choix des bibliothèques utilisées. Après, il faut recompiler pour chaque plateforme ciblée.

    Bref, attention aux généralités. Teste et fais ton choix.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Par défaut
    Le C++ est à la fois plus bas et plus haut niveau que le java.
    C'est-à-dire ? A quels niveaux est-il plus bas niveau et inversement plz ?
    merci

  10. #10
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Plus bas niveau parce que utilisation de pointeurs (sans doute un relicat du C), et plus haut niveau dans l'utilisation des patrons de fonctions (il me semble que java devrait l'intégrer d'ici peu ...)

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Par défaut
    merci beaucoup, je vais finir mon tuto de Java, apres j'essaierais le C++ pour voir lequel me convient le mieu (de tout facon je finirais pour connaitre les deux ^^)

  12. #12
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 292
    Par défaut
    Plus haut dans la meta prog, et certaines autres possibilités qu'il offre (multi-contrats, dinstinctions de sémantiques de valeurs vs d'entité, des héritages qui distinguent la réutilisation de l'utilisation-en-place-de)
    Cela dépend de points particuliers, et de l'angle d'approche. Car il y aura d'autres endroits où le java permettra plus facilement certaines choses.

    Relativement, aux patrons, ce que le Java intègre dans sa version 1.5 (après avoir emboité le pas sur C#), c'est la généricité, un des deux paradigmes qu'apportent les templates en C++.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  13. #13
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Plus haut dans la meta prog,
    Voilà le terme que je cherchais lorsque je parlais de patron de fonctions.

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Par défaut
    Mais alors je comprends pas pourquoi tout le monde dis que Java est plus portable que C++ si ce n'est finalement qu'il ne s'utilise pas de la même manière mais qu'ils fonctionnent partout tout les deux... Et sinon y'a-t-il en Java l'équivalent des pointeurs parceque c'est quand même très très pratique ?
    merci

  15. #15
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    en Java tout est pointeur dès qu'on utilise les objets

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Par défaut
    oki c'est bien ce que je pensais en fait les pointeurs se déclarent automatiquement. Mais cela peut-il gêner parfois lors de la programmation ou alors peut-on aussi bien les utiliser qu'en C/C++ ?

  17. #17
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Et c'est bien ce qui me déplaît dans Java.

  18. #18
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    ils ne se déclarent pas automatiquement. en Java quand tu veux instancier un objet tu fait

    var est un pointeur alloué par new (comme en C++) sauf qu'il n'y a pas d'étoile, et que le garbage collector s'occupe de la désallocation dès lors que le pointeur n'est plus utilisé.

    en Java tu n'as pas le choix, c'est tout pointeur. du coup il faut faire attention quand tu fais une fonction de copie par exemple. si tu fais une bête copie, tu partages les objets. pour réellement les dupliquer c'est un poil plus complexe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class type
    {
       int n;
       Obj oVar;
    }
     
    type var1 = var2;
    // copie du int OK, mais var1.oVar = var2.oVar veut dire égalité des pointeurs. ils pointent tout deux le même zone mémoire
     
    // soluce
    var1.clone(var2);
    // où clone fait ce qu'il faut pour dupliquer oVar
    note : en Java tu ne peux pas redéfinir les opérateurs, donc tu ne peux définir un operator= qui fasse la même chose que clone()

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Par défaut
    note : en Java tu ne peux pas redéfinir les opérateurs, donc tu ne peux définir un operator= qui fasse la même chose que clone()
    Oui c'est ca que j'appelais "de la programmation type php/C " quelques post plus haut =). En C++ et C on peut redéfinir une fonction donné (genre par exemple dans un tuto de C, un exo était de refaire les fonctions strlen(), strcat(), ...). C'est ca qui me dérange en Java, j'ai l'impression que tout est déjà fait et qu'on a bcp moins de libertés du coup.... du fait qu'on ne puisse pas tout refaire si l'on le souhaite... ou alors j'ai mal compris...

  20. #20
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Par défaut
    Si ton désir d'apprendre un langage est avant tout pédagogique, je n'aborderais pas le problème sous l'angle C++ vs Java.
    La plupart des applications actuellement sont développées en utilisant des langages orientés objet. La programmation orientée objet est un sujet d'étude à part entière. Une fois ses concepts bien maîtrisés, il faut peut de temps pour pouvoir développer avec un niveau professionel en Java ou en C++.
    Si tu débutes, choisi l'un de ces deux langages et attache toi à l'apprentissage du paradigme objet. Souvent Java est préféré comme langage d'éducation car il est plus simple à mettre en oeuvre que C++, ce qui permet de se concentrer sur la conception objet, plus que sur des détails techniques et autres bidouilles.

    Une fois que tu maîtrises la conception objet, apprendre les spécificités des langages qui l'implémente est assez simple. Dans mon cursus, je n'ai ni fait de Java ni de C++, mais en 3 semaines, je développais en Java pour une boîte. Idem pour C++, avec mon expérience en Java, j'ai mis 2-3 semaines pour me mettre à niveau.

    Donc, choisi Java ou C++ et attache toi à comprendre les concepts d'objets, classes, etc... C'est le plus important AMA

Discussions similaires

  1. Rendre son exe portable
    Par sorry60 dans le forum C#
    Réponses: 7
    Dernier message: 04/06/2008, 09h17
  2. Créer une image bouton, image animée convertie en clip impossible a rendre clickable
    Par JB_Lenoir dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 15/04/2008, 11h30
  3. Impossible de rendre un dossier en lecture-seule
    Par andrianiaina dans le forum Sécurité
    Réponses: 6
    Dernier message: 01/03/2007, 08h26
  4. Impossible de rendre modale une feuille..
    Par lenrok dans le forum C++Builder
    Réponses: 4
    Dernier message: 01/01/2007, 09h21
  5. [VBA Access] Impossible de rendre un contôle inactif
    Par eultartuffe dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/04/2006, 14h18

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