Programmation informatique

Infos
La programmation dans le domaine informatique est l'ensemble des activités qui permettent l'écriture des programmes informatiques. C'est une étape importante de la conception de logiciel (voire de matériel, cf. VHDL). Pour écrire le résultat de cette activité, on utilise un langage de programmation. La programmation représente usuellement le codage, c’est-à-dire la rédaction du code source d'un logiciel. On utilise plutôt le terme développement pour dénote
Programmation informatique

La programmation dans le domaine informatique est l'ensemble des activités qui permettent l'écriture des programmes informatiques. C'est une étape importante de la conception de logiciel (voire de matériel, cf. VHDL). Pour écrire le résultat de cette activité, on utilise un langage de programmation. La programmation représente usuellement le codage, c’est-à-dire la rédaction du code source d'un logiciel. On utilise plutôt le terme développement pour dénoter l'ensemble des activités lié à la création d'un logiciel.

Une brève histoire de la programmation

La première machine programmable (c’est-à-dire machine dont les possibilités changent quand on modifie son "programme") est probablement le métier à tisser de Jacquard, qui a été réalisé en 1801. La machine utilisait une suite de cartons perforés. Les trous indiquaient le motif que le métier suivait pour réaliser un tissage ; avec des cartes différentes le métier produisait des tissages différents. Cette innovation a été ensuite améliorée par Herman Hollerith d'IBM pour le développement de la fameuse carte perforée d'IBM. Les premiers programmes d'ordinateurs étaient réalisés avec un fer à souder et un grand nombre de tubes à vide (plus tard, des transistors). Les programmes devenant plus complexes, cela est devenu presque impossible, parce qu'une seule erreur rendait le programme entier inutilisable. Avec les progrès des supports de données, il devint possible de charger le programme à partir de cartes perforées, contenant la liste des instructions en code binaire spécifique à un type d'ordinateur particulier. La puissance des ordinateurs augmentant, on les utilisa pour faire les programmes, les programmeurs préfèrant naturellement rédiger du texte plutôt que des suites de 0 et de 1, à charge pour l'ordinateur d'en faire la traduction lui-même. Avec le temps, de nouveaux langages de programmation sont apparus, faisant de plus en plus abstraction du matériel sur lequel devaient tourner les programmes. Ceci apporte plusieurs facteurs de gains : ces langages sont plus faciles à apprendre, un programmeur peut produire du code plus rapidement, et les programmes produits peuvent tourner sur différents types de machines.

La fin des programmeurs ?

De tous temps, on a prédit « la fin des programmeurs ». Dans les années 60, les langages symboliques comme AUTO-CODE, Cobol et Fortran ont en effet mis fin - en grande partie - à la programmation de bas niveau tel que l'assembleur. Il semblait alors clair que n'importe qui était capable d'écrire du code du type multiply MONTANT-HT by TAUX-TVA giving MONTANT-TAXES. add MONTANT-HT, MONTANT-TAXES giving MONTANT-TTC. ou RDELTA = SQRT(B
-2 - 4
-A
-C) X1 = (-B + RDELTA) / (2
-A) plutôt que des dizaines de lignes cryptiques comme movl %esp, %ebp subl $24, %esp flds 12(%ebp) fmuls 12(%ebp) flds 8(%ebp) flds .LC0 fmulp %st, %st(1) fmuls 16(%ebp) fsubrp %st, %st(1) fstpl (%esp) call sqrt fstps -4(%ebp) flds -4(%ebp) fsubs 12(%ebp) flds 8(%ebp) fadd %st(0), %st fdivrp %st, %st(1) Pourtant il a vite fallu se rendre compte que la programmation ne se limitait pas au codage, et que la conception d'applications était un vrai métier qui ne s'improvise pas. Dans les années 80, la micro-informatique a souvent conduit à une informatisation sauvage des entreprises, dont le service informatique débordé n'arrivait pas à satisfaire les demandes (qui ne correspondaient d'ailleurs pas forcément aux vrais besoins des utilisateurs finaux). D'où la réalisation d'applications bricolées par des stagiaires « petit génie » en Basic et autres macros de tableurs, répondant à un besoin ponctuel, mais créant de fait un système d'information parallèle non maintenu. Dans cette catégorie, on peut également partiellement ranger les applications développées avec des L4G (langages de 4 génération des années 80) par des utilisateurs non formés. Il est évident que ce type d'outil (dont ACCESS est une réincarnation) permet à un utilisateur non formé de réaliser de petites applications qu'il n'aurait pas entreprises autrement, et à un utilisateur compétent de développer très rapidement d’importantes applications, mais elles n'ont pas le pouvoir magique de faire l'analyse et la conception automatiquement dans les mains d'un utilisateur novice.

Pratiques

-Algorithmique
-Gestion de versions
-Optimisation du code
-Programmation système
-Refactoring
-Test unitaire
-Test d'intégration

Techniques de programmation

-Programmation impérative
-Programmation structurée
-Programmation orientée objet
-Programmation orientée prototype
-Programmation par contrat
-Programmation déclarative
-Programmation fonctionnelle
-Programmation logique
-Programmation par contraintes
-Programmation orientée composant
-Programmation orientée aspect
-Programmation concurrente
-Programmation procédurale
-Programmation par intention

Voir aussi

===
Sujets connexes
Algorithmique   Assembleur   Carte perforée   Chronologie des langages de programmation   Code source   Conception de logiciel   Développement de logiciel   Forme de Backus-Naur   Fortran   Gestion de versions   Informatique   International Business Machines Corporation   Jacquard   Langage de programmation   Métier à tisser   Paradigme (programmation)   Programmation concurrente   Programmation déclarative   Programmation fonctionnelle   Programmation impérative   Programmation logique   Programmation orientée aspect   Programmation orientée composant   Programmation orientée objet   Programmation orientée prototype   Programmation par contraintes   Programmation par contrat   Programmation par intention   Programmation procédurale   Programmation structurée   Programmation système   Programme informatique   Test d'intégration   Test unitaire   Transistor   Very High Speed Integrated Circuit Hardware Description Language  
#
Accident de Beaune   Amélie Mauresmo   Anisocytose   C3H6O   CA Paris   Carole Richert   Catherinettes   Chaleur massique   Championnat de Tunisie de football D2   Classement mondial des entreprises leader par secteur   Col du Bonhomme (Vosges)   De viris illustribus (Lhomond)   Dolcett   EGP  
^