Les algorithmes
Avant de traduire une solution dans un langage de programmation (= coder), il faut d'abord décrire la solution. Ainsi, avant d'étudier les langages de programmation, il nous faut aborder l'algorithmique.
Cette introduction sera valable pour tous les langages de programmation.
De plus, son étude est très courte et facile à comprendre.
Les langages de programmation
Chaque langage a son domaine de prédilection; sinon, il n'existerait qu'un seul langage qui permettrait de tout faire.
-
C (1970), difficile, le plus rapide (après l'assembleur) => dédié aux programmes du système d'exploitation, des moteurs de base de données et des petits exécutables personnels en ligne de commande, fait "tout" (mais il est "nu", tout doit être codé), permet de créer des fichiers. Il jette les fondements de la programmation procédurale. Requiert un compilateur.
Le C reste la référence, jamais égalé en terme d'exécution et de consommation de la mémoire.
-
C++ (1980), très difficile, reprend intégralement le C, fait "tout" (il est "nu", mais peut utiliser des "objets" => dédié au développement de logiciels à interface graphique), permet de créer des fichiers. Il jette les fondements de la programmation orientée objet. Requiert un compilateur.
Depuis le C++, tous les langages sont orientés objet. Même s'ils supportent, généralement, le codage de manière procédurale (sans objet).
-
Python (1991), très simple, livré avec une flopée de fonctions, permet d'exploiter et de créer des fichiers-textes facilement. Requiert un interprétateur.
Trop simple ! De mauvaises habitudes seront prises. Ce qui se ressentira lors de l'étude des autres langages.
-
PHP (1994), simple, livré avec une flopée de fonctions, (quasi) incontournable sur un serveur web (pour des sites web en relation avec des bases de données), permet de créer des fichiers sur un serveur. Requiert un interprétateur.
-
JAVA (1995), difficile, comme le C++ mais plus sûr (mais aussi plus lent), permet de créer des fichiers sur un serveur. Requiert un compilateur/interprétateur (machine virtuelle).
-
JavaScript (1996), assez simple et incontournable pour obtenir des pages web dynamiques (application web), livré avec des fonctions, permet de gérer la mémoire d'un navigateur-web, mais il ne permet pas de créer des fichiers. Requiert l'activation du moteur JavaScript sur un navigateur web.
Il n'existe donc pas un bon langage. Ils sont tous bons ! Votre choix dépendra de votre objectif (et du temps d'apprentissage et de développement que vous êtes prêt à investir.)
Certains langages sont simples car ils n'imposent pas de déclarer le type d'une variable. Leurs programmes sont alors nécessairement plus lents puisque cette identification de type doit être faite lors de l'exécution par le programme lui-même. Tous les programmes compilés sont plus rapides (que leurs homologues interprétés) car cette identification de type est faite avant la compilation (et donc avant l'exécution) par le programmeur (et non lors de l'exécution par le programme). Compilation = plus de travail pour le programmeur, mais programme plus rapide.
- dont le code source est interprété (scripts, lisibles par un humain)
- dont le code source est compilé
- Mini-cours sur le JavaScript (coté client)
- Mini-cours sur le PHP (coté serveur)
- Mini-cours sur Python (coté serveur)
- Mini-cours sur Java (machine virtuelle) serveur)
- Mini-cours de C (sans interface graphique)
- Mini-cours de C++ (avec interface graphique)
Il existe deux grands types de langages :
Code Interprété
Code compilé
La documentation
Une fois que le programme fonctionne parfaitement, encore faut-il le documenter - souvent en HTML - pour l'utilisateur (guide de l'utilisateur), mais aussi pour le programmeur !
pour l'utilisateur
Cette documentation peut prendre plusieurs formes : tutoriels, manuel et référence
Les tutoriels sont destinés aux utilisateurs débutant.
Un manuel d'utilisation est souvent longue (en octets) que le code source. Pour y accéder, le plus simple est de mettre un lien vers un site web (aide en ligne). L'avantage est que ce manuel peut être corrigé facilement.
Une référence liste toutes les fonctionnalités (pour utilisateurs expérimentés)
pour le développeur
Cette dernière étape est trop souvent négligée. Modifier le programme devient alors plus long (car il faut se le ré-approprier) et accroît le risque de bugs (et, à la limite, la nouvelle version du programme peut contenir plus de bugs que la version précédente !)
Pour faire une bonne documentation du code, il faut la faire comme si on devait
expliquer le code à un autre développeur moins doué que vous. Pour être complète, elle
doit tout expliquer; et, notamment, le pourquoi de chaque
choix ...
Lors de la réalisation de ce travail fastidieux, certains choix initiaux peuvent être remis en cause et le code modifié en conséquence. C'est donc la documentation du code est terminée que le travail du programmeur s'arrête, en attendant la nouvelle version ...
Si les choix initiaux sont bons, que le code est bien structuré et bien documenté, les versions futures seront beaucoup plus faciles à réaliser.
Lire : les types de documentations
La documentation du code peut être aussi écrite dans le code source et ensuite extraite par un logiciel pour créer automatiquement la documentation (HTML). Cette documentation, moins verbeuse, est appelée documentation de référence. L'inconvénient est que le code source devient beaucoup plus long. L'avantage que cette documentation est très facilement mise à jour en cas de modification du code.
Les commentaires ne devraient pas apparaître dans le code source des langages
interprétés. Les fichiers devraient alors être doublés. Une version de
développement (avec les commentaires) et une version la plus allégée possible sur le
serveur de production. Ceci est particulièrement vrai avec le JavaScript (et le
PHP)
Les commentaires dans le code source des langages utilisant un compilateur sont systématiquement ignorés. Le programme (exécutable) ne souffre donc nullement de la longueur des commentaires dans le code source.
Sphinx
Cet outil permet de documenter du code bien commenter
Organigramme
Il existe plusieurs types d'organigramme.
Voir : Symboles organigramme - planche
La collaboration
Le développement d'un programme d'envergue requiert le travail en équipe.