L’armée des développeurs ne se limite pas à une différenciation gestion vs temps réel. Même si je m’y intéresse un peu, je connais peu la seconde branche. Pour la première, j’ai fait parti de certains des groupes qui la composent. Et j’ai été surpris par la diversité des profils. Derrière le clavier se cachent des groupes très différents.
Le développeur se distingue d’abord par son langage de prédilection. Ainsi, il existe au moins autant de sections que de langage de programmation. Il faut dire que depuis les années 1950, les langages se sont multipliés. Une véritable tour de Babel.
Le mode d’exécution pour le processeur.
Les langages de bas niveau permettent de créer des programmes performants car proches du chef d’orchestre. Ainsi les programmeurs en Assembleur, en C ou en C++ et se considèrent comme l’élite de l’informatique. Seul problème, leurs programmes ne sont utilisables que sur un type d’ordinateur à moins de repasser par la compilation.
Afin de pallier cette contrainte une deuxième branche apparaît : les développeurs en langages interprétés. Passons le Basic qui comme son nom l’indique est pour les débutants, le PHP, malgré les cassandres, a conquis le web. L’ASP a dû se rabattre chez les fans de Redmond pour des applications de gestion.
Mais les faibles performances des interpréteurs font que ces langages sont raillés, ainsi que leurs utilisateurs . Un intermédiaire s’est proposé, le pré compilé. Les développeurs Java, .Net ou Progress se considèrent comme la crème puis qu’héritant du meilleur des deux mondes.
Les bas niveaux se moquent du manque d’optimisation, les interprétés font remarquer que leurs optimisations ont permis de rattraper ces derniers, en tout cas dans le domaine du web. Pourtant les développeurs du groupe pré-compilé ont gardé les faveurs de l’industrie et restent très demandés.
Une langue … plusieurs cadres.
Pour un même idiome, il est possible d’écrire de nombreuses manières un besoin. On peut utiliser un cadre de travail (framework pour les anglicistes) qui a fait ses preuves pour un type de besoins. Ainsi, en PHP, un développeur Symfony (sites web) ne comprend pas son collègue Laminas (applications métiers).
Dans un autre langage web, Javascript, ce n’est pas quelques cadres populaires mais des dizaines … et autant de catégories de développeurs. Ce langage interprété par les navigateurs est désormais présent sur les serveurs. Apparaît alors pour un même langage un nouveau critère de différenciation des programmeurs.
La plateforme domaine d’exécution : client vs serveur.
À l’origine, les ordinateurs ne s’échangent pas d’informations. Les développeurs créent des programmes exécutés uniquement sur l’ordinateur. On parle de programmes clients. Mais l’évolution a changé la donne.
Des programmes s’exécutent aussi sur des serveurs avant d’être affichés sur la machine du demandeur. On parle de client-serveur. Un serveur pour plusieurs clients permet le partage de l’information. Les applications web en sont une branche particulière.
Ce schisme se ressent chez les développeurs. Front-end et back-end doivent s’entendre malgré leurs différences. De nos jours, pour des raisons de maintenance, de mise à jour, de suivi, de sécurité, … les applications qui tournent localement ont toutes disparu. Même les jeux vidéos, qui nécessitent bien des optimisations, exploitent des services en ligne.
Et bien d’autres schismes
Le travail d’un développeur ne se décline pas uniquement au langage utilisé. Ainsi, il peut se distinguer par le type d’activité de son client. Un ingénieur Airbus doit comprendre les contraintes du domaine aéronautique, même s’il ne manipule que du code. Ainsi, son collègue spécialisé dans l’informatique comptable ne pourra pas le remplacer au pied levé.
N’en déplaise aux puristes, ceux qui manipulent les bases de données (et leurs nombreuses déclinaisons comme les statistiques ou le BigData) sont bien des développeurs. Manipuler un langage de 4ème génération tel que le SQL ou SAS nécessite de la réflexion et répond au besoin d’automatisation des données attendu par le client.
Les spécialistes de l’intelligence artificielle sont aussi des développeurs. Même si leur branche est un peu à part, elle remonte quasiment à l’origine du domaine. Les spécialistes de cette branche pensent naturellement en récursif … un cauchemar pour la plupart des développeurs.
Conclusion
En plus de toutes ces branches, il faut prendre en compte l’évolution qui crée toujours plus de profils de développeurs. Et pour maintenir une ancienne application, les compétences peuvent se faire rare. Même si les techniques sont légions, en connaissant les principes, un bon informaticien arrivera toujours à s’y retrouver, même dans un domaine élitiste.
Tout ça pour dire que si l’armée de développeurs est immense, elle est plus segmentée qu’une armée mexicaine. Et c’est sans compter le comportement parfois anarchiste de ces soldats. Bref, derrière une apparence banale se cachent des êtres qui peuvent être très différents.