Quel langage de programmation cartographique pour demain ?

Par Axel FOURNEYRON

Pour bien commencer l’année 2020 quoi de mieux qu’une vidéo « timeline » pour se projeter vers l’avenir en toute sérénité ? C’est ce que la chaîne Data Is Beautiful nous propose ici avec sa vidéo « Most Popular Programming Languages 1965 – 2019 ».

La chaîne n’en est pas à son coup d’essai, avec bientôt 60 vidéos toutes basées sur l’évolution au fil du temps avec des sujets très variés comme les séries, les antivirus, les boites mails, les prénoms donnés aux enfants ou encore les fast-foods les plus populaires à travers un graphique animé sur les 20 dernières années (voir plus pour certaines vidéos).

Extrait de la vidéo  » Most Popular Programming Languages 1965 – 2019  » de la chaîne Data Is BeautifulI

Effectivement en 55 ans les langages de programmation ont bien évolué. Avec aujourd’hui plus 30 langages de programmation différents, il est difficile de choisir celui correspondant le plus à nos besoins. Pourtant, ce jeune doctorant (Anonyme) tente de nous montrer d’un point de vue novateur la popularité des langages de programmations. Cette data visualisation animée, permet d’avoir en quelques minutes un regard global sur les langages et l’évolution de leur popularité au fil du temps, quatre comportements différents se distinguent :

  1. Ceux qui perdurent dans le temps (Langage C, Java),
  2. Ceux qui n’ont pas perduré dans le temps (Langage ALGOL),
  3. Ceux qui se développent et tendent à perdurer dans le temps (Langage Python),
  4. Ceux dont l’utilisation est spécifique à certains logiciels (Langage R),

Ce support de communication, très simple et soigné graphiquement nous transmet une information chronologique facile de lecture sur un support vidéo de plus en plus utilisé par les jeunes.

Figure 1 Illustration d’un tweet #programmingassignmenthelp

Cependant derrière cette efficacité de communication, la construction de l’indice de popularité semble être un réel défi. L’auteur s’est axé sur plusieurs thématiques afin de construire cet indice de popularité :

  • L’agrégation de plusieurs enquêtes nationales, pour la partie plus historique
  • La fréquence d’accès aux dépôts GitHub   
  • Le pourcentage de programmeurs ayant soit une compétence dans un langage spécifique, soit en train d’en apprendre ou d’en maîtriser une.

Ces trois critères sont intéressants étant donnée leur complémentarité. Nous avons à la fois une volonté de :

  • Connaître historiquement la satisfaction ou les envies d’utilisation des langages de programmation à travers des enquêtes nationales
  • Étudier les langages les plus utilisés actuellement à travers la plateforme GitHub, qui est une plateforme très utilisée par les développeurs pour partager leurs scripts, réaliser du versionnement, stocker leur code en ligne (et bien d’autres options).
  • Analyser la connaissance ou rechercher de nouvelles connaissances des programmeurs.

Cependant, la procédure de construction de ce graphique n’est pas explicitée…Ce qui soulève quelques interrogations :
L’auteur a-t-il pris en compte les fréquences de questions de Stack Overflow (plateforme de discussion question/réponse concernant la programmation informatique)  qui réalise un topic statistique annuel sur les langages de programmation ? A-t-il pris en compte les langages de programmation spécifiés dans les offres d’emploi ? Est-ce que ces langages de programmation sont adaptés à tous les besoins ?

Figure 2 Carte de Sébastien Rochette lors du « Kaggle survey data challenge »

Sébastien Rochette a réalisé une analyse lors de l’étude du « Kaggle survey data challenge » qui a permis d’apporter une visualisation cartographique sur l’utilisation des langages de programmation.

