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 :

Le C++ en perte de vitesse ?


Sujet :

C++

  1. #1
    Membre actif
    Le C++ en perte de vitesse ?
    Bonjour bonjour,

    Récemment, j'ai réaliser que le C++ n'était pas _du tout_ aborder dans mes études d'ingénieur «computer science». Après une petite discussion avec un ami (un professionnel dans l'industrie, chargé de test de qualités pour une petite boite naissante, IBM), il en est ressortit que le C++ était laissé derrière, loin derrière Java pour tout ce qui concerne les télécommunications du moins.

    De plus comme il n'est pas abordé dans mon école (qui a une très bonne renommée), je suppose que ce n'est pas un choix isolé. Peut-être me trompe-je ?

    Alors bon, cet ami n'est pas un développeur, d'ailleurs il n'a pas fait d'étude d'info mais de physique. Et ce n'est qu'un homme dans un boite parmi beaucoup d'hommes et d'entreprises. Aussi je me demandais ce que VOUS en pensiez ; se qu'il se passe VRAIMENT dans monde.

    Enfin, quelques questions en vrac qui me passe par la tête ces jours si :

    Le C++ est-il réellement en perte de vitesse, de manière globale ou seulement sectorisée (que les télécommunications) ?

    Java prend-il vraiment la tête, malgré le fait qu'un grand constructeur avec pour effigie un fruit entamé a retiré le support Java de son IDE il y a quelques temps ? De plus il semble que cette entreprise soit plus «C Family» qu'autre chose avec certains investissement. Ferra-t-il pencher la balance ?

    Que se passe-t-il dans les autres Universités ?

    Est-ce l'API Java qui le rend si attrayant comparé à celle du C++, ou le fait qu'il soit plus simple (et permettent ainsi moins de «subtilité») que le C++ ? Peut-être un mix des deux ?

    Le prochain standard (que je connais si mal) fera-t-il bouger les choses selon vous ?

    Très bonne soirée à vous!

  2. #2
    Expert confirmé
    Salut,

    Chacun défend son morceau de viande.

    IBM développe en Java.
    Si ton ami étais chez Microsoft, tu aurais eu un autre son de cloche.

    Tu parles de "sectorisation". Les langages sont surement sectorisé.

    Pour ma part, dans l'industrie, il y a les 2 (C++ et java) mais surtout du C++. Et je peux dire qu'un énorme projet militaire à pris l'eau à cause des perfs java.

    Dans le domaine bancaire, je crois que c'est principalement le C++ (pour des question de performance).

    Et dans l'aéronautique ? Là où l'erreur n'est pas permise, quelqu'un peut dire quel est le langage privilégié ?

    Un collègue qui a commencé en C++ puis fait du java, il disait que java c'était super. Puis il a fait du C# et il a dit que c'était encore mieux que java.

    Java est sûrement plus simple à apprendre.

  3. #3
    Membre chevronné
    C'est surtout que personne ne sait enseigner le C++ proprement et que l'inertie dans les boites (du moins en France) pour mettre des gens à niveau est abyssale. Ensuite, pour les écoles, y a l'effet local qui consiste à enseigner ce que les Enseignant présent savent enseigner ... Y a encore des endroits ou le PASCAL c'ets le top moumoute ... que devons nous en déduire ?

    Je vasi ressortir ma ritournelle: un ingénieur en informatique, c'ets pas un langage qu'il doit connaitre, c'ets au moins 1 de chaque type et etre capable au débottez d'en maitrisez un Xe en fonction des besoins.

    Un langage c'ets un outil, reste à apprendre l'outil qui va bien pour la tache courante.

    JAVA , j'espere qu'on en reviendra ...

  4. #4
    Membre du Club
    Je suis en école d'ingé en télécom, je vais rentrer en 3ème année et le C++ ne nous a pas (encore?) été enseigné non plus ! On a appris C et Java (parmi d'autres), et pourtant on a eu un projet "C++", qui consistait juste à remplir des bouts de code. Disons que, de ce que j'ai appris en école, ça nous donne plus l'impression que le C++ est "un mixe entre C et Java" (bien que je me rende compte que ce n'est pas vraiment le cas).

    Dans ce que je vois pour la suite, ça va avant tout être une approche langages dédiés ...

  5. #5
    Membre chevronné
    Citation Envoyé par syl1405 Voir le message
    Je suis en école d'ingé en télécom, je vais rentrer en 3ème année et le C++ ne nous a pas (encore?) été enseigné non plus ! On a appris C et Java (parmi d'autres), et pourtant on a eu un projet "C++", qui consistait juste à remplir des bouts de code. Disons que, de ce que j'ai appris en école, ça nous donne plus l'impression que le C++ est "un mixe entre C et Java" (bien que je me rende compte que ce n'est pas vraiment le cas).

    Dans ce que je vois pour la suite, ça va avant tout être une approche langages dédiés ...
    je vous en souhaite ...

  6. #6
    Membre habitué
    Je viens de commencer ma première année de cycle ingénieur et j'ai déjà vu le C++ au premier semestre. Bon par contre autant être honnête tout n'était pas parfait car l'enseignant a préféré faire une approche "vous venez du C, voici les différences".

    Par contre niveau contenu l'enseignant avait un excellent niveau et ça se voyait. Il a bien parlé de la couche objet, il a dès le début abordé les vector et les string, on a vu les design pattern, les templates, les smart_ptr, puis on a terminé par un projet à faire avec Qt. Bon c'était en six mois, donc ça a fait beaucoup à appréhender pour ceux qui connaissaient pas, mais je pense que pour un ingénieur ça suffit à s'ouvrir au langage et à pousser par la suite.

    D'ailleurs, beaucoup de mes amis ont trouvé un stage en tant qu'assistant-ingénieur dans des boites qui utilisent le C++. Pour ceux en école d'ingénieur qui n'ont pas vu le C++, est-ce qu'au moins vous avez vu le C ? Je demande car pour moi en Java, il y a trop de chose automatique comme la gestion de la mémoire (je peux me tromper, mais c'est ce qu'on m'a laissé sous-entendre en fait), et du coup c'est dommage de passer à côtés de tout ça. En plus bon la programmation système (que j'ai eu en cours ce semestre) utilisait le C.

    Pour le C++ je pense qu'il est loin d'être mort. Il y a encore énormément de code qui utilise ce langage, beaucoup de projet dont une ré-écriture prendrait trop de temps. Et puis surtout, pourquoi passer à un autre langage ? C'est vrai qu'il y a beaucoup d'étudiant qui sortent des écoles avec Java en langage de prédilection, mais en tant qu'ingénieur apprendre et maitriser un autre langage doit être la première qualité.

    Au sujet des secteurs d'activités, j'ajouterais tout ce qui est programmation graphique et GPGPU. Bon il y a Python avec PyCuda, mais sinon c'est du C, du C++ et du Fortran. (peut-être un wrapper Java pour Cuda ?)

  7. #7
    Membre expérimenté
    alors en réalité, ce n'est pas C++ qui est un mix entre C et java, mais bien java qui est une version ultra simplifiée et édulcorée de C++...
    en effet, C++ est apparût à une époque où l'idée même de java n'avait pas encore germée dans le cerveau de ceux qui l'ont inventés. Nota qu'ils l'ont surtout inventé car ils étaient eux même incapable de cerné toute la subtilité de C++.

    Une des raisons du fait que C++ n'est pas enseigné dans les cursus universitaires et en écoles d'ingénieur, c'est la permissivité et la complexité de celui-ci.
    En effet, la plupart du temps, les enseignants ne sont même pas des développeurs experts car ce titre étant considéré comme péjoratif en france, on aurait jamais l'idée de confier cette tâche à une telle personne.
    Mes profs d'infos étaient tous des profs de maths et les quelques profs d'infos, étaient resté sur des idées arriérées enseignées par leurs enseignants respectifs...
    Il faut savoir qu'en C++ on peut écrire tout et n'importe quoi, et surtout tout et son contraire, ce qui est une énorme source de bugs, en plus, la plupart du temps les profs se perdent dans les notions de pointeurs et de référence, ce qui fait qu'ils préfèrent passer cours, et éviter d'aborder le langage, ça va plus vite, quand à la STL... n'en parlons pas, et puis dès qu'il faut parler des templates qui sont omniprésents dans la STL, là il n'y a carrément plus personne, donc forcément tu risque pas d'apprendre ce fabuleux langage dans une école...
    Le fait qu'aucun compilateur ne compile de la même façon et qu'il existe 36 000 façon d'écrire la même chose et qu'une passe sur un compilateur et pas sur un autre et vice versa fini d'achevé le peu de crédibilité qu'il peut rester au langage (c'est encore pire quand tu écrit avec les templates et trouver une écriture qui passe sur tous, et surtout fonctionne, relève du miracle)
    Ensuite vient le fait qu'on peut écrire aussi bien du C, que faire de l'objet ou mixer les 2... c'est de loin l'élément qui rebute les profs... un peu arriérés (pardon aurais-je que dire beaucoup ?)
    Pour finir le faible typage... enfin normallement c'est un langage à typage fort, mais que l'on peut aisément contourner, et se juste en invalidant le type en passant par void, dont les néophytes abuse (ce qui est la source d'énormes bugs) alors que cela devrait être réservés aux pros très aguerris.

    De façon général ce langage est complexe et nécessite à lui seul au minimum une année pour n'en voir que les rouages, et c'est clairement anti-pédagogique.
    Les profs vont préférer ce tourner vers java plus "structuré" pour enseigner le paradigme objet... enfin plus structuré... personnellement je trouve pas mais bon.

    Mais c'est justement sa complexité qui en fait sa richesse, et le fait qu'il est irremplaçable.
    De façon générale dans le monde de l'industrie on a recours a C et C++ dans tous les domaines et métiers qui nécessites des process critiques.
    Donc du code sécuritaire ...
    Ce sont les seuls langages parfaitement adapté à toute plateforme embarquée également comme programmer les microcode d'un ABS lol... c'est con à dire mais bon.

    Pour ce qui est de Java, je n'ai jamais accroché à ce langage et le fait qu'il "bouffe" à tous les rateliers n'arrange rien à la chose. Ainsi quand tu vois que nombre d'améliorations du langage ont été apportée parce que microsoft, y a pensé et les a intégré à son langage C# ou les a reprises d'autres langages, comme la covariance et contravariance pour C# 4... ca montre bien aussi le niveau. Surtout qu'en plus à ce niveau ils ont du retards sur microsoft lol

    Effectivement tant qu'a choisir entre la peste et le choléra, si tu veux développer sur une plateforme "managée" il vaut mieux développer sur C#, car la plateforme est plus stable et nettement plus performante. Ainsi après avoir diverses analyse sur un code produit, même si le code intermédiaire produit par C# n'est pas optimisé, il en résulte que le code généré par le compilateur JIT de la CLR, lui l'est, et tout aussi bien que celui généré par g++ sous linux.

    Donc pour l'aéronautique où tous les processus sont critiques tu imagine qu'on utilise C et C++ uniquement.
    de façon général C# est idéal pour la télécommunication, le web, et les interfaces GUI.
    Java lui n'est idéal pour rien, les performances et la stabilité sont médiocres et ce même sur une plateforme full sun (SPARC+SUNOS/SOLARIS)

    En fait tu a une impression de mort du langage, car actuellement il y a beaucoup de recrutement qui ne trouve pas chaussure à leur pied pour java et C#, ce qui fait grand bruit... et couvre le marché annexe, qui pourtant est quasi tout aussi important pour C et C++.

  8. #8
    Membre chevronné
    Citation Envoyé par Aladore Voir le message
    Je viens de commencer ma première année de cycle ingénieur et j'ai déjà vu le C++ au premier semestre. Bon par contre autant être honnête tout n'était pas parfait car l'enseignant a préféré faire une approche "vous venez du C, voici les différences".

    Par contre niveau contenu l'enseignant avait un excellent niveau et ça se voyait. Il a bien parlé de la couche objet, il a dès le début abordé les vector et les string, on a vu les design pattern, les templates, les smart_ptr, puis on a terminé par un projet à faire avec Qt. Bon c'était en six mois, donc ça a fait beaucoup à appréhender pour ceux qui connaissaient pas, mais je pense que pour un ingénieur ça suffit à s'ouvrir au langage et à pousser par la suite.
    Quelle ecole ?

  9. #9
    Membre expérimenté
    oui quelle école Alador ?
    Car franchement t'est béni des dieux pour avoir vu (de loin certes, mais au moins tu l'as vu) C++ en école

  10. #10
    Membre habitué
    C'est à l'UTC (Université de Technologie de Compiègne).

  11. #11
    Membre chevronné

    Dans le domaine bancaire, je crois que c'est principalement le C++ (pour des question de performance).
    C'est plutôt du SQL (oracle) et PL/SQL .


    C'est surtout que personne ne sait enseigner le C++ proprement et que l'inertie dans les boites (du moins en France) pour mettre des gens à niveau est abyssale. Ensuite, pour les écoles, y a l'effet local qui consiste à enseigner ce que les Enseignant présent savent enseigner ... Y a encore des endroits ou le PASCAL c'ets le top moumoute ... que devons nous en déduire ?
    +1 ... en France on est vraiment mal loti.! Du coup on fait du Java parce que comme ça dès la sortie de l'école les jeunes sont "compétents" .

    Je vasi ressortir ma ritournelle: un ingénieur en informatique, c'ets pas un langage qu'il doit connaitre, c'ets au moins 1 de chaque type et etre capable au débottez d'en maitrisez un Xe en fonction des besoins.
    C'est bien vrai... mais tellement loin de la réalité !! Je serais intéressé de voir combien d'école d'ingé propose le paradigme fonctionnel. (ça doit tendre vers zéro à tout les coups).

    Pour l'histoire de "apprendre au débottez". C'est certes vrai mais pas non plus applicable à tout les langages . (et je pense au C++ ou autres haskell).


    JAVA , j'espere qu'on en reviendra ...
    +1000. (j'espère sincèrement qu'on sera entendu :p).
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  12. #12
    Expert confirmé
    Citation Envoyé par Aladore Voir le message
    C'est à l'UTC (Université de Technologie de Compiègne).
    Ca ne m'étonne pas !!

  13. #13
    Membre expérimenté
    Malheureusement pour Java, à moins qu'Oracle ne se décide enfin à exploiter la montagne de frics sur laquelle il se sont assis, ce langage a encore de beaux jours devant lui... même si à mon sens, il a déjà donné tout ce qu'il pouvait donné et qu'il serait temps qu'il cède la place.

    Pour les paradigmes fonctionnels, effectivement je doute que cela soit enseigné dans beaucoup d'écoles.
    Rien qu'au niveau des universités, à part en deug de maths ou t'est susceptible de voir un peu de ML ou de Lisp... globalement en informatique on en voit que très rarement.
    A l'université où j'étais, s'était dans le cursus car il y à un labo d'informatique sur place, et que le prof de modèles de calculs y tenait et comme c'était le directeur de cursus lol... y avait pas trop le choix
    S'il n'y avait pas eu lui pour se dire que la meilleur façon de nous exposer les différents modèles de calculs, s'était encore d'opposer les modèles récursifs, et donc le paradigme fonctionnel (et donc les langages fonctionnels comme OCaml ou maintenant F#) aux modèles de turing (et donc les langages impératifs) et le lambda-calcul avec par exemple les lambda expressions de certains langages (ocaml, C# ...) nous ne l'aurions jamais vu.

    Mais il ne faut pas blâmer que la France... il n'y a qu'a voir le niveau des pays voisins, pour se dire qu'ici on est plutôt vernis... ils savent quand même ce qu'est un langage en sortant d'étude d'informatique. LOOL

    Le niveau des écoles et des universités chutent et c'est bien dommage, pour tendre vers le néant absolu, mais la cause principal est l'éternel allègement des programmes. Tôt ou tard cela se paye.
    Le fait qu'on ne mette pas à jour les profs, et que par conséquent ils ne risquent pas de véhiculer des croyances récentes au profit de croyances obscures toutes droit sorties de l'inquisition.
    En effet, un développeur ou architecte qui vit sur ses acquis est destiné à mourir, et à décliner, car nous sommes dans des secteurs qui évolues extrêmement vite.
    Malheureusement l'enseignement et ce quelque soit le pays ne suit pas cette logique, et les profs font partis de ceux qui ne se mettent pas à jour, et n'ont soit disant pas besoin d'évoluer.

    Pendant mon cursus universitaire, le département informatique à changé de directeur, et j'ai vue une nette différence entre les deux courants de pensée, au début il était dirigé par une prof.
    Comme tout prof, elle avait élevée au ... les profs sont dieu le père, et leur savoir et connaissance ne saurait être remit en question, du coup tous les cours étaient fait par des profs, excepté deux cours fait par des chercheurs dans le labo local. Disons quelle n'avait pas le choix pour ces deux matières, y avait pas de prof compétents, mais seulement des chercheurs lol...
    Le second lui était un chercheur dans le labo, un maitre de conférence. Dès lors nos cours ont complétement changer de structure et la couverture de l'enseignement s'est fortement étendu.
    il a supprimé tous les cours avec des profs, les profs se sont tous retrouvés dirigeant de TD. Les cours magistraux et la majorité des TD ont été dirigés par des maîtres de conférences et doctorants, du labo voisin, y compris par des sommités dans leur domaine.
    La qualité et la diversité de l'enseignement s'en est de suite ressenti, et surtout il était enfin possible de discuter. leur discours n'avait alors rien avoir avec le discours archaïque des profs.
    Là où les profs t'incitaient à croire qu'ils détenaient la vérité vraie, et à ne pas la remettre en question, et donc pourquoi aller sur internet, lire des documents, des revues scientifiques, et donc se tenir à jour... les chercheurs nous incitaient eux à aller lire des docs, des revues, des traités spécifiques, des ouvrages de références, pour compléter l'enseignement.

    Malheureusement, il faut avouer que ce cas est assez rare, et que ce soit les écoles, ou les universités elles sont trop souvent remplis de profs qui ne font rien d'autres que l'enseignement, et dont les connaissances sont pour la plupart bonnes à mettre à la réforme, car plus du tout à jour.
    Les croyances d'il y a 20 ans dans l'enseignement faisait de C++ le langage à bannir, un langage pariât... à entendre le discours des profs, de la merde objet... c'est pourquoi il y a 20 ans et encore jusqu'aujourd'hui, c'est probablement un des langages les plus usité au monde.

  14. #14
    Membre chevronné
    sur le niveau des voisins, j'echangerait pas mes stagaiires/ingé allemand pour rien au monde.

    quant au profs, le jours ou les jeunes enseignants feront les cours et non pas les profs de 50+, on en reparlera :€

  15. #15
    Membre expert
    Citation Envoyé par fregolo52 Voir le message
    Dans le domaine bancaire, je crois que c'est principalement le C++ (pour des question de performance).
    Je temporiserai en disant dans le domaine des calculs financiers. Pour ce qui est des transactions bancaires, il me semble que JEE est pas mal exploité.

    Citation Envoyé par fregolo52 Voir le message
    Et dans l'aéronautique ? Là où l'erreur n'est pas permise, quelqu'un peut dire quel est le langage privilégié ?
    Il me semble qu'ADA est beaucoup utilisé.

    Citation Envoyé par cinemania Voir le message
    . Nota qu'ils l'ont surtout inventé car ils étaient eux même incapable de cerné toute la subtilité de C++.
    Ouh le troll tout velu .

    Pour ma part, j'ai appris C et Java en école, et C++ en arrivant dans le monde pro. J'aime toujours java, mais C++ reste pour moi le langage roi. Certains disent que les machines montant en puissance, on n'a plus besoin de se soucier des performances des langages, et que le code dit managé (selon l'expression de microsoft) prendra le dessus. Je persiste à croire que c'est faux, car les applications montent en complexité, et l'augmentation de puissance des machines au fil du temps ne l'amortit en rien.

    En tout cas dans ma boîte, on ne peut absolument pas se passer de C++, il a encore clairement des dizaines d'années devant lui chez nous. Et ça m'étonnerait que nous soyons les seuls.
    Find me on github

  16. #16
    Membre habitué
    Citation Envoyé par jblecanard
    Il me semble qu'ADA est beaucoup utilisé.
    D'après ce thread/message tu as l'air d'avoir raison.

    Citation Envoyé par jblecanard
    Je persiste à croire que c'est faux, car les applications montent en complexité, et l'augmentation de puissance des machines au fil du temps ne l'amortit en rien.
    C'est d'autant plus vrai que j'entend ce genre de parole chaque années, et quand je regarde ce qui se passe vraiment bah ça ne change pas énormément d'une année à l'autre. Par contre j'aimerais bien un indicateur des langages les plus utilisés en entreprise (et qu'on me sorte pas le classement qui se base sur les moteurs de recherche!).

    Citation Envoyé par Joel F
    sur le niveau des voisins, j'echangerait pas mes stagaiires/ingé allemand pour rien au monde.
    Pourquoi ? Est-ce qu'ils sont vraiment meilleur que ça en comparaison des ingénieurs français ? Je ne sais pas vraiment comment sont les ingénieurs français à la sortie des écoles car je ne suis qu'en première année, mais quand je vois certaines personnes qui sont là en pensant qu'ils allaient faire du MSN et autres choses du genre j'ai un peu peur ... Mais bon, d'après les dires des professeurs, après un stage en entreprise les mentalités changent beaucoup et pas mal de "je-m'en-foutiste" changent leur façon de voir l'informatique.

    Sinon au sujet des cours, j'ai remarqué que les cours/TD étaient beaucoup mieux enseignés quand c'était des jeunes enseignant-chercheur. Je comprend pas qu'on ne dise pas aux professeurs ayant atteint un certains âge qu'il faut savoir se renouveler. Je sais pas mais ils sont dans le domaine de l'informatique, ils sont passé par les bancs de l'école, ils ont bien du voir que le domaine est un domaine qui change régulièrement et qu'il faut savoir apprendre ce qu'il se fait au jour le jour.

    C'est bien vrai... mais tellement loin de la réalité !! Je serais intéressé de voir combien d'école d'ingé propose le paradigme fonctionnel. (ça doit tendre vers zéro à tout les coups).
    Malheureusement je pense que tu as raison. Je regrette tellement de ne pas avoir d'UV qui enseigne le paradigme fonctionnel. Bon je dis ça mais on la chance d'avoir une passionné de logique des prédicats et on a une UV sur le Prolog, c'est un vent de fraicheur que d'apprendre à faire autre chose que ce que l'on sait déjà faire. Surtout que d'après un amis qui est en prépa, il a eu des cours d'OCaml!

  17. #17
    Membre chevronné
    (oui en prépa y'a de l'OCaml).

    Sinon moi j'ai envie de dire... autodidacte ftw !
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  18. #18
    Membre chevronné
    Citation Envoyé par Aladore Voir le message
    D'après [URL="http://www.developpez.net/forums/d959731-3/c-cpp/cpp/embarque-c-cpp/#post5409001"]Pourquoi ? Est-ce qu'ils sont vraiment meilleur que ça en comparaison des ingénieurs français ?
    J'en ai un là, il arrive sur un projet avec 3 mois dans les dents, il attaque une methodologie qu'il a jamais vu. On a fini le projet avec 2 mois d'avance, son code est d'une beauté sans nom avec de la doc. Tu lui dis regarde X ou Y pour comparer, c'ets fait dans la semaine. Ce mec sort juste de sa fac allemande.

    A coté de ça je ne compte plus les stagiaires ENSIMAG 3e année incapable d'aligné 2 lignes de C++ correct (sans parler des trucs vaudou dont j'ai l'habitude). Les grandes écoles, n'en parlons même pas mais la c'ets normal, c'ets des écoles généraliste à visées managériales

  19. #19
    Membre expérimenté
    C'est étrange de voir que si peu d'école ne font pas apprendre le C++ bien que ceux qui le font apprendre le font mal. Et un problème principal, je pense, du moins pour les français qui ne parle pas anglais sont les supports d'apprentissage... un livre anglosaxon et un livre français sur le même theme du c++... il n'y a pas photo l'anglais est beaucoup moins tourne en rond et ne raconte pas ça vie avant d'aborder les choses importantes. Ces ouvrage français bien sont rares et ceux qui le sont ne sont pas les meilleurs.
    Homer J. Simpson


  20. #20
    Membre chevronné
    Tu sais pas trouvé les perles rares françaises c'est tout .


    =>[]
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

###raw>template_hook.ano_emploi###