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

Langages de programmation Discussion :

Bien choisir un langage et le maîtriser


Sujet :

Langages de programmation

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Bien choisir un langage et le maîtriser
    Bonjour,

    Je suis un programmeur assez bon en VB6. J'ai fait un peu de C, Pascal, Java, mais je retourne rapidement vers VisualBasic pour développer des applications sous Windows.

    Maitenant, je veux apprendre et maîtriser un autre langage. Je suis sur le point de choisir entre le C/C++, VC++, Delphi, Java. Pouvez vous m'aider à bien choisir.

    J'attends vos conseils. Merci !

  2. #2
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par _younes
    Bonjour,

    Je suis un programmeur assez bien en VB6. j'ai fait un peu du C, Pascal, Java, mais je retourne rapidement vers VisualBasic pour développer des applications sous windows.
    Maitenant, je veut apprendre et maitriser un autre langage. je suis sur le point de choisir entre le C/C++, VC++, Delphi, Java. Pouvez vous m'aider pour bien choisir.
    J'attend vos conseils. Merci!
    Bonjour,

    A priori, je te dirais d'apprendre à maîtriser le C puis le Java, ce qui te permettra de maîtriser les concepts utilisés par la plupart des autres langages.

    C/C++ sont deux langages différents. VC++ est un EDI plus qu'un langage.

    A quoi va servir le nouveau langage ? Es-tu étudiant ou salarié ?
    Pour t'aider efficacement, il faut avoir plus de détails.
    [alkama] quelqu'un est allé voir la guerre des mondes?
    [@Chrisman] j'espère pour spielberg
    --- bashfr.org

  3. #3
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Ta question est équivalente à :
    Bonjour, je compte acheter une voiture.
    Quelle marque me conseillez-vous ? Audi, Peugeot, Renault, Mercedes, Ford, ... ?
    Sans critères, il n'y a pas de réponse.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  4. #4
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    Tient, j'aime beaucoup ton exemple Hephaistos007, je le ressortirais à l'occasion
    C'est assez explicite et tellement vrai...
    "En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
    Application :

    ainsi qu'à regarder la avant de poser une question.

    La rubrique Perl recrute, contactez-moi.

  5. #5
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    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 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par zooro
    C/C++ sont deux langages différents.
    "C et C++ sont deux langages différents".
    Il m'arrive d'utiliser le terme "C/C++" pour désigner l'erzat hybride du C et du C++ qui est particulièrement inmaintenable et qui fuit dans tous les sens à la moindre exception. J'ai eu ma période où je croyais que le C/C++ était un langage, après j'ai su que ce langage n'existait pas, et aujourd'hui malheureusement j'en ai vu et j'en cotoie encore parfois.

    Sinon +1 à pourquoi faire et dans quel cadre.
    Et pitié, regarde les nombreux et réguliers nouveaux messages à ce sujet. Ta question n'est pas plus originale que celle qu'a posée ton voisin deux semaines avant toi.
    (Si on pouvait éviter de refaire sans arrêt les mêmes débats )
    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...

  6. #6
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    +1 avec luc.
    Si ça continue je vais m'énerver et je vais prendre tout les posts intéressants qu'on a eu sur ce sujet, je vais les fusionner en un sujet et un seul et je vais mettre ça en post it.
    L'ennui c'est que c'est vraiment lourd comme manip (c'est pas du git merge/ git revert etc...)

  7. #7
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par Gnux
    +1 avec luc.
    Si ça continue je vais m'énerver et je vais prendre tout les posts intéressants qu'on a eu sur ce sujet, je vais les fusionner en un sujet et un seul et je vais mettre ça en post it. L'ennui c'est que c'est vraiment lourd comme manip...
    ...et que paradoxalement, les nouveaux arrivants ne regardent jamais les post-it !
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  8. #8
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut
    Plus simple, je pourrais poster mon ébauche concernant le choix d'un langage .

    Concernant le choix du langage: commencer par un langage de bas niveau tel le C ou le C++. Mon choix s'est porté sur le second en raison de son utilisation sur le marché du développement. Secondo, poursuivre avec un langage de plus haut niveau et l'ASM qui me semble capital pour la compréhension fondamentale des principes assimilés jusque-là.

    Et pour Delphi, je te conseille d'attendre de voir comment la politique de Borland évolue...

  9. #9
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    Citation Envoyé par reggae
    Concernant le choix du langage: commencer par un langage de bas niveau tel le C ou le C++.
    Le C++ un langage de bas niveau ? C'est un langage orienté objet, un langage de haut niveau ! Et si il est utlisé come un langage de bas niveau, c'est qu'il est mal utilisé.

    Citation Envoyé par reggae
    Secondo, poursuivre avec un langage de plus haut niveau et l'ASM qui me semble capital pour la compréhension fondamentale des principes assimilés jusque-là.
    L'ASM n'est absolument pas capital pour qui veulent devenir développeur d'application.
    Et puis, je ne suis pas certain de la nécéssité de voir la compexité qu'engendre une simple déclaration de fonction qui reçoit disons une structure en paramètre...
    L'ASM est utile pour le développement d'OS (ou en tout cas d'une application qui a besoin d'une rlation extrêmementt étroite avec la machine, genre un tru que l'OS ne peut pas gérer lui même) ainsi que dans des cas extrêmements rares oun même une fonction C n'est pas assez rapide. Vu la puissance actuelle des machines, et la vitesse d'évolution de l'informatique, ce genre de situation se rarifie de plus en plus.

    Citation Envoyé par reggae
    Et pour Delphi, je te conseille d'attendre de voir comment la politique de Borland évolue...
    Rien à dire là dessus, apprendre Delphi de nos jours peut être une erreur si Borland laisse tomber Delphi pour se concentrer sur les IDEs et sur Delphi.NET.
    "En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
    Application :

    ainsi qu'à regarder la avant de poser une question.

    La rubrique Perl recrute, contactez-moi.

  10. #10
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut
    Le C++ un langage de bas niveau ?
    Comparé à un certain nombre de langage comme C#, je trouve... Mais comparé au C, ce n'est assurémant pas le cas.


    L'ASM n'est absolument pas capital pour qui veulent devenir développeur d'application.
    Et puis, je ne suis pas certain de la nécéssité de voir la compexité qu'engendre une simple déclaration de fonction qui reçoit disons une structure en paramètre...
    C'est une vision personnelle des choses:
    ASM qui me semble capital...

  11. #11
    Membre confirmé Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Points : 489
    Points
    489
    Par défaut
    Citation Envoyé par _younes
    Bonjour,

    Je suis un programmeur assez bon en VB6. J'ai fait un peu de C, Pascal, Java, mais je retourne rapidement vers VisualBasic pour développer des applications sous Windows.

    Maitenant, je veux apprendre et maîtriser un autre langage. Je suis sur le point de choisir entre le C/C++, VC++, Delphi, Java. Pouvez vous m'aider à bien choisir.

    J'attends vos conseils. Merci !
    Ca dépend de ce que tu veux faire. Chaque langage est préférable dans une situation plutôt qu'une autre.
    Les langages de haut niveau permettent le développement rapide (RAD) parce qu'ils s' appuient sur des librairies existantes (comme le tri de données, oui tu sais à quoi je fais référénce).
    Les langages de bas niveau sont plus long au développement mais sont plus puissants, en général.

    Mon avis: les meilleurs sont écrits en C. Apache, PHP, gedit, Perl, noyau et outils Linux, le noyau Windows, ... La liste est impressionnante. Leur source généralement disponible.
    Comme dit Kernighan, "Si je devais etre coincé sur une île déserte, je voudrais que ce soit avec un compilateur C".

    Le C++ et Java facilitent le développement grâce à l' abstraction apportée par l' orienté-objet. Débat sans fin. Essayes-les tous et fais-toi ta propre idée sans être infuencé. Tu pourrais tout aussi bien apprendre VB en profondeur avant de changer.
    La transposition avec le choix sur la voiture est très pertinent. Comme si quelqu'un décidait quelles chaussures il fallait porter pour être dans le moule ...

  12. #12
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Citation Envoyé par Lunixinclar
    Mon avis: les meilleurs sont écrits en C.
    Ca reste à prouver ! Beaucoup de bons logiciels sont faits en C tout simplement parce que les compilateurs C (voire C++) sont les seuls à être proposés de base sur les systèmes d'exploitation et que l'interfaçage avec le système est aisé, rien de plus, rien de moins.

    D'ailleurs, maitenant que les compilateurs Java et autres commencent à se généraliser sur les machines, je suis curieux de voir si on ne trouvera pas de plus en plus de logiciels faits dans des langages moins courants.

    Citation Envoyé par Lunixinclar
    Apache, PHP, gedit, Perl, noyau et outils Linux, le noyau Windows, ... La liste est impressionnante.
    Je vois ce que tu veux dire, mais je ne pense pas que le cas de gedit et du noyau Windows soit si remarquable que ça, surtout au niveau performances et confort d'utilisation. De plus, on n'en sait trop rien sur le fait que Vindose serait fait en C, car si l'API est bien utilisable directement en C, le programme, lui a très bien pu être écrit dans un autre langage, possédant un interfaçage avec C (et pourquoi pas Haskell, étant donné que les mecs de Windows sont assez actifs dans la communauté Haskell...).

    Citation Envoyé par Lunixinclar
    Comme dit Kernighan, "Si je devais etre coincé sur une île déserte, je voudrais que ce soit avec un compilateur C".
    C'est clair... mais en général, je préfère Objective Caml, plus confortable et puissant.

    Citation Envoyé par Lunixinclar
    Le C++ et Java facilitent le développement grâce à l' abstraction apportée par l' orienté-objet. Débat sans fin.
    Ouais, enfin moi je ne suis complètement pas d'accord avec cette vision des choses, et ce pour deux raisons très simples.

    1- une classe = un type = un fichier = des milliers de tones de mots-clef pour à la fin pas grand chose (mais comment se fait-il qu'il faille UN fichier pour définir une exception Java, du moment qu'elle n'est pas internalisée ?)

    2- une classe, c'est quelque chose de fermé, dont on n'a pas accès à la structure interne, donc pour fabriquer des types de données en TOUT OBJET, ça devient tout de suite très lourd, surtout à cause des dizaines de méthodes (toutes plus portables les unes que les autres, en plus !) qu'il faut se fabriquer pour avoir une chance de savoir ce que fait la classe. Un exemple frappant : les AVL. Une très belle libAVL en C (comme la mienne !) avec tout plein de fonctionnalités avancées fait à tout pèter 1400 lignes de C (avec macros, sauts à la ligne généreux, et près de trente fonctionnalités diverses)... combien en C++ ou en Java ? En OCaml, suivant qu'on le fasse en fonctionnel pur ou non, ça peut prendre entre 500 et 800 lignes (avec les mêmes fonctionnalités que plus haut).

    Par contre, ne me faites pas dire ce que je n'ai pas dit : les classes c'est cool et ça sert dans de nombreux contextes (d'ailleurs, dans un projet de compilateur que je fais actuellement, je mélange allègrement foncteurs, classes et types en tous genres... et plus !). Le seul problème, c'est que pour implanter des structures un peu "bas niveau" (au sens algorithmique du terme), ce n'est pas franchement adapté, car le TOUT OBJET se révèle alors trop haut niveau pour ce genre de trucs.

    C'est comme dit plus haut : il faut prendre le bon outil.

    Autre précision : l'assembleur, ça ne sert plus à rien aujourd'hui. Linux est, par exemple, entièrement fait en C. L'assembleur (et je suis un énorme fan du x86) sert surtout à se faire plaisir et aux personnes qui font de la compilation (et encore, en dûr !). De plus, le code assembleur écrit à la main est très sous-optimal par rapport à ce que crache un bon compilateur optimiseur. Par contre, c'est sûr, on comprend le fonctionnement de la machine, mais l'apprentissage de l'assembleur est un très, très, très, très long parcours initiatique (surtout en x86 avec les instructions SIMD).
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  13. #13
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    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 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Beaucoup de bons logiciels sont faits en C tout simplement parce que les compilateurs C (voire C++) sont les seuls à être proposés de base sur les systèmes d'exploitation et que l'interfaçage avec le système est aisé, rien de plus, rien de moins.
    Le C a un clair avantage sur le C++ à ce niveau là. Tous les compilos C++ ne partagent pas d'ABI, ce qui peut s'avérer problématique, et C est bien mieux supporté sur les plateformes de niche/exotiques.


    noyau windows
    Pour les noyaux windows, je dirais un mélange historique de C couplé à un sous-ensemble de C++ -- cf le lien qu'à donné Aurélien il y a peu au sujet de la conception de drivers pour windows.

    Une très belle libAVL en C (comme la mienne !) avec tout plein de fonctionnalités avancées fait à tout pèter 1400 lignes de C (avec macros, sauts à la ligne généreux, et près de trente fonctionnalités diverses)... combien en C++
    Si le nombre de lignes comptent, au plus autant -- 99% des codes C compilent avec un compilo C++. Mais facilement moins aussi -- algorithmes standards, containers, ....

    Ah oui! Et évidemment (quand je disais qu'on allait encore se répéter...), C++ n'implique pas OO.


    Sinon d'accord qu'il ne faut pas avoir des oeillières non plus. Le tout objet a ses limites. C# a d'ailleurs réveillé Java en introduisant la généricité. Bien qu'ils gardent une certaine rigidité d'organisation du code.
    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...

  14. #14
    Membre confirmé Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Points : 489
    Points
    489
    Par défaut
    Pour le noyau windows il ne s' agissait pas d'une supposition. Le code propriétaire ne cache pas tout. Kernel32.dll, user32.dll et gdi.dll sont sur le disque dur. Peut-être aurons-nous l' occasion d'en reparler dans un autre thread.

    Kernighan dit aussi que le C est très expressif. Là ou un programmeur Java n'a quasiment qu'une seule façon d'écrire une routine, le programmeur C est beaucoup plus libre. Le tout objet oui, on aime ou on n' aime pas. Python a de la classe.

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/01/2014, 18h23
  2. [Guide] Comment choisir un langage ?
    Par kisitomomotene dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 15/10/2007, 13h00
  3. [Popup]Quelle solution choisir ? Quel langage ?
    Par khany dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 20/06/2006, 20h28
  4. [Webdesign] Comment bien choisir un webdesigner ?
    Par megane dans le forum Webdesign & Ergonomie
    Réponses: 3
    Dernier message: 02/06/2006, 11h13
  5. Aide pour choisir un langage!!
    Par theshark85 dans le forum Windows
    Réponses: 2
    Dernier message: 29/05/2006, 22h15

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