Python est un langage de programmation placé sous licence libre. Il a été créé par Guido van Rossum et est sorti en 1991. Le Python est maintenant l’un des langages les plus populaires, comme on peut le voir sur les Developper Survey de Stack Overflow regroupant des avis de milliers de développeurs, où il apparaît en seconde place. Sa popularité est principalement liée à sa simplicité d’utilisation et sa syntaxe simple et rapide à lire.
Lors de notre 5e semestre à IN'TECH, nous avons eu le choix pour les technologies à utiliser sur nos projets.
C'est là que notre équipe a choisi le Python pour développer notre projet Crawl'Immo.
Nous avons choisi ce langage principalement pour approfondir nos connaissances mais aussi découvrir un langage très populaire.
C'est donc durant le projet Crawl'Immo que nous avons pu apprendre le Python avec l'aide du framework Django qui permet de faciliter la création d'un site internet.
Nous avons pu voir et utiliser différents aspects du langage, notamment le calcul mathématique et la création d'un robot crawler, c'est-à-dire un robot qui va parcourir plusieurs sites internet afin d'en récupérer des données.
Le projet en question avait besoin d'un calcul complexe basé sur la loi Pinel pour calculer des investissements immobiliers selon certains critères.
Le robot crawler, lui, permet de récupérer des annonces immobilières sur différents sites afin de les regrouper sur notre site.
C'est principalement sur ces 2 points que nous avons vu la puissance et l'aisance de développement que Python apporte avec sa syntaxe lisible et ses fonctions variées.
J'ai aussi développé, en tant que projet personnel, un robot basé sur les tchats écrits présents sur la plateforme de diffusion en direct Twitch.
Le bot permet à tous les spectateurs de la diffusion en direct de jouer à un jeu en même temps, juste en envoyant des commandes sur le tchat écrit.
Le robot lit en permanence le tchat, et dès qu'il voit un message correspondant à une commande définie, va faire en sorte que la commande simule l'appui sur une touche ou une combinaison de touches sur le clavier afin de, par exemple, faire bouger le personnage dans le jeu diffusé.
La conception du bot et son développement fut assez simple dans l'idée, mais au moment des premiers tests, il y a eu une complication, la gestion du temps entre chaque commande.
En effet, les commandes s’envoyaient trop vite car aucun intervalle n’était mis en place entre chacune. Cela causait des problèmes où le bot ne pouvait pas tenir la touche enfoncée, ce qui faisait que le personnage ne bougeait pas car l'appui était trop rapide. J’ai donc rajouté un intervalle de 200 millisecondes entre chaque appel afin de réduire la charge.
Ici, on peut voir comment les commandes sont simulées sur le clavier. Tout d’abord, les commandes sont reçues et sont décodées comme on peut le voir sur l'image ci-dessus. On différencie le pressage de plusieurs touches et le pressage d’une seule touche à l’aide des méthodes "press_x_buttons" et "press_button", qui prennent en paramètres les touches sur lesquelles appuyer et le temps à attendre entre chaque commande. Cette distinction est faite pour améliorer les performances en ne faisant une boucle foreach que s’il y a plusieurs touches à presser, comme on peut le voir sur le code à droite. C’est ici que la simulation du clavier est faite. J’ai utilisé la librairie "keyboard", qui possède les méthodes "press" et "release", qui permettent respectivement de simuler l’appui et la relâche d’une touche. La librairie "time" me permet de rajouter l’intervalle dont j’avais besoin afin de garder la ou les touches enfoncées.
Ce problème m’a permis de connaître une limite de Python, mais je sais aussi que le matériel sur lequel le bot est installé était une cause du problème.
Mais malgré ce blocage, j’ai pu mener ce petit projet personnel à bien et le finir avec un bot fonctionnel.
Il a été un peu dur de bien comprendre comment développer dans ce langage les premiers jours, car Python se démarque par sa syntaxe particulière qui se différencie des autres langages populaires.
Malgré cette légère difficulté, le Python reste un langage très puissant si l'on veut faire des programmes de calculs, mais nécessite l'utilisation de bibliothèques logicielles lorsque l'on veut faire des projets plus complexes.
Pour ma part, le Python était un peu difficile à appréhender avec sa syntaxe différente des autres langages que j'ai l'habitude d'utiliser.
Cependant, une fois la syntaxe maîtrisée, j'ai pu développer des fonctionnalités qui m'ont plu et me rendre compte que je pouvais apprendre plus vite que je ne le pensais.
L’importance de ce langage, pour mon corps de métier, est qu’il m’a surtout appris à m’adapter rapidement à un langage de programmation avec une syntaxe différente des langages que je connais. C’est un langage que je trouve agréable à utiliser, et je compte bien m’en servir à nouveau pour des projets personnels. Et en plus de continuer à monter en compétence en Python, ces projets personnels vont me permettre de rester au courant sur les actualités de la technologie.
C'est un langage plutôt simple qui pourrait à mon avis plaire à énormément de monde voulant se lancer dans le développement d'applications. Pour un débutant, sa syntaxe est extrêmement simple, bien que différente des autres langages, et la popularité du langage donne accès à beaucoup de tutoriels bien détaillés.