---
# System prepended metadata

title: Choix du langage

---

# Choix du langage

Pour notre projet nous allons avoir besoin d'un langage multi-paradigme. En effet, les algorithmes sont écrit de façon prodcédurale et pour les graphes, les sommets et les arcs nous auront besoin d'objets. Le **C++** ou le python semble être donc tout indiqué pour cela.  

Le C++ semble néanmoins plus indiqué que le python pour des raisons de performance en effet d'après le projet *"The Computer Language Benchmarks Game"* le c++ met 1.51 secondes à exécuter le programme *mandelbrot* contre 259.50 secondes pour le python de la même façon le programme *n-body* met 7.70 secondes à être exécuter en C++ contre 865.18 secondes en python.
De manière générale le c++ est plus rapide que les autres langages en effet si on consulte les autres benchmark présent sur le site nous pouvons observer que le C++ est parfois plus rapide que le **C** ou que le **Rust** et est nettement plus rapide que le **java** et le **Python**.

-> **mandelbrot** : Programme permettant de dessiner un ensemble de mandelbrot  qui sont des fractales.

-> **n-body :** Le problème à N corps consiste à résoudre les équations du mouvement de Newton de N corps interagissant gravitationnellement, connaissant leurs masses ainsi que leurs positions et vitesses initiales. Par extension cette appellation a été conservée dans le cas où l'on s'intéresse à un ensemble de particules liées par un potentiel quelconque. 

Les performances sont importantes pour notre programme, en effet l'utilisateur peut être amené a exécuter des algorithmes sur des graphes comptant un nombre important de sommets et d'arc nous indiquant donc le C++.