Il a pour objectif de savoir quels sont les langages les plus utilisés entre R, SQL et Pyhton (trois langages très utilisés dans la géomatique). Pour réaliser la cartographie (figure 2), il a procédé à une méthode particulière, qui est dans un premier de calculer la moyenne mondiale d’utilisation des trois langages, puis de calculer la moyenne par pays avant de calculer l’écart à la moyenne pour faire ressortir les utilisations plus spécifiques des pays. Enfin une fois l’écart à la moyenne obtenu pour tous les pays et tous les langages, il colorise les pays à travers un diagramme triangulaire. Plus un pays utilise un langage plus sa position tendra vers une des pointes du triangle et sa couleur sera « pure ».

Géographiquement parlant, il semble y avoir une plus grande proportion de premiers utilisateurs de Python en Russie et en Chine. Les pays européens et océaniens montrent plus d’utilisateurs R que la moyenne mondiale, tandis que l’Amérique et l’Australie sont plus utilisateurs de R+SQL que la moyenne mondiale.

Nous pouvons quand même constater que l’équilibre des couleurs dans la légende du triangle sont tournées vers la réponse moyenne, donc que notre écart à la moyenne, et l’utilisation d’un langage en particulier dans un pays reste très peu prononcé.

Qu’en est-il pour les SIG ?
Dans le domaine de la géomatique, cette analyse est tout à fait normale. Tous les langages ne sont pas utilisés pour le même objectif, certains serons très utilisés pour le stockage des données, d’autres pour la visualisation des données, d’autres pour l’automatisation de traitement et enfin certains pour l’analyse spatiale de ses données.

On retrouve dans l’ensemble une dizaine de langages utilisables pour les logiciels SIGs ou la manipulation d’objet spatiaux : C, C++, C#, Java, JavaScript, Python, SQL, PHP, R, Perl, Ruby.

Tous ses langages de programmation ont leur particularité technique (temps d’exécution, consommation maximale de mémoire, …), une étude récente « Energy Efficiency across Programming Languages » de 2017 a été faite pour essayer de voir les particularités techniques de chacun. Cette étude de performance de traitement est importante avec l’arrivé du big data. On retrouve de plus en plus des bibliothèques de Benchmarks pour estimer les temps de calcul d’un programme.

Tous ses langages de programmation ont leur particularité technique (temps d’exécution, consommation maximale de mémoire, …), une études récentes « Energy Efficiency across Programming Languages » de 2017 a été faite pour essayer de voir les particularités techniques. Cette étude de performance de traitement est importante avec l’arrivé du big data. On retrouve de plus en plus des bibliothèques de Benchmarks pour estimer les temps de calcul d’un programme.

Voici un tableau récapitulatif des différents usages et avantages des langages de programmations SIG:

Figure 3 Tableau créé par Axel Fourneyron basé sur les différentes sites sources disponible à la fin de l’article

Pour conclure, si la programmation est devenue un outil essentiel à la géomatique, il n’est pas nécessaire de maîtriser l’ensemble des langages de programmations. La maîtrise parfaite d’un langage dépend de son domaine d’application, de ses objectifs, de son utilisation quotidienne ainsi que l’utilisation dans la structure où le SIG est déployé. Cependant il reste primordial de connaître leurs existences pour pouvoir les utiliser, les apprendre lorsqu’ils peuvent nous faciliter la réalisation de certaines tâches et suivre l’ascension des nouveaux langages qui pourront peut-être remplacer ceux d’aujourd’hui.

Sources:
https://www.geomatick.com/2018/01/23/faut-il-savoir-programmer-pour-etre-geomaticien
https://www.youtube.com/watch?v=Og847HVwRSI
https://insights.stackoverflow.com/survey/2019
https://statnmap.com/2019-03-20-kaggle-survey-2018-maps-of-languages-used-and-repartition-of-reproducibility-issues/

Articles :
PEREIRA, Rui, COUTO, Marco, RIBEIRO, Francisco, et al. 2017. Energy Efficiency across Programming Languages.
ROCHETTE Sébastien. (2019, Mar. 20). « Kaggle survey 2018: Maps of programming languages used and repartition of reproducibility issues ».

Modérateurs : Bénédicte THOMAS et Bastien CAHIER

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Un site WordPress.com.

Retour en haut ↑

%d blogueurs aiment cette page :