OVH Cloud OVH Cloud

Développer en C++ ?

75 réponses
Avatar
lfaj
Bonjour,

Développant en C++ (outils Microsoft sous Windows) depuis de nombreuses
années, je suis actuellement en recherche de poste (ingénieur de
développement) à 41 ans, et j'ai beaucoup de mal à trouver.


Dois-je en cnclure que le développement en C++ est en voie de
disparition (Java semble avoir la cote en ce moment), que je suis "trop
vieux" pour ça (il y a pourtant des développeurs seniors), ou que le
développement informatique est désormais suffisament "offshorisé" pour
limiter les recrutements en région parisienne ?

Merci de vos avis.

10 réponses

Avatar
loufoque

Curieusement, lorsque que je compile Java¹ (ctmetcsdc) , c'est une longue
liste de «.cpp» et de «.hpp» qui défile.


Le code source de la machine virtuelle Java de Sun est librement
disponible ?

Avatar
kanze
loufoque wrote:
(Mais j'avoue que j'ai pu avoir laissé passer beaucoup,
parce que dans les domaines où je travaille, Microsoft n'est
simplement pas présent.)


Je croyais qu'en France ils étaient implantés partout ?


Dans les PMI, d'après ce que j'ai entendu dire, oui. Mais j'ai
beaucoup travaillé en France, sans jamais le rencontrer.

Où je suis actuellement, nos serveurs (sur lesquels je
travaille) était 100% Solaris sur Sparc. Depuis peu, on en migre
certains vers Linux sur PC. Les clients, en revanche, sont sur
Microsoft (bien que depuis très peu pour certains -- on se
servait des fenêtres avant qu'il y avait Windows, et certains
clients ont aussi besoin d'une puissance de calcul qui n'était
pas disponible sur des PC il y a quelques ans).

Dans la passée, j'ai beaucoup travaillé dans la téléphonie -- là
aussi, les systèmes d'exploitation sont prèsque tous sous Unix
(Solaris ou HP/UX), avec Windows seulement pour les postes
d'opérateur.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
kanze
Fabien LE LEZ wrote:
On 16 Jan 2006 13:53:05 +0100, Jean-Marc Bourguet :

[...]


Finalement, j'ai l'impression que .Net est la réponse du
berger Microsoft à la bergère wxWidgets (ou Qt, etc.)


Je crois plutôt que c'est la réaction de Microsoft à
l'interdiction aux extensions de Java. Du peu que j'ai vu, il
semble en tout cas s'inspirer beaucoup du Java. C# est
clairement la réponse de Microsoft à Java ; c'est aussi le
« moteur » de CLI. À mon avis, la possibilité d'utiliser
d'autres langages avec le CLI a été conçu surtout comme un
argument de vente de C# par rapport à Java. Ce qui ne veut pas
dire que c'est sans intérêt technique ; si on considère la
lourdeur de JNI, on est content de voir une autre solution.

N'empèche que comme Jean-Marc, si j'avais à faire de la
programmation .NET, je le ferais surtout en C#, avec du C++
seulement dans les cas particuliers où il s'impose.

Typiquement, si on veut faire une application GUI pour un seul
OS, on la développe sous Windows, car c'est le plus gros
marché.


Aujourd'hui:-). J'ai bien travaillé sur des projets GUI qui ne
marchait que sur Sun. Il y a quinze ans.

Même aujourd'hui, il y a des exceptions -- une utilitaire pour
gérer un parc de machines Unix tournera probablement sous X (et
s'écrira probablement en Tcl-Tk, pour être portable). Et il
reste encore quelques rares applications où le fait que
l'application tourne sur une machine autre que celle où se
trouve l'écran est important -- j'ai connu dans la passée des
applications GUI qui tournait sur une machine sans écran.

(Sous Unix, il est possible pour deux utilisateurs, travaillant
sur deux machines différentes, de travailler dans la même
instance d'emacs. L'emacs tourne sur une machine, mais gère des
fenêtres et le clavier sur les deux machines. Ça peut être
utile parfois dans les revisions de code, ou si on veut
pratiquer le « pair programming ». Autant que je sache, c'est
quelque chose que même les Windows les plus récents ne
supportent pas.)

Mais il est de plus en plus facile, grâce à des bibliothèques
comme wxWidgets, de faire des applications multi-plate-formes,
et donc d'encourager l'utilisation de MacOSX et de Linux.

Pour endiguer le phénomène, Microsoft décide de faire en sorte
que les programmeurs ne sachent faire que de la programmation
Windows. .Net était né.


Je n'en suis pas convaincu. Comme j'ai dis, j'ai plutôt
l'impression que .NET est la réponse Microsoft à Java. Du coup,
ils font tout pour donner l'impression d'ouverture : une
participation très active dans la normalisation, l'encouragement
de l'implémentation d'une plateforme sous de divers Unix, etc.
Java a été une réussite commercielle énorme ; les arguments
d'ouverture et de portabilité y ont joué un rôle important, et
Microsoft cherche à les adopter, ou au moins en donner
l'apparence, dans .NET.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
kanze
loufoque wrote:

Curieusement, lorsque que je compile Java¹ (ctmetcsdc) ,
c'est une longue liste de «.cpp» et de «.hpp» qui défile.


Le code source de la machine virtuelle Java de Sun est
librement disponible ?


Dans le temps, au moins, il l'était. Actuellement, il paraît que
c'est encore le cas, mais sous des licences spéciales, voir
http://java.sun.com/j2se/1.5.0/download.jsp, vers le milieu du
page. (À première vue, les licences ne semblent pas être un
problème tant que tu ne fais que régarer que par curiosité. En
révanche, « Note that in either case (SCSL or JRL), if you
decide to use your project internally for productive use or
distribute your product to others, you must sign a commercial
agreement and meet the Java compatibility requirements. »)

Quand j'avais régardé (vers Java 1.2), si je me souviens bien,
le VM était en C, et non C++. Mais il y avait énormement de C++
dans la bibliothèque -- prèsque toutes les classes AWT
contenaient des méthodes « natives » par exemple, qui sont
écrites en C++.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
Jean-Marc Bourguet
"kanze" writes:

(Sous Unix, il est possible pour deux utilisateurs, travaillant
sur deux machines différentes, de travailler dans la même
instance d'emacs. L'emacs tourne sur une machine, mais gère des
fenêtres et le clavier sur les deux machines. Ça peut être
utile parfois dans les revisions de code, ou si on veut
pratiquer le « pair programming ». Autant que je sache, c'est
quelque chose que même les Windows les plus récents ne
supportent pas.)


Si. Tu mets un serveur X sur chacun des Windows et tu fais tourner
un emacs compile pour utiliser X. Tu peux meme avoir une machine Unix
et un Windows si tu veux :-)

Tu peux aussi utiliser VNC pour ca me semble-t'il.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
Arnaud Meurgues
John Deuf wrote:

C'est comique parce que, quand on écoute les débutants, ils disent
l'inverse : on peut pas trouver de boulot si on a pas au moins 2 ans
d'expérience.


En général, les entreprises demandent « des débutants avec 5 ans
d'expérience ». Ça permet d'avoir un salaire de débutant, mais avec tout
de même de l'expérience.
Je ne pense pas qu'elles en trouvent souvent... :-)

--
Arnaud

Avatar
Fabien LE LEZ
On Tue, 17 Jan 2006 11:14:49 +0100, Arnaud Meurgues
:

En général, les entreprises demandent « des débutants avec 5 ans
d'expérience ».


Ou alors, Bac+5, cinq ans d'expérience professionnelle, moins de 24
ans.

Avatar
David MAREC
D'après Arnaud Meurgues:

John Deuf wrote:

C'est comique parce que, quand on écoute les débutants, ils disent
l'inverse : on peut pas trouver de boulot si on a pas au moins 2 ans
d'expérience.


En général, les entreprises demandent « des débutants avec 5 ans
d'expérience ». Ça permet d'avoir un salaire de débutant, mais avec tout
de même de l'expérience.
Je ne pense pas qu'elles en trouvent souvent... :-)


Non. Alors elle se plaignent,

» on trouve persôôôônnnne,
» les français veulent pas travailler.
» les jeunes sont des fainéants.
» C'est la faute aux 35 heures.

--
«revolution.com, comme ça manque de sueur»
[NO ONE IS INNOCENT]


Avatar
Aurelien Regat-Barrel
On 16 Jan 2006 13:53:05 +0100, Jean-Marc Bourguet :

Finalement, j'ai l'impression que .Net est la réponse du berger
Microsoft à la bergère wxWidgets (ou Qt, etc.)


Je ne crois pas (surtout que les MFC sont plutôt de taille face à
wxWidgets, sous Windows toujours).
Je pense aussi personnellement que .Net est plus dans la logique de
contrer Java (et encore), mais sous Windows avant tout, pour reprendre
la main en quelque sorte. Gagner des parts de marché sur Linux, c'est le
bonus à mon avis.

Pour moi, .Net c'est la réponse à divers problèmes du développement en
général sous Windows. Le grand nombre de technologies qui s'entremêlent
comme elles peuvent à partir de fondations qui datent de MS-DOS
(DDE->OLE->OLE 2->COM->DCOM..., DOS->Win16->Win32->Win64...). Tout ça en
C dans un monde hétéroclite où des programmeurs utilisent avant tout
d'autres langages +/- objet (C++, VB, Delphi,...). Et ça, c'est pour le
développement pur. Pour le développement web c'est pas vraiment mieux il
me semble, l'administration système aussi, ... Un vrai sac de noeuds
issu de plus de 20 ans d'évolution. Rajoutez les problèmes de sécurité
très à la mode, de productivité, de déploiement, etc...

Je sais plus qui a dit qu'on peut toujours ajouter de la complexité dans
un système, jamais l'inverse. Pour moi, Microsoft a donc décidé de batir
un nouveau système, où ce qui change ce n'est pas tellement les
services, mais les fondations. La compatibilité binaire n'est plus un
problème, tous les langages/domaines se mélangent comme on veut.
Et sur ces nouvelles fondations, on refait du neuf avec du vieux, avec
de temps en temps de réelles nouveautés quand même. Sauf que tout est
beaucoup plus cohérent, interopérable, sécurisé, simplifié...
Tu peux coder un generic (~template) dans une assembly (~ dll) en
n'importe quel langage et l'utiliser depuis n'importe quel autre. C'est
tout bête, mais c'est bien agréable.
Le développement GUI, SQL (Server), Web et même l'admin système se font
dans le même environnement. Si tu connais C#, à _priori_ tu peux toucher
à tout ça.
Pour moi, c'est la réelle nouveauté de .Net, sa réelle force. Les web
services machin chose, c'est du marketing.

Typiquement, si on veut faire une application GUI pour un seul OS, on
la développe sous Windows, car c'est le plus gros marché.

Mais il est de plus en plus facile, grâce à des bibliothèques comme
wxWidgets, de faire des applications multi-plate-formes, et donc
d'encourager l'utilisation de MacOSX et de Linux.

Pour endiguer le phénomène, Microsoft décide de faire en sorte que les
programmeurs ne sachent faire que de la programmation Windows. .Net
était né.


Ca fait un peu théorie du complot :-) Surtout que c'est pas à la fac que
le programmeur va apprendre .Net.
Je crois que c'est beaucoup plus simple. MS avait besoin d'offrir une
nouvelle impulsion au développement sous Windows, et de rester celui qui
mène la dance. Je crois que c'est réussi.

--
Aurélien Regat-Barrel

Avatar
Fabien LE LEZ
On Tue, 10 Jan 2006 11:36:35 +0100, "Rémy" :

Les entreprises préfèrent un quasi débutant (deux fois moins cher) même s'il
fait un peu plus de bugs.


Et puis, il y a aussi un petit détail : une entreprise qui a un
employé compétent, va généralement chercher à le garder, sauf accident
(dépôt de bilan ou autre).

Du coup, pour pouvoir employer quelqu'un qui n'est pas un débutant, il
faut soit attendre le dépôt de bilan de son employeur, soit lui offrir
mieux. Par exemple, j'ai une collègue qui est venue travailler chez
nous (en Bretagne) parce qu'elle voulait quitter Paris.