Avantages et inconvénients du langage machine
Le but de tout langage de programmation est de transformer un ordinateur d'un presse-papiers électronique coûteux en un périphérique utile de traitement et de stockage de données. Choisir un langage pour accomplir cette tâche est un compromis entre efficacité et facilité d'utilisation. Le langage machine représente les extrêmes du spectre pour ces deux facteurs.
Langage machine
Le langage machine produit le seul ensemble d'instructions qu'un ordinateur comprend sans traducteur. Les ordinateurs parviennent à accomplir la reproduction audio et vidéo, le traitement et le stockage de données, la communication Internet et toutes les autres tâches spécialisées en répondant à un ensemble d'instructions qui ne reconnaît que des uns et des zéros. Écrire des centaines de lignes de code composées de uns et de zéros est un processus exigeant et fastidieux qui explique la popularité des langages de niveau supérieur tels que C et Java.
Avantages initiaux
Le premier ordinateur personnel IBM était équipé de 512 kilooctets de mémoire vive et d'un lecteur de disquette de 360 kilooctets. Après le chargement du système d'exploitation en mémoire depuis le lecteur de disquette, les programmes étaient chargés dans l'espace mémoire restant, laissant une très petite zone de RAM, souvent moins de 100 kilooctets, pour que le programme actif traite les données. Pendant cette période, la préoccupation principale d'un programmeur était un code léger et efficace. Les outils de programmation de choix sur ces premiers ordinateurs étaient généralement le langage machine, qui peut être considérablement plus petit qu'une version écrite en BASIC ou C. C'était aussi un peu plus facile à utiliser que son descendant, le langage assembleur.
Dépendance à la plateforme
Le langage machine s'adresse directement au matériel de l'ordinateur, donnant au programmeur un contrôle total sur chaque aspect de l'exécution d'un programme. L'inconvénient de cette approche est que le programmeur doit connaître l'architecture de chaque jeu de puces avant de pouvoir écrire un code efficace. Lorsqu'un composant tel qu'une carte vidéo ou un contrôleur de disque est changé, par exemple, le code en langage machine doit être mis à jour pour reconnaître et adresser le nouveau périphérique.
Langages de haut niveau
Les avantages de vitesse et de faible empreinte mémoire du langage machine sont de plus en plus l'emportés par la difficulté d'écrire des instructions au niveau puce en code binaire. Des gigaoctets de RAM et des téraoctets de stockage disponible ont éliminé l'exigence de code léger et efficace dans les ordinateurs personnels modernes. Les demandes supplémentaires de mémoire et de stockage faites par les programmes écrits dans des langages de niveau supérieur tels que C et Java ne sont plus un facteur lors du choix d'une plateforme de développement. La facilité d'utilisation et les préoccupations de maintenance future du programme prennent la place de la vitesse et de l'efficacité dans la plupart des projets logiciels modernes.
