Quel langage pour quel besoin?

Tout d'abord, c'est quoi un langage de programmation?

Un langage de programmation est un langage permettant d’exprimer des instructions pour contrôler le comportement d’une machine (le plus souvent un ordinateur). On appelle algorithme la succession d’instruction qui définit une tâche donnée.

Pourquoi existe-t-il autant de langages différents?

La diversité des langages de programmation existe principalement pour répondre à différents besoins et/ou contextes d’application. Chaque langage de programmation a des caractéristiques spécifiques qui le rendent plus adapté à certains types de tâches. Voici quelques caractéristiques à prendre en compte:

  1. Le domaine d’application :
    Certains langages sont conçus pour des domaines d’application spécifiques. Par exemple, SQL est utilisé pour interroger les bases de données, tandis que HTML est utilisé pour définir la structure des pages web.
  2. Le niveau d’abstraction :
    Certains langages sont plus proches du matériel (par exemple, le langage C) et permettent un contrôle très précis de ce qui se passe au niveau de la machine. D’autres langages (comme Python ou Java) sont plus éloignés du matériel et offrent des niveaux d’abstraction plus élevés qui facilitent la programmation. On peut généralement relier le niveau d’astraction à la simplicité et à la performance d’un langage: un langage dit ‘bas niveau’ sera complexe mais ultra-performant alors qu’un lanage dit ‘haut niveau’ sera plus facile à lire (et à apprendre) mais au pris d’une performance moindre.
    On peut comparer ça à un chef de brigade donnant des ordres à un commis :
    • Il peut soit donner quelques instructions rapides (‘fait une mayonnaise’). Donner l’ordre lui permet de faire autre chose et le résultat sera très bien mais il l’aura peut être réalisé de façon différente.
    • Il peut prendre le temps de lui montrer et lui donner une recette très précise. Le temps d’explication sera long mais le résultat plus conforme aux attentes.
  3. La préférence personnelle et l’évolution historique :
    Les langages de programmation ont également évolué en fonction des préférences des développeurs, des besoins de l’industrie et de l’histoire de l’informatique (amélioration des processeur, essor d’internet..Etc). Loin d’être anodin, la popularité d’un langage défini l’importance et la pro-activité de sa communauté. Cette aspect communautaire trouve toute son importance lorsqu’on cherche une réponse à un problème ou à résoudre un message d’erreur mais également à travers la publication « d’extensions’ (librairies, packages, frameworks…etc) qui peuvent énorménent faciliter la vie du programmeur.

En résumé, il existe différents langages de programmation car il existe une grande variété de problèmes à résoudre, et souvent un langage qui est parfait pour un type de problème ne l’est pas autant pour un autre.

En réalité, vous faites déjà de la programmation sans le savoir!

Je vous propose de continuer sur nos métaphores gastronomiques!

Vous avez surement déjà expliquer à quelqu’un une recette de cuisine (ne serait-ce que faire des pâtes)! Et bien quand vous donnez des instructions à quelqu’un pour préparer un plat, vous lui fournissez un ensemble d’étapes à suivre – c’est-à-dire … un algorithme!

  • Besoin d’ustensiles spécifiques? Vous importerez des librairies/framework.
  • Vous commencez par définir les ingrédients nécessaires? En programmation, vous définissez les variables nécessaires.  

Vous pourrez enfin expliquez les étapes à suivre pour transformer ces ingrédients en un plat délicieux!

 Je vous propose pour illustrer ceci, je vous propose de réaliser une mayonnaise !

Recette trouvée sur le site marciatack.fr:

Equipement

  • Fouet
  • Bol

Ingrédients

  • 1 jaune d’oeuf
  • 1 cuillère à café moutarde
  • 1 cuillère à soupe vinaigre (ou de jus de citron)
  • 10 centilitres d’huile neutre
  • sel
  • poivre

Instructions

  • Mélangez le jaune d’oeuf, la moutarde et le vinaigre dans un bol
  • Salez poivrez
  • Fouetter en versant l’huile petit à petit

Et voilà, la mayonnaise est prête!

En version « algorithmisée façon python »

# Import
import bol

import fouet

def faire_mayonnaise():

# Ingrédients
jaune_oeuf = 1
moutarde = "1 cuillère à café"
vinaigre = "1 cuillère à soupe"
huile = "10 cl"
sel = "une pincée"
poivre = "une pincée"

# Ajouter les ingrédients dans le bol
mon_bol = bol.ajouter(jaune_oeuf, moutarde, vinaigre)

# Saler et poivrer
mon_bol = bol.ajouter(sel, poivre)

# Fouetter en versant l'huile petit à petit
avec fouet.Fouet(mon_bol) as f:
f.fouetter_avec_huile(huile)

print("Mayonnaise prête!")

# Appeler la fonction pour faire la mayonnaise
faire_mayonnaise()

