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

Made with Slides.com