Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Python 3
  3. Clés théoriques
Extrait - Python 3 Les fondamentaux du langage (4e édition)
Extraits du livre
Python 3 Les fondamentaux du langage (4e édition)
4 avis
Revenir à la page d'achat du livre

Clés théoriques

Petite histoire des langages informatiques

1. Informatique théorique

Pour comprendre l’évolution de l’histoire de l’informatique, il faut connaître les deux axes de recherche de l’informatique théorique : la traduction du langage naturel en langage formel, compréhensible par une machine et la définition de la sémantique des langages de programmation.

Le premier axe est de loin le plus évident. Il s’agit de créer un langage informatique qui soit un langage formel faisant abstraction de la sémantique et qui traite les données de façon abstraite, définissant les règles mathématiques pouvant leur être appliquées de manière à les rendre utilisables par la machine. Le langage formel permet ainsi au rédacteur d’un code source (développeur) de décrire une série d’instructions totalement abstraites visant à réaliser un but précis, que la machine ne connaît pas, mais qui a un sens pour le développeur.

Le second axe consiste à donner aux programmes informatiques (signifiants) un lien avec un objet mathématique (signifié). On peut citer un exemple avec le patron de conception nommé décorateur qui correspond à ce que l’on appelle composition en mathématiques. Un programme peut ainsi s’assimiler à un transformateur de propriétés qui peut s’exprimer en ces termes : « Si une précondition est respectée, la postcondition le sera également. ».

L’ouvrage informatique faisant référence dans le domaine...

Typologie des langages de programmation

1. Paradigmes

a. Définition

Un des discriminants les plus essentiels entre les langages de programmation est le ou les paradigmes qu’il implémente.

Un paradigme est une représentation à travers un modèle théorique cohérent d’une vision particulière du monde.

Autrement dit, un paradigme au sens informatique du terme est un ensemble de règles grammaticales et d’outils permettant à un développeur de décrire des algorithmes. Cet ensemble doit être cohérent et permettre de répondre à une vision particulière de la manière de développer.

Un paradigme est un modèle de programmation et détermine donc la formulation des algorithmes et, par conséquent, la vue qu’a le développeur de l’exécution de son programme, ainsi que l’organisation du code source. En poussant ce raisonnement jusqu’à son extrémité, on peut dire que le choix des paradigmes d’un langage de programmation détermine la manière de penser, de réfléchir d’un développeur, et, par conséquent, la manière de modéliser les problématiques rencontrées.

Le terme "paradigme de programmation" n’a pas de sens. Il faut utiliser "paradigme" ou "modèle de programmation".

Certains langages de programmation sont conçus pour supporter un paradigme particulier. Ainsi C, Fortran, COBOL et Pascal implémentent le paradigme impératif ; Eiffel, Java et Smalltalk implémentent le paradigme objet ; Lisp, Haskell, Caml...

Python et le reste du monde

1. Positionnement stratégique du langage Python

a. Segments de marchés

Python se positionne sur quasiment tous les segments : de la programmation système à la programmation web en passant par la programmation de logiciels avec interface graphique, les jeux, le réseau, le calcul scientifique, le Big Data ou l’embarqué.

Dans des contextes où d’autres solutions sont préférées, il reste cependant une solution de prototypage appréciée, par exemple avec la programmation pour mobile.

b. Niveau de complexité

Python présente plusieurs visages. Pour le débutant, il permet d’arriver rapidement à produire du code simple et fonctionnel. Pour ceux qui viennent d’autres horizons, il permet une prise en main rapide et une ouverture vers d’autres pratiques.

Beaucoup d’entre eux sont agréablement surpris par la concision du langage et son efficacité et arrivent souvent à produire un résultat rapide en s’appuyant sur des connaissances héritées de la pratique d’autres langages et en les adaptant à Python.

Pour ceux qui maîtrisent bien la base du langage, il permet d’aller très loin en offrant une grande modularité, une grande palette fonctionnelle, et il sait rester simple même pour gérer des problématiques très complexes, en les encapsulant pour offrir au développeur une API concise mais complète.

La maîtrise de la complexité est donc un axe essentiel pour réussir à appréhender progressivement un langage et à découvrir peu à...