L'assembleur est-il essentiel pour coder ?

Le problème exposé dans ce sujet a été résolu.

Bonjour, Au cours de mes discussions passionné sur Twitter, j'ai pu discuter avec une personne qui prétendait que ceux qui ne connaissaient pas l'assembleur ne peuvent pas se considérer comme "développeur" même amateur.

Je trouve cette affirmation fausse car, en 2016, l'assembleur n'est pas utile dans une multitude de domaines excepté la programmation système, l'électronique… En revanche je trouve qu'il est utile mais pas forcément nécessaire de comprendre le fonctionnement logiciel d'un système d'exploitation.

Et vous quel est votre point de vue ?

+0 -0

C'est en effet une connerie. Ce qui est important quand tu es programmeur, c'est je pense le fait de comprendre la couche en dessous et au dessus de soi. Cela signifie que ceux qui ont vraiment besoin de connaître l'assembleur (et encore, pas par cœur) ce sont ceux qui font du C bas niveau type système embarqué, développement de pilotes de périphériques ou de systèmes d'exploitation.

Si tu développes une application système en C ou C++, tu devras connaître le fonctionnement de ton OS et son API plus en détail que les généralités (et donc potentiellement pouvoir y contribuer ou lire du code directement). Si tu fais du Java il faut comprendre son bytecode un minimum et comment est fait la machine virtuelle en dessous. Pareil pour Python ou Perl par exemple.

Si tu fais du web, le back-end doit savoir communiquer avec le front-end et inversement et donc connaître l'autre un minimum. Etc.

L'assembleur n'apporte plus grand chose, honnêtement plus grand monde ne sait en faire de manière utile, ce sont les développeurs très bas niveaux qui en utilisent et encore de plus en plus de C est utilisé.

Par contre, ce que tout programmeur doit savoir réside dans le fait qu'un ordinateur n'est pas magique, que sa mémoire et sa puissance de calculs ne sont pas infinis (même si souvent assez confortables pour ne pas trop se poser de question). Mais pas besoin d'assembleur pour comprendre cela.

+30 -0

Ahahahahahah … lol.

PS: C'est totalement ridicule comme affirmation. Oublie ce type qui se prétend développeur …

+6 -0

Hello! :)

Bonjour, Au cours de mes discussions passionné sur Twitter, j'ai pu discuter avec une personne qui prétendait que ceux qui ne connaissaient pas l'assembleur ne peuvent pas se considérer comme "développeur" même amateur.

Même moi qui ai été fasciné par l'assembleur fut un temps, je peux dire que la personne qui t'a dit ça manquait un peu d'ouverture d'esprit à mon goût.

C'est comme si tu disais que pour être un excellent chef cuisinier, il fallait s'y connaître en chimie moléculaire.

Bon, je ne suis pas cuisinier, mais je doute fortement que les grands chefs s'embêtent à se référer au tableau périodique des éléments quand ils font une recette.

Car un gâteau n'est ni plus ni moins qu'un amas d'atomes, mais qu'est-ce qu'on s'en fiche ?

Ici c'est pareil, un programme informatique n'est ni plus ni moins qu'un amas de bits (oui !), mais qu'est-ce qu'on s'en fiche ?

Cela ne veut pas dire, bien sûr, que "l'assembleur" en soit n'est pas intéressant. En effet, cela te permet de comprendre comment ça marche "sous le capot" pour peu que tu sois curieux, et résoudre des crackmes peut te permettre d'améliorer d'une autre façon tes compétences de développeur.

Je suis assez mordu (ou du moins je l'ai été) de tout ça. Ainsi, si jamais tu as du temps et de l'envie, je t'invite chaleureusement à lire la série d'articles que j'ai rédigés avec amour pour Zeste de Savoir. :)

Merci pour vos commentaires, finalement il n'y a pas vraiment débat. :p

C'est comme si tu disais que pour être un excellent chef cuisinier, il fallait s'y connaître en chimie moléculaire. Bon, je ne suis pas cuisinier, mais je doute fortement que les grands chefs s'embêtent à se référer au tableau périodique des éléments quand ils font une recette. Car un gâteau n'est ni plus ni moins qu'un amas d'atomes, mais qu'est-ce qu'on s'en fiche ? Ici c'est pareil, un programme informatique n'est ni plus ni moins qu'un amas de bits (oui !), mais qu'est-ce qu'on s'en fiche ?

Ge0

C'est exactement le même exemple que je lui donné. ;)

Je suis assez mordu (ou du moins je l'ai été) de tout ça. Ainsi, si jamais tu as du temps et de l'envie, je t'invite chaleureusement à lire la série d'articles que j'ai rédigés avec amour pour Zeste de Savoir.

Ge0

J'irais y jeter un coup d'œil avec plaisir :)

+0 -0

Salut,

Au cours de mes discussions passionné sur Twitter, j'ai pu discuter avec une personne qui prétendait que ceux qui ne connaissaient pas l'assembleur ne peuvent pas se considérer comme "développeur" même amateur.

the_new_sky

Tu retrouveras un peu partout ce genre de réflexion qui est l'exemple typique du jeu de « celui qui pisse le plus loin » ou « qui a la plus grosse ». Tu as le même phénomène avec les éditeurs de textes sous Linux ou *BSD où certains prétendent que si tu emploies un outils graphique, tu n'es pas un « vrai » développeur, puis d'autres que les « vrais » développeurs doivent utiliser vim (ou emacs, on s'en fout), puis on passe à vi, puis ed (ou ex), puis cat et… après je vois pas ce qu'on peu sortir d'autre. :-°

