Famille de langages de programmation
# Famille de langages de programmation

Une famille de langages de programmation est un ensemble de langages de programmation partageant un lien de parenté ou des caractéristiques communes — tels le paradigme de programmation par exemple.

## Liens de parenté

De nouveaux langages de programmation apparaissent tous les jours, souvent pour pallier les lacunes des langages déjà existants. Ils cherchent soit à amener de nouveaux concepts à un langage, soit à en corriger les défauts. Ils prennent souvent comme base des langages populaires parmi les programmeurs, soit parce que le concepteur du langage utilisait lui-même le langage d'origine, soit pour pouvoir plus facilement « convertir » les programmeurs du langage d'origine.

Certains langages sont totalement originaux, mais empruntent quelques concepts d'autres langages ou bien ils s'en inspirent. Par exemple, Boo s'inspire de la syntaxe de Python, mais son fonctionnement est radicalement différent. Certains langages sont tellement originaux, qu'ils débutent eux-mêmes une nouvelle famille de langages de programmation avec une descendance.

Les grandes familles de langages par parenté sont :

* la famille du C : C++, Objective-C, Java, C#, Perl, PHP, JavaScript ;
* la famille Pascal : Turbo Pascal, Delphi ;
* la famille Lisp : Common Lisp, Scheme ;
* la famille ML : SML, Caml, OCaml puis F# ;
* la famille Smalltalk : Objective-C, Ruby, Lisaac ;
* la famille BASIC : QBasic, Visual Basic, Visual Basic .Net, Visual Basic for Applications, VBScript, Gambas.

## Caractéristiques communes

L'utilisation de caractéristiques communes est une frontière plus perméable pour les familles de langages de programmation que ne l'est la parenté ; l'utilisation du mot « famille » dans ce cas est peut-être un abus de langage.

Ainsi, les différents paradigmes de programmation groupent les langages de programmation en autant de « familles », même si certains langages sont multi-paradigmes tels Perl et Python.

La syntaxe des langages de programmation est aussi utilisée pour les séparer en familles : langages à accolades, langages à balises, etc.

## Évolutions du langage C

* C++ a été créé pour apporter au C les concepts de la programmation orientée objet et était donc appelé originellement « C avec classes ».
* Objective-C a été créé pour apporter au C les concepts orientés objets et le passage de message de Smalltalk.
* C# a été créé pour convertir la base de développeurs Windows habitués au C++. Le caractère dièse '#' a été choisi car il fait penser à quatre caractères plus '+'.
