Mon langage de scripting préféré

Mon langage de scripting préféré

Alexandre P. dans Dev - Le 02-08-2023

Est-ce qu'en tant que développeur Typescript je ne fais que du ts ? Je ne jure que par lui et rien d'autre ? Et bien la réponse est non ! TS est un super langage pour coder des API et du frontend. Cependant, lorsque je code un script, automate, système ou autre, j'utilise autre chose.

Contrairement à ce que je peux laisser entendre dans mes écrits, Node.js a beau être ma techno préféré, JS/TS le langage dans lequel je me sens le plus à l'aise. Ce n'est pas le meilleur outil dans toutes les situations.

Il y a effectivement de nombreuses possibilités notamment via les spawn etc pour faire des appels de commande terminal, mais l'async rend les choses un peu plus compliqués lorsque l'on veut uniquement séquencer des opérations.

Quand je parle de scripting, je parle d'opérations que j'exécute sur ma machine, mon OS, mon infra ou encore des scripts de scraping. Et je pense que Python est un outil bien plus adapté pour ce genre de chose.

Pourquoi ?

N'en déplaise aux fanboys Node.js de la première heure, Python est beaucoup plus puissant en terme d'outil.

Dans 95% des cas (chiffre qui sort de ma tête, mais qu'on se le dise, qui ne doit pas être loin de la réalité), des gens se concentrent uniquement sur des fonctionnalités basiques lorsqu'ils font du scraping.

Ils diront : Puppeteer c'est suffisant ! Cypress c'est trop cool, ou encore Selenium pour les plus techniques.

Mais les gars, je vous mets au défi de créer un système bien plus complexe ou les interactions deviennent dynamique, etc... Par exemple, brancher vos scrapers sur des plateformes qui n'ont pas été adaptés pour la situation (login compris, captcha compris, sans détourner le système de connexion). Car la plupart du temps pour de l'automatisation E2E, les process sont adaptés pour gérer les scénarios de tests plus facilement. Et bien Python il peut faire tout ça, sans alléger le process et sans trop vous casser la tête.

Compliqué ?

Python permet de faire tellement de chose:

  • la lecture d'écran grâce à l'opencv (pour Open Computer Vision), c'est à dire être capable de prendre en entrée une image (typiquement ce sera un screenshot de votre page).
  • la prise en main de votre machine, déplacer la souris à votre place, taper au clavier à votre place etc...
  • et pour pousser un peu plus, vous pouvez y ajouter un système de réseau de neurones si vous voulez y intégrer l'apprentissage et que votre système puisse évoluer

Figurez vous que Python fait tout cela facilement et sans broncher...

Par ailleurs, non je ne télécharge pas 🙈 ... Il faut bien que je teste quelque part 😇

Donc, je penses toujours que Node.js est le meilleur langage pour processer des pages sur un serveur grâce à son moteur fait pour l'i/o.

Mais, ne restez pas dans votre zone de confort et explorez tous les langages car à chaque problème sa solution. Parfois un autre langage peut être un outil bien plus adapté à votre besoin.

#python#scripting#tool#opencv

user picture
Alexandre P.

Développeur passionné depuis plus de 20 ans, j'ai une appétence particulière pour les défis techniques et changer de technologie ne me fait pas froid aux yeux.