Quel(s) langage(s) apprendre selon ses besoins?

  1. Python
    Python est générallement cité comme un excellent langage pour débuter la programmation, y compris les professionnels de la santé. C’est un langange utilisé dans une grande variété de domaines comme l’analyse de données, des bio-statistiques, la visualisation, le développement web, et l’apprentissage automatique. Python est également extrêment populaire dans le domaine de la bio-informatique disposant ainsi d’une grande communauté. Son autre avantage est d’être facile à apprendre.

  2. R
    R est LE langage star des bio-statistiques. Il dispose d’énormément de packages permettant de réaliser en seulement quelques lignes de code des tests statistiques complexes et d’afficher des tables et figures pouvant être intégrés d’emblés dans un article.

  3. SQL
    SQL (pour Strctured Query Language) est un langage utilisé dans le cadre de la conception,  de l’entretien et de l’interrogation de bases de données. Si ce langage peut sembler être une niche ultra-spécifique, l’apprentissage de son versant ‘interrogation’  est en réalité indispensable dès qu’on souhaite récupérer des données automatiquement ou massivement depuis une base de données de santé. Si ce lanage possède une structure générale, il existe en réalité plusieurs ‘dialectes’ de SQL qui correspond à des petites variantes spécifiques au ‘type’ de système de gestion de la base de données (MSSQL, mySQL, PostgreSQL…etc).

  4. HTML/CSS/JavaScript
    Ces langages sont le points de départ de ceux qui sont intéressés par le développement web (par exemple, pour créer ou maintenir un site web pour un cabinet médical), ces trois langages sont la base du développement web front-end.

  5. MATLAB
    Matlab est un environnement de programmation utilisés pour les calculs numériques et l’analyse de données. Il est principalement utilisé dans l’ingénérie biomédicale et pharmaceutique.

Est-il utile d'apprendre à programmer à l'heure des Large Language Model (chatGPT)?

Pour cette partie, il s’agit d’un débat complexe qui fait actuellement couler beaucoup de i-encre sur internet et je ne prétend pas apporter une réponse définitive à cette dernière. Je me suis donc dit…pourquoi ne pas poser la question directement à chatGPT?

Voici sa réponse:

« L’essor des Modèles de Langage à Grande Échelle (LLMs), comme GPT-3 et GPT-4 d’OpenAI, pourrait effectivement changer la donne en ce qui concerne l’importance pour les professionnels de santé d’apprendre à coder. Ces modèles d’intelligence artificielle (IA) de pointe sont capables de comprendre et de générer du langage humain de manière très précise, ce qui leur permet d’automatiser certaines tâches et d’interagir de manière intelligente avec les utilisateurs.

 

Cependant, même avec l’essor de ces technologies, il y a encore des raisons pour lesquelles l’apprentissage d’un langage de programmation reste une compétence précieuse pour les professionnels de santé.

 

Tout d’abord, même si un LLM peut automatiser certaines tâches, il y a toujours une place pour la personnalisation et le contrôle sur la façon dont ces tâches sont effectuées. Savoir programmer peut vous permettre de modifier et d’adapter les outils pour qu’ils correspondent exactement à vos besoins spécifiques.

De plus, bien que les LLM soient incroyablement avancés, ils ont leurs limites et peuvent parfois produire des résultats imprécis ou trompeurs, surtout lorsqu’ils sont utilisés dans des domaines hautement spécialisés comme la médecine. Il est donc essentiel que les professionnels de santé aient une compréhension de base de la façon dont ces outils fonctionnent afin de pouvoir les utiliser de manière efficace et sûre.

 

Enfin, les LLM sont des outils, et comme tous les outils, ils sont plus efficaces lorsqu’ils sont utilisés par quelqu’un qui comprend leurs forces et leurs faiblesses. L’apprentissage de la programmation peut aider les professionnels de santé à comprendre comment utiliser au mieux les LLM et à éviter les pièges potentiels de leur utilisation.

 

En somme, même à l’ère des LLM, la programmation reste une compétence précieuse pour les professionnels de santé. Non seulement elle leur donne plus de contrôle sur leurs outils numériques, mais elle leur permet aussi de comprendre et d’utiliser plus efficacement les technologies de pointe comme les LLM. »

La réponse fournie par ChatGPT est assez proche de mon expérience avec les LLM en programmation. Il est indéniable qu’ils apportent une aide précieuse et, à titre personelle, j’utilise ChatGPT pour la programmation dans 3 situations :
  • Résoudre des codes erreurs
  • Ecrire des snippets (‘fragments de codes’)
  • Traduire en langage courant du code que je ne comprends pas (langage que je ne maitrise pas ou écriture complexe)

Comme l’expose lui-même ChatGPT, une des limite des LLM est la difficulté à s’adapter à un besoin ultra-personnalisé: il peut débrouiller une grande partie du code mais il faudra comprendre où apporter des modifications pour l’adapter à notre code. Cette situation est d’autant plus vraie dans le contexte de la programmation en santé où il existe peu d’informations ‘ouvertes’ ou existantes sur le web pour permettre un apprentissage correct des modèles.

Conclusion

En conclusion, le choix du langage de programmation, que ce soit en santé ou ailleurs, doit d’abord être dicté par le besoin que l’on exprime (voir article « Pourquoi apprendre à programmer en tant que professionnel de santé ? »).

Python est souvent le langage le plus mis en avant car polyvalent, performant, bien documenté et facile à apprendre. R est cependant un très bon choix si on souhaite se limiter à l’analyse statistique et la manipulation de données médicales. SQL est essentiel pour interroger des bases de données structurées.

La place des LLMs en datascience dans le domaine de la santé offrent des possibilités prometteuses mais ne permettent pas à l’heure actuelle de s’affranchir d’un apprentissage de quelques bases de programmation et présentent des limites en termes de sécurité.

Laisser un commentaire