Choix du langage de programmation

De Metabolisme territorial
Aller à : navigation, rechercher

D'un point de vue théorique, la réalisation d'un système d'information peut se faire en utilisant différents langages de programmation : la logique des algorithmes n'est pas dépendante du langage. L'approche que nous présentons n'est donc pas censée dépendre d'un langage en particulier. Toutefois en pratique, nos objectifs restreignent le choix des possibles. Le SINAMET, à travers son principe de modularité, vise à permettre d'implémenter rapidement des algorithmes de traitement de données. Pour faciliter cette création de nouveaux modules, nous devons retenir un langage de programmation populaire.

Python est l'un des langages les plus populaires du moment, si ce n'est le plus populaire (Cass 2018). Il est reconnu pour être un langage qui apporte une grande productivité pour le programmeur, tout en étant plutôt élégant dans son écriture. Ses nombreuses librairies permettent d'apporter un panel extrêmement large de fonctionnalités de haut niveau. Plusieurs d'entre elles nous intéressent particulièrement dans nos travaux : pour réaliser une interface graphique, pour créer des graphiques, pour implémenter une solution ORM, pour manipuler des grandes masses de données, ... Pour le dernier point, les librairies de statistiques existantes sous Python viennent directement concurrencer l'usage d'un autres langages dédiés comme R. Notre expérience personnelle vis-à-vis des deux langages nous invite à préférer Python à R, à la fois pour sa syntaxe qui nous semble plus élégante et intuitive, mais aussi pour l'étendue des fonctionnalités disponibles.

Le choix d'un langage de programmation pour un logiciel dépend du compromis que l'on accepte de faire entre fonctionnalités, portabilité, utilisation de la mémoire et rapidité d'exécution. Pour développer le prototype du SINAMET, nous avons fait le choix du langage Python (dans sa version 3.6.5). Ce langage sous licence libre offre en effet une syntaxe simple tout en proposant des outils de haut niveau qui permettent d'optimiser la productivité des programmeurs (Thomsen & Bach 2009). Il s'agit à la fois des caractéristiques utilisables du langages (programmation orienté objet, programmation fonctionnelle, héritage multiple, passage d'arguments facultatifs, typage dynamique, ...) et des nombreuses librairies existantes qui permettent d'élargir les possibilités de la programmation en Python. La principale limite du langage est qu'il est interprété, ce qui le rend plus lent à exécuter que des langages déjà compilés. Toutefois les capacités des ordinateurs actuels et l'optimisation de certaines librairies rendent négligeable cette lenteur dans la plupart des applications. Aussi, en raison des nombreux atouts du langage, celui-ci a vu sa popularité croitre au point de devenir l'un des langages privilégié tant pour les débutants que pour des spécialistes du traitement de données. Python a même été élu "meilleur langage 2017" par l'IEEE (REF !!!).

Le choix de Python permet donc d'accéder à un large panel de librairies. Celles qui nous ont permis de développer le SINAMET sont les suivantes :

  • SQLAlchemy comme solution ORM,
  • Shapely pour la gestion d'information géographique (points, lignes et polygones spatialisés),
  • Geopandas pour la gestion de shapefile et le geocodage d'adresses,
  • Tkinter (disponible par défaut) pour l'interface graphique,

Ces librairies font parfois elle-même références à d'autres librairies mais que nous n'utiliserons pas directement.

Faits relatifs à « Choix du langage de programmation »
KeyRefcass2018 + et thomsen2009 +