Feed on
Posts
Comments
Article en preparation:

surprise...

(x%)

Depuis que j’ai demissionne de actant il y a deux mois, je regarde un peu a droite a gauche les offres d’emploies qui pourraient me plaire et quelques trucs m’ont saute aux yeux depuis ma derniere recherche de boulot il y a 3 ans et demi.

Clairement, c’est une grave erreur de ne pas suivre l’evolution du marche pendant si longtemps. Je me suis jure de regarder au moins annuellement comment le marche evolue car les conclusions que j’en ai tire ne sont pas tres joyeuses.

Tout d’abord, il ne faut pas se voiler la face, les boulots de programmeurs C++ se sont considerablement rarifies au benefice du C#. Ce qui me laisse a penser que ce que l’on a pu assister avec la disparission des boulots en Fortran, Delphi, COBOL, … est en train de se produire en ce moment meme avec le C++.
Le pire est que je ne pense pas une seule seconde que C++0X va resoudre la situation, je pense au contraire que cela va l’aggraver pour les programmeurs C++ car il y a fort a parier que les points forts de C# resteront intouches (superbe integration aux technologies Windows (+.NET) avec en prime une liste de bibliotheque giganteste, manipulation du GUI d’une simplicite enfantine, facile a apprendre, rapidite de development…). Ce qui veut dire que C++0X n’aura un effet que sur les projets desirant rester en C++ au lieu de migreer en C#, forcant les programmeurs C++ a apprendre les nouvelles specifications de C++0X au risque de faire comme les programmeurs C n’ayant pas appris le ++ a la fin.

Programmeurs pur C++ vous aurez ete prevenu, vous etes desormais a inscrire sur la liste d’espece protegees en voie de disaparission, la transition risque d’etre rude.

En extrapolant un peu, le futur pour developpeur pur et dur n’est pas tres glorieux. S’il faut 15-20 ans pour qu’un language disparaisse (le C++ commencait a prendre de l’ampleur lorsque je suis entre dans le monde du travail et il ne lui reste probablement pas plus de 5 ans pour la masse), alors faut apprendre & maitriser environ 3 languages au minimum pendant sa periode professionnelle. A l’epoque de mes etudes, meme si j’ai ete forme a coup de COBOL a l’universite, j’ai a force de volonte appris le C++ de moi meme. Et meme si c’etait un excelent entrainement, j’etais jeune et je me vois mal remettre ca a 40 ans. Sans compter que chaque annees des jeunes “qui n’en veulent” sortent des ecoles avec la meme passion dans le C# que moi dans le C++. Ca va poser probleme.

La deuxieme chose qui m’a choque, c’est la generalisation des tests d’aptitudes en C++ pour postuler dans plusieurs grosses banques. Jusque la, y’a rien de vraiment anormal, mais la ou le bas blaisse c’est la nature des tests. Je viens d’en finir un aujourd’hui meme (IKM – http://www.ikmnet.com) et si certes j’ai ete note 99/100 (ce qui veut dire que 99% des candidats ont fait moins bien que moi, la classe), il n’en reste pas moins que c’est un TRES mauvais teste pour juger des aptitudes d’un bon programmeur C++.
Il y est aborde les stream (sur Windows, je ne connais pas un programmeur C++ digne de ce nom qui les utilisent encore), les templates de facon tellement superficielles que c’est a ce demander ce qu’on teste a part la syntaxe dont c’est le boulot du compilo de nous aider et le pire est que les questions abordent des points obscures du language que les bons programmeur C++ ont vite fait de ne pas s’attarder dessus pour des raisons aussi importantes que la maintenance/lisibilite du programme, et du coup on oublie. Puis inutile de preciser que les patterns et constructs qui font qu’on produit du bon code ne sont pas abordes. Clairement on a du mouron a se faire pour l’avenir.

12 Responses to “Le marche de l’emploi pour un programmeur C++ et reflexions sur l’avenir”

  1. on 08 Oct 2010 at 18:29 Vbseb

    Concernant le déclin du C++ face au C# tu parles en général ou uniquement dans le développement d’applications ?

    Car concernant le développement de jeux, les moteurs sont toujours fait en C++ il me semble (ou alors j’ai manqué un truc.

  2. on 08 Oct 2010 at 19:20 Jeremy Chatelaine

    Marrant, j’ai eu une discussion avec Whirly a ce sujet hier. On est plus ou moins du meme avis, ca va migrer a un moment ou un autre.
    Seule les grosses grosses productions qui poussent les becanes vont rester plus longtemps en c++ (et encore les joueurs suivent plus, du coup y’a du CPU en plus).

  3. on 08 Oct 2010 at 19:42 Vbseb

    Reste à voir les performance que peut apporter le C# en terme de calcul mais si tout est prévu pour effectivement on peut s’attendre à une migration de ce genre.

  4. on 17 Oct 2010 at 18:52 Gaylord

    Le C# est forcément plus lent vu que ce n’est pas du code natif mais un langage intermédiaire. Après pour savoir de combien, faut tester.
    Il faut aussi prendre en compte que tous les jeux ne sont pas tous des gouffres en puissance de calcul.

  5. on 17 Oct 2010 at 19:50 Jeremy Chatelaine

    Ha ben ca alors un Gaylord, ca faisait un bail, comment ce se passe par chez toi? Drop moi un email a l’occasion, ca me ferait grand plaisir d’avoir de tes nouvelles.

    Le C# est en effet plus lent, bien que comme tu le fasses remarquer si justement: 1. faut mesurer (car des fois c’est pas flagrant) et 2. pour les jeux sans grandes ambitions (la majorite) ca suffit largement.

    Ce qui fait l’atout du C# par rapport au C++, c’est surtout sa courbe d’apprentissage bien plus rapide, la productivite et l’integration aux technologies Windows avec une librairie pour presque tout.

    D’apres mes souvenirs, c’est Dark Earth l’un des tout derniers jeux qui fut ecrit completement en ASM. A l’epoque, on disait que le C/C++ etait trop lent :) – Honte a moi, jamais eu l’occasion de tester ce jeu!

  6. on 21 Oct 2010 at 13:01 skaven

    Ce n’est pas trop le langage qui me fait peur mais tout le pipeline de production, de test, de déploiement.
    Objective-C s’apprends en 1J ou 2. Maitriser tout le pipeline avec xcode, bien naviguer dans la documentation, connaitre appkit, etc. ca prends énormément de temps.
    Idem pour c# et Java.
    Alors, la communauté Java est un peu attentiste à cause du manque de nouveautés des dernières années. Mais il y a encore beaucoup de projets en dev ou en maintenance en java (plus qu’en c++).
    C# est très bien, mais limité aux plateformes Microsoft. Quand on fait un développement vidéoludique, c’est sympa d’essayer de rendre son code multiplateforme. Ca n’empêche pas certaines parties d’être faites avec ce langage comme les outils.
    C++ va devenir comme le C ou l’assembleur. Un outil pratique dans certains cas mais dont il vaut mieux s’éloigner.
    Dans le JV, la proportion de developpeurs utilisant le C++ par rapport à ceux utilisant un langage plus haut niveau diminue.
    En dehors du JV, les développeurs C++ deviennent très très rares dans mon coin de Bretagne.
    Autre constatation, avec la crise et le manque de visibilité, les projets deviennent de plus en plus courts (plus de petits projets, certains vivent, d’autres meurent). Un langage comme le C++ ne colle pas avec ce genre de développement. Il faut de l’agilité et du résultat rapidement. Si le projet marche mais qu’il a un soucis de performance, une ralonge budgettaire sera demandée.
    Mes conseils: apprendre le C# et le java.

  7. on 28 Oct 2010 at 15:00 Jean-Claude

    Salut,

    Je pense que dans le JV le C++ a encore un bel avenir devant soit. Par exemple, je ne vois pas les nouvelles générations de console qui sortirons bientôt utiliser autre chose que le C++. Dans le JV mobile, le C++ vient juste d’arriver (Iphone, Android, Bada…) sauf chez Microsoft ou il vient juste d’être remplacé par C#. N’oubliez pas que C# est un langage Microsoft et que pour cette simple raison, les autres acteurs du JV (Sony, Nintendo, Apple,…) ne vont pas l’intégrer dans leur plateforme de développement.

    JC

  8. on 18 Nov 2010 at 4:31 Jeremy Chatelaine

    Coucou JC,

    Possible que le jeu video devienne une niche pour les programmeurs C++ restants, et cela risque de donner des reconversion bien difficiles, car l’industrie du jeu video a tout de meme du plomb dans l’aile.
    Ca peut vouloir dire chomage ou/et relocalisation en cas de fermeture de studio car y’aurait pas assez de C++ autour apres. C’est dur a dire, mais ca a des odeurs de deja vue avec d’autres metiers.

  9. on 02 Dec 2010 at 18:07 Christophe K

    Perso, j’ai déjà prévu ma reconversion en coach sportif ou cuisiner. Il y aura toujours besoin de manger, et ensuite de perdre du poids! Avenir assuré :)

  10. on 11 Dec 2010 at 22:35 Jeremy Chatelaine

    Lol Christophe

  11. on 11 Nov 2013 at 10:44 Patrick L.

    Je fais du déterrage de vieux posts….

    Intéressante, cette analyse datant de 2010. Avec l’invasion des smartphones, l’arrivée d’autres acteurs sur le marché des OS qui rendent l’usage de C# moins évident, l’informatique embarquée, les objets communiquant… Peut-on encore considérer que le C++ est toujours sur la pente descendante Jérémy ?

    Patrick

  12. on 16 Nov 2013 at 21:11 Jeremy Chatelaine

    Salut Patrick

    Pas de mal pour le deterrage. Surtout sur ce genre de post qui se pose des questions sur l’avenir (devenue le present).

    Tout a fait d’accord, ici, le C# s’est reconverti, la demande s’axe plus sur le .NET en tant que technologie web. On parle de ASP.NET ou tu fais du C#, WPF…

    Le C++ est plus que sur la pente descendante, je vois plus de nouveau development en C++ (sauf un peu pour les hardware embarques), just pour de la maintenance, et sous Windows, t’oublie. C’est mort malheureusement.

    Ce que je vois c’est la grosse dominance du Java (je sais pas si c’est specific a la Suisse), mais c’est clairement le cas. Moi qui essaye d’eviter a mort le JAVA, ca m’aide pas trop :)

    Sinon, l’avenir se tourne resolument vers le development web. Y’a, dans l’ordre, grosso modo, de la demande du java, php/C#, ruby on rails.

    Puis y’a le natif IOS (pourquoi pas faire du c++ au lieu de l’objectif C ffs!), bref, le bouleversement technologique n’est pas fini!

    Merci encore du commentaire.

Trackback URI | Comments RSS

Laissez un message