Bref, se sont des guerres de chapelles inutiles, l'essentiel c'est de faire du bon boulot avec son langage de prédilection (ou son éditeur de texte préféré).

Après, comme cela t'a été dit, l'Assembleur est très intéressant pour comprendre les rouages de ta machine et reste un langage de programmation comme un autre, mais particulièrement rébarbatif et pas spécialement accessible.

+5 -0

@Taurre: N’empêche que t'es pas un vrai programmeur si t'utilises pas Vim.

+4 -0

une personne qui prétendait que ceux qui ne connaissaient pas l'assembleur ne peuvent pas se considérer comme "développeur"

the_new_sky

Je me suis arrêté là. La seule condition pour considérer si t'es développeur ou pas, c'est si t'as un jour développé. Tout le reste c'est de la connerie prétentieuse et toxique.

+5 -0

une personne qui prétendait que ceux qui ne connaissaient pas l'assembleur ne peuvent pas se considérer comme "développeur"

the_new_sky

Je me suis arrêté là. La seule condition pour considérer si t'es développeur ou pas, c'est si t'as un jour développé. Tout le reste c'est de la connerie prétentieuse et toxique.

victor

Après, quand j'étais vraiment jeune. J'avais fait un stage dans un entreprise où un vieux développeur camerounais m'avais dis qu'à la base, il y avait une distinction entre programmeur et développeur. Le programmeur, c'est celui qui code. Le développeur, en plus il construit son projet et le mène à son terme. Il a une certaine polyvalence que n'a pas le programmeur. Bref, dans l'idée on est d'accord.

@Taurre: Tu m'as tué …

+0 -0

Bref, dans l'idée on est d'accord.

ache

Admettons. Je l'ajoute, comme ça dans l'idée on sera vaguement d'accord.

La seule condition pour considérer si t'es programmeur ou pas, c'est si t'as un jour programmé. La seule condition pour considérer si t'es développeur ou pas, c'est si t'as un jour développé.

Mais je t'avoue que ça me fait un peu le même effet que si je disais "Le charcutier charcute" et que quelqu'un venait me dire "Ouais alors pas exactement, globalement je suis assez d'accord mais y'a une distinction parce que le pilote pilote". :D

+0 -0

Pareil pour Python ou Perl par exemple.

Plus précisément, pour Python et Perl la couche en-dessous, c'est pas forcément leur machine virtuelle. Enfin pour Perl en particulier on s'en cogne de sa VM. Par contre des connaissances très appréciables dans ces langages, sont les généralités sur le fonctionnement d'un système d'exploitation (processus, threads, systèmes de fichiers, appels systèmes, etc.), et au minimum un langage système capable de s'interfacer avec (C ou C++ sont les plus classiques).

Mais ça fait partie de la culture, et uniquement de la culture. Ça aide sur certains problèmes, certains projets, mais c'est tout.

Tu aurais dû lui demander, en réponse, quel assembleur tu es censé connaître au juste…

+4 -0

La seule condition pour considérer si t'es programmeur ou pas, c'est si t'as un jour programmé. La seule condition pour considérer si t'es développeur ou pas, c'est si t'as un jour développé.

Mais je t'avoue que ça me fait un peu le même effet que si je disais "Le charcutier charcute" et que quelqu'un venait me dire "Ouais alors pas exactement, globalement je suis assez d'accord mais y'a une distinction parce que le pilote pilote". :D

victor

Je reste d'accord avec les deux affirmations.

Ahah, oui effectivement, je complet ma réponse sinon c'est ridiculement drôle.

En fait, c'est juste que du coup, ici (dans ce sujet) on parlait plus de coder que de développer. Mais je sais même pas s'il existe encore cette distinction quelque part dans le monde.

+0 -0

L’assembleur apporte pas mal de choses

Avec une 20aine d’instructions machine, on doit faire un programme Et pour arriver à cette "prouesse", il faut savoir être méthodique, logique, …

L’assembleur apporte également de la connaissance technique indispensables pour des logiciels demandant un maximum de rapidité (Jeux, par exemple)

La connaissance de l’assembleur sera un énorme plus dans le raisonnement du développeur…

+0 -6

Je suis toujours dubitatif devant ce genre de réponses, près de 6 mois après la dernière, qui n’apporte en soi pas grand chose. Parce que bon, quand on est développeur web, je ne suis pas convaincu que connaitre l’assembleur aide en quoi que ce soit. Je dirai même que ça pousse vers ce qui est, dans ce domaine, de mauvaises pratiques.

Aujourd’hui, il y a tout plein de gens qui font du calcul haute performance, et qui ne descendent pas plus loin que le C. C’est le moment ou jamais de rappeler qu’il existe un langage plutôt haut niveau, bien vieux, et très performant : le Fortran ; et je ne suis pas convaincu qu’apprendre l’assembleur aide à coder correctement en Fortran…

+3 -0
Ce sujet est verrouillé.