Développement informatique
Notions clés
Que fait un développeur?
Il écrit du code.
A quoi sert ce code?
- Exécuter une routine
"Ajouter cet utilisateur à la base de données" - Configurer un outil
"Ce site doit être redéployé tous les jours à 8h" - Décrire une interface
"Un bouton est situé à côté de cette image" - ...
Exemple: code erlang
Exemple: Javascript
Exemple: code Java
Différents Langages
Tout code est écrit en utilisant un langage.
Un langage sera plus ou moins adapté, à un besoin donné.
On peut les classer selon divers critères
- Bas niveau, Haut niveau
- Nature
- Paradigmes de développement
- Son mode d'éxecution
- ...
Langage: Complexité
"Un langage de programmation est dit de bas niveau quand il ne fournit que peu d'abstraction par rapport au jeu d'instructions du processeur de la machine." - Wikipédia
Un langage vous laisse plus ou moins gérer les instructions système.
Exemples
L'assembleur est de très bas niveau: tout doit être géré manuellement
Le C est considéré bas niveau car la gestion de la mémoire n'est pas automatique
Python est de plus haut niveau
Attention: Tout est relatif, tout langage est plus ou moins "abstrait". Il est plus simple de les comparer entre eux: C++ est de plus haut niveau que C.
Langage: Nature
- Langage de programmation (C, Java, ...)
- Langage de requêtage (SQL, ...)
- Langage de balisage (HTML, ...)
- Langage de définition de données (JSON, ...)
Les langages de programmation sont généralement "Turing Complete".
Cette notion est souvent considérée comme la définition d'un langage de programmation.
Langage: Paradigmes
Un langage impose une manière de décrire son code: ces paradigmes sont communs entre différents langages, ce qui permet de les classer par famille.
- Impératif: une simple séquence d'instruction (C, ...)
- Objet: On décrit le code via des représentations plus naturelles. Par exemple, un objet Voiture peut démarrer et accélérer. (Java, ...)
- Fonctionnel: basé sur l'utilisation de fonctions, dans un sens mathématique une entrée donne une sortie. (Haskell, ...)
Attention:
- les descriptions ici sont très vulgarisées
- Certains langage font partie de plusieurs famille à la fois. Scala par exemple est Objet et fonctionnel.
Langage: Exécution
On distingue principalement les langages interprétés et les langages compilés
- Interprété: Exécuté directement par un interpréteur (Ex: Python)
- Compilé: Le code est d'abord converti dans une version binaire, que l'on peut ensuite exécuter (Ex: C)
Un avantage de la compilation: Détection plus rapide de bugs. (Avant l'exécution)
On peut également distinguer l'utilisation d'une machine virtuelle: c'est un socle d'exécution intermédiaire. L'avantage étant la portabilité notamment. Ex: Java
Un cas spécial: le web
La programmation web, c'est l'écriture de code interprété par un navigateur web.
Trois langages sont utilisés: HTML, CSS et Javascript.
Ce sont les seuls langages supportés par les navigateurs!
HTML
CSS
Javascript
Sert à décrire les interfaces
Sert à appliquer du style (couleurs etc.)
programmation, dynamique
Outillage
On n'utilise que très rarement un langage de manière brute!
L'utilisation de framework et librairies est commune.
Librairie: un bout de code déjà prêt, que l'on utilise pour éviter de refaire des choses déjà faite. Par exemple, il y a des librairies pour faire du traitement d'image, pour savoir lire un ".doc" ou encore pour avoir des composants graphiques prêt à l'utilisation.
Framework: Similaire à une librairie, mais accompagne et structure l'ensemble du projet. Une base de code est souvent basée sur un framework, qui peut être assimilé à un sur-ensemble d'un langage qui permet de viser un objectif plus précis.
Exemples: AngularJS aide à créer un site, Nodejs aide à créer un backend, le framework Android permet de créer des applications Android, etc.
C'est tout pour l'instant!
Questions: olivier@freelancerepublik.com
Bases - dev informatique
By Gonthier Olivier
Bases - dev informatique
- 1,768