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

  1. #1
    Expert éminent sénior
    Avatar de Katleen Erna
    Profil pro
    Inscrit en
    juillet 2009
    Messages
    1 547
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : juillet 2009
    Messages : 1 547
    Points : 75 990
    Points
    75 990
    Par défaut Souhaiteriez-vous reprogrammer en C/C++ après des années d'utilisation de .NET/C# et Java ?
    Souhaiteriez-vous reprogrammer en C/C++ après des années d'utilisation de .NET/C# et Java ? Pour ou contre le low level ?

    En tant que développeur, envisageriez-vous de faire un petit voyage dans le passé, disons dans les années 1980, pour retrouver les langages de programmation d'avant ?

    Beaucoup de professionnels de l'informatique ont passé la dernière décennie à travailler sous C# et Java (on parle évidement ici d'une tendance, et non pas d'une généralité). Certains ont récemment choisis de se remettre à coder en C/C++ et sont satisfaits de ce choix.

    Bien sûr, certains outils et bibliothèques leurs manquent mais ils se sentent soulagés par un style "plus simple que celui de Java et de ses bibliothèques inutilement complexes". Pour autant, Java apporte l'avantage du code multi-thread. Mais d'autres de conciderer que la programmation en pthreads n'est pas plus difficile.

    En outre, certains codes de socket seraient plus faciles a éxecuter en C du fait de la façon ardue dont fonctionne I/O dans Java.

    Dans la liste des arguments favorables au low level, on note également que la majorité des APIs actuelles ont été construites en C. Certains développeurs perfectionnistes expliquent aussi que la programmation de ce type leur permet de se focaliser d'avantage sur la performance et les optimisations et de pousser très loin les assemblages.

    Dans l'autre camp, on préfère traiter des problèmes "plus compliqués, que le low level ne permet pas de prendre en charge". Eclipse (dans Java) faciliterait beaucoup de tâches avec "une seule manière de faire chaque chose".

    Bref, toute cette cuisine de langages semble finalement surtout être une question de goûts personnels. Quels sont les vôtres ?

    Sources : Diverses opinions de développeurs anonymes.

    Java est-il vraiment d'un plus "haut niveau" que le low level (C/C++) ? Et C# ?

    Que pensez-vous des performances de Python comparé à Java et C# ?

    Le recours à un compiler moderne peut-il changer la donne ?

  2. #2
    Membre éclairé
    Inscrit en
    avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : avril 2006
    Messages : 853
    Points : 893
    Points
    893
    Par défaut
    j'ai débuter avec le langage C, j'en ai fait durant plus de 3 ans, un peu de vb, delphi, une miette de C++ et ensuite Java

    je dirais que la majorité des tâches que je fais à chaque jours je pourrais aussi le faire en C, mais ça prendrais beaucoup plus de temps

    c'est certain que java est beaucoup plus haut niveau que le C, C++
    il "cache" certain élément

    faire du C, C++ portable n'est pas du tout évident, aucun compilateur respecte entièrement les performances

    pour ton exemple de socket, c'est la première chose que j'ai du faire en Java... difficile de faire plus simple

    elle varie d'un compilateur à un autre

    j'ai jamais été un fan de python, j'aime pas trop sa syntaxe et n'importe qu'elle benchmark montre qu'il est plus que le c, c++, java

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : juillet 2006
    Messages : 1 537
    Points : 2 502
    Points
    2 502
    Par défaut
    Je trouve que D est une bonne réponse à ce problème.

    C'est pourquoi j'ai décidé de m'y mettre.

    Andrei Alexandrescu est d'accord, ce qui me fait penser que je ne dois pas être totalement fou.

  4. #4
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    octobre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2009
    Messages : 36
    Points : 60
    Points
    60
    Par défaut
    Il est vrai que D semble une bonne alternative.

    Encore étudiant, je n'ai pas une maitrise totale des langages mais je prefere tout de meme la syntaxe complexe du C++ que celle de Java.
    J'aime la sensation de controle totale d'un langage bas niveau.

    Et pour la portabilité C++/Qt !

  5. #5
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : février 2009
    Messages : 427
    Points : 1 495
    Points
    1 495
    Par défaut
    Citation Envoyé par robert_trudel Voir le message
    pour ton exemple de socket, c'est la première chose que j'ai du faire en Java... difficile de faire plus simple
    Si, en Python c'est encore plus simple et rapide

    Sinon perso je préfère le Java ou le Python au C/C++/C#.
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    avril 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2006
    Messages : 41
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par Katleen Erna Voir le message
    Mais d'autres de conciderer que la programmation en pthreads n'est pas plus difficile.
    [...]
    Dans l'autre camp, on préfère traiter des problèmes "plus compliqués, que le low level ne permet pas de prendre en charge". Eclipse (dans Java) faciliterait beaucoup de tâches avec
    Avant tout il y a des grosses fautes dans ton passage (en plus des petites que je n'ai pas re-cité. (Utilises au moins le dico Fr si t'utilises Firefox).

    Pour ma part je pense que le problème du langage est un sujet de masturbation cérébrale propre aux experts dans un langage.
    J'ai toujours favorisé les objectifs du projet avec les contraintes temps de développements et temps d'exécution et accessoirement préférence du client pour un langage car il a des ressources pour maintenir.

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    février 2004
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2004
    Messages : 1 817
    Points : 1 540
    Points
    1 540
    Par défaut
    J'ai fait pas mal de trucs en C++, puis je suis passé à C#.

    La transition n'était pas facile étant donné que je faisais les conceptions, et arrivé à l'implémentation, je m'apercevait qu'il n'était pas possible de faire certains trucs en C# (méta programmation notamment).

    Ca m'a donné un sentiment de manque de liberté, de ne pas pouvoir avoir la main sur tout ce que je voulais. Du coup, je m'arrange pour n'être que sur les projets en C++.

    Il y a également pas mal de fonctionnalité apportées au C++ via les différentes libs disponibles (surtout boost) qui ne sont pas disponibles en .net ou en java. Quand on est habitué à les avoir, ensuite c'est difficile de s'en passer.

    Enfin, je trouve les libs C++ plus créatives et ingénieuses que celles de .net ou java, la communauté est plus large et plus ouverte.

    Python je ne connais pas.
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  8. #8
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 6 270
    Points : 8 585
    Points
    8 585
    Par défaut
    Le truc c'est que normalement tout ce qui est lib C/C++ en général, soit c'est intégré nativement en .NET soit on peut quand même y accéder via des P/Invoke.

    Personnellement j'ai fait du C/C++ et du C# (et d'autres trucs genre Java, but i'd rather not talk about it ) et il y a plein de petites choses qu'il faut surveiller en C/C++ pour faire un programme propre (référence ? pointeur ? copie ? j'ai bien tout libéré ? je crois que j'ai oublié un \0 ... c'est des erreurs de noob mais quand on a pas fait de C/C++ depuis longtemps, il arrive forcément un moment où on en fait) qui sont quasiment géré automatiquement par .NET.

    Et puis ça fait plaisir de ne jamais avoir de Access Violation ou Heap Corrupt. Par contre, il n'y a encore aucun moyen de faire certains trucs genre des Drivers en C#, sur le coup c'est indéniable ...

    ps. C++ n'implique pas low level

  9. #9
    Membre habitué
    Inscrit en
    janvier 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : janvier 2009
    Messages : 68
    Points : 170
    Points
    170
    Par défaut La question qui tue...
    Genre : vous préférez avoir une jambe en mousse ou des dents en carton ?
    Pas de doute, le schmilblic avance...

  10. #10
    Membre averti Avatar de vintz72
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : octobre 2005
    Messages : 154
    Points : 312
    Points
    312
    Par défaut
    Actuellement sur Java, j'ai tâté de C# et de C et C++ également.
    Je pense que le langage lui-même n'est pas si important. Ce qui l'est pour moi, c'est qu'il soit orienté objets. Ca, je ne pourrais plus m'en passer. Ensuite, si l'EDI est performant, ça facilite grandement les choses !
    En outre, ça fait 10 ans que je n'ai plus fait de C++, mais a priori, il y a eu pas mal d'évolutions (libs standards, etc.), donc pourquoi pas s'y remettre à l'occasion.
    Sinon, il y a Objective-C aussi... ;-)

    Quant on Python, je ne connais pas suffisamment pour en parler.

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    27 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 27 233
    Points : 40 967
    Points
    40 967
    Par défaut
    Personnellement, j'adore le bas niveaul. Mais pour certaines applications, le C pur, c'est vraiment gonflant.
    Le C++ est bien mieux, vu qu'il permet de faire du bas niveau tout en apportant l'avantage de la RRIF.

    Pour autres langages plus évolués, je pense que .Net est un bon compromis: Selon moi, C# est un poil plus bas que java, et couplé à C++/CLI, on peut tout faire avec.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 10 062
    Points : 15 892
    Points
    15 892
    Par défaut
    Souhaiteriez-vous reprogrammer en C/C++ après des années d'utilisation de .NET/C# et Java ?
    On est obligé de choisir entre les deux ? Parce que C#/Java sont conçus "de base" pour utiliser du C/C+ lorsque le besoin s'en fait sentir (pinvoke/jni).

    Donc je ne vois pas trop l'intérêt de coder "entierement" une appli en C/C++ sous prétexte qu'une petite partie du code serait trop compliquée/lente en C#/Java. Non ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    27 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 27 233
    Points : 40 967
    Points
    40 967
    Par défaut
    +1. Surtout pour p/Invoke, qui peut utiliser des DLLs n'étant pas explicitement prévues pour .Net (contrairement à JNI).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 10 062
    Points : 15 892
    Points
    15 892
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    +1. Surtout pour p/Invoke, qui peut utiliser des DLLs n'étant pas explicitement prévues pour .Net (contrairement à JNI).
    Certes. Il y a tout de meme JNA pour faire pareil en Java.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    février 2008
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : février 2008
    Messages : 147
    Points : 365
    Points
    365
    Par défaut
    Ce qu'il y a de bien avec le C++, c'est qu'on peut tout faire avec, même des choses très complexes au niveau de l'interface graphique, que les language de haut niveau intègrent à peine (Ou alors il faut acheter des composants ).

    Ce qu'il y a de négatif, c'est le temps de développement. Passer 3 jours à faire un écran, alors qu'en C# en deux heures c'est torché, c'est très frustrant.

    Je pense que le C++, avec ses nouvelles normes, et l'avénement de l'embarqué à le vent en poupe. Jusqu'au jour ou les décideurs comprendront que le java ou le C# fait tout aussi bien et pour moins cher.

  16. #16
    Membre éprouvé

    Profil pro
    Inscrit en
    novembre 2009
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2009
    Messages : 612
    Points : 1 175
    Points
    1 175
    Par défaut c++
    Tout dépend de la plateforme mais plus le temps passe, plus j'aime le c++ :
    pas de framework, pas de désassemblage facile.
    hum le c# m'a permis de faire tout ce que je voulais, sauf l'injection de dll, la conception de driver, certain petit hook tordu, et autre petite bricole.
    donc le c# c'est top, l'action script aussi, mais pourvoir faire du c++
    c'est top aussi, c'est un peu comme faire sa patte a pizza soit même ou l'acheter dans le commerce. Les deux on leurs bon côté.
    Flash player ActionScript Virtual Machine 2 http://www.mozilla.org/projects/tamarin/
    fonctionnement de la machine virtuel : (ActionScript Virtual Machine 2 (AVM2)) :
    http://www.adobe.com/content/dam/Ado...m2overview.pdf

  17. #17
    Membre actif Avatar de lucideluciole
    Homme Profil pro
    Développeur Web
    Inscrit en
    novembre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : novembre 2008
    Messages : 82
    Points : 201
    Points
    201
    Par défaut
    Citation Envoyé par jpouly Voir le message
    Ce qu'il y a de négatif, c'est le temps de développement. Passer 3 jours à faire un écran, alors qu'en C# en deux heures c'est torché, c'est très frustrant.
    C'est peut-être le prix à payer pour pouvoir "tout faire" comme tu dis!
    Et pour répondre à la question: oui je pense qu'il est difficile de revenir à un langage plus low level quant on s'est habitué à Java ou C#. Le temps de développement est un atout favorable pour ces langages.

  18. #18
    Membre émérite
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : juillet 2006
    Messages : 1 537
    Points : 2 502
    Points
    2 502
    Par défaut
    Citation Envoyé par lucideluciole Voir le message
    C'est peut-être le prix à payer pour pouvoir "tout faire" comme tu dis!
    C'est faux, et le D par exemple prouve cela. En D, tu codes comme en Java, C# ou autre langage haut niveau, mais tu peux aller bas niveau si tu en as besoin.

    Sinon, j'aime bien python, mais les performance ne sont pas toujours au rendez vous. Ceci dit, ce problème est souvent surévalué. Les qualités de python en font un bon choix pour de nombreux projets !

  19. #19
    Expert éminent sénior

    Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    7 579
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : novembre 2006
    Messages : 7 579
    Points : 17 834
    Points
    17 834
    Par défaut
    Cela sent un débat C/C++ vs Java ou C# numéro 2

    Citation Envoyé par smyley Voir le message
    Et puis ça fait plaisir de ne jamais avoir de Access Violation ou Heap Corrupt.
    je suis d'accord avec toi mais si tu gères mal les exceptions avec C#/.NET cela n'empêche pas les message-box d'erreur
    En VB6 c'était pareil avec les runtime error..

    Citation Envoyé par jpouly Voir le message
    Ce qu'il y a de négatif, c'est le temps de développement. Passer 3 jours à faire un écran, alors qu'en C# en deux heures c'est torché, c'est très frustrant.
    c'est vrai oui mais une fois que tu maitrises l'essentiel tu peux être presqu'aussi performant..

  20. #20
    Membre du Club
    Inscrit en
    septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : septembre 2009
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par Averroes
    Utilises au moins le dico
    et toi tu devrais utiliser le Bescherelle !

Discussions similaires

  1. Un else après des if en cascade
    Par yinyann86 dans le forum Langage
    Réponses: 1
    Dernier message: 21/11/2006, 18h52
  2. Revenir en arrière après des update
    Par charles_mourot dans le forum Oracle
    Réponses: 10
    Dernier message: 02/10/2006, 11h01
  3. Réponses: 10
    Dernier message: 26/04/2006, 12h33
  4. Réponses: 7
    Dernier message: 26/01/2006, 13h19
  5. [IB6] mon serveur crash apres des insert en série...
    Par Rmotte dans le forum Débuter
    Réponses: 11
    Dernier message: 27/05/2004, 15h53

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