J’ai l’impression que vous avez beaucoup de mal -tous- à admettre que le développement d’aujourd’hui est bien plus simple qu’avant et qu’une petite connaissance de l’assembleur est toujours bonne à prendre…
Je pense que personne ne nie qu’il est plus facile d’écrire un programme complexe aujourd’hui qu’hier. Est-ce un problème ? Non, car plutôt que de se préoccuper de la taille des entiers ou de la gestion fine de la mémoire, on se préoccupe de tester le programme ou de réaliser des fonctionnalités.
Or un logiciel doit avant tout être fiable et apporter des fonctionnalités pour répondre à des besoins. Ce qui est dingue c’est qu’aujourd’hui on peut réaliser des fonctionnalités très complexes dont on ne rêvait même pas il y a 10 ans, avec une fiabilité déconcertante. Et ce n’est pas grâce à une maitrise de l’assembleur qu’on arrive à ce résultat mais justement par l’utilisation de technologies éprouvées qui font de l’abstraction et simplifient le travail pour construire de nouvelles choses. Ces briques élémentaires permettent cela et c’est très bien.
Je n’ai pas connu l’époque "glorieuse" mais il est évident que les "anciens" étaient plus compétents que les dev d’aujourd’hui qui ont tout à disposition et surtout Internet
Je ne suis pas convaincu par cette assertion. Oui il y avait des génies par le passé mais les gens compétents existent toujours en nombre. Sinon on pourrait se demander qui écrit les programmes fiables et riches d’aujourd’hui (un site Web comme Facebook ce n’est pas 3 lignes de HTML copié / collé depuis un autre site).
De même qu’il y avait des mauvais par le passé qui sont toujours là aujourd’hui.
D’ailleurs, je vais te raconter deux choses.
Je pense que tu es un peu trop formaté par ton métier, ta spécialisation. Le seul domaine informatique où la connaissance de l’assembleur peut être requis c’est dans les systèmes embarqués et la conception de systèmes d’exploitation / compilateurs / débogueur. Et encore pas toujours.
Forcément dans ce domaine, ceux qui connaissent l’assembleur sont en général (mais pas toujours) plus compétents car cela signifie très souvent qu’ils font cela par passion et qu’ils apprennent par eux mêmes. En aucun cas cela signifie que l’assembleur les rendra meilleur, mais que c’est un indice que cet individu est bon à l’origine car il a prit le temps de l’apprendre et d’élargir ses compétences. Les mauvais informaticiens sont en général ceux qui ne cherchent pas à apprendre d’autres choses ou de se maintenir à niveau.
Mais notre métier d’informaticien embarqués ne doit pas caché que l’informatique est vaste et que l’immense majorité de nos confrère n’en ont pas besoin de l’assembleur. Pour un développeur Web il sera plus pertinent d’apprendre les rouages internes de PHP ou Django pour maitriser leur développement que de l’assembleur qui n’aura que valeur de culture générale. On a hélas pas le temps de tout apprendre et chacun doit apprendre ce qui est utile à sa zone de travail, soit en général la couche d’au dessus et d’en dessous direct (donc pour un pythonneux, comment fonctionne Python, mais pas l’assembleur !).
Ensuite l’informatique a évolué, ses contraintes et exigences aussi. Dans notre monde, le socle commun à tout informaticien le plus essentiel n’est plus la prog système ou l’assembleur, c’est plutôt la sécurité et le réseaux qui sont des sujets très très vastes et très compliqués pour faire les choses bien. J’espère que tu maitrises les notions de base de cryptographie, les fonctions de hashages, et comment architecturer proprement un programme pour éviter les failles de sécurité évidentes.
Sinon, mon second point est plutôt une anecdote mais qui est je pense révélateur.
Je bosse actuellement chez un concepteur de contrôleurs de compresseurs. Ils ont l’habitude d’utiliser un système temps réel pour leur système à savoir FreeRTOS. Mais si FreeRTOS c’est sympa, cela reste grandement limité. Il faut réinventer beaucoup de choses manuellement. Pour aller plus vite, ils utilisent du Linux maintenant. Car oui, il y a encore quelques mois, ils devaient sur leur FreeRTOS écrire un système de fichier par eux mêmes. Qui ne sera jamais aussi bien optimisé et fiable que ce que Linux propose. Avec Linux on n’a qu’à choisir et hop. On gagne un temps fou, temps qui est indispensable pour réaliser des tests et créer des fonctionnalités ayant une valeur ajoutée.
Bah ici, c’est pareil, pour nombre de développeurs plutôt que de recréer une gestion fine de la mémoire à la main, on laisse Python / Java ou autres le faire. Ça a ses inconvénients c’est sûr, mais cela permet de gagner du temps et de l’allouer à des choses utiles. En tout cas l’assembleur n’apporte plus rien de pertinent d’un point de vue logique et performances. Cela ne vaut plus le coup et seuls ceux qui en ont encore besoin devraient l’apprendre (ou par plaisir).