Quand utiliser Python ?


#1

Bonjour,

J’aurais voulu savoir dans quels cas vous utilisez Python. D’après ce que j’en sais, il s’agit plus dans langage orienté Web mais il est également très polyvalant. Pour ma part, pour le web, je préfère utiliser Ruby/Rails.

Il y a t’il des types d’applications pour lesquels vous préférez utiliser Python plutôt qu’un autre langage et pourquoi?

Merci!


A propos de la catégorie Python
#2

J’ai commencé par écrire une réponse ici, mais finalement j’en ai fais un article :)

Dans ton cas, si tu préfère Rails pour le Web, c’est une excellente raison pour rester sur Rails. Il faut se faire plaisir en dans son travail.

Après, le fait est que Ruby est un langage très centré sur le Web, et peu présent ailleurs. Python sera utilisé dans l’analyse de données, la finance, la science, les app destopts, l’admin sys, le scripting, l’IA, le big data… C’est un langage très polyvalent, et c’est ce qui fait sa force.

Rien ne t’empêche d’apprendre les deux. Ruby et Python sont assez proche, si tu connais l’un, l’autre te parleras facilement.


#3

Merci pour ton avis. As-tu déjà fait des application de bureau avec Python, si oui, avec quoi? Est-ce possible de faire du mobile avec Python?

Un lien vers le forum dans ton article serait le bienvenu.

Effectivement Ruby et Python sont très proches.


#4

Salut,

Pour ma part, j’utilise python pour 2 cas pratiques :

  • Le premier est pour faire des scripts sur ma config pour automatiser des trucs (genre que je met sur un cron), j’en ai fait un aussi pour installer toute ma config habituelle lorsque je reformate mon laptop. Enfin je l’utilise carrément comme une alternative a un script bash, c’est plus haut level, très puissant, il y a toujours une lib qui fait ce que je voudrais faire.

  • Le deuxième cas, c’est justement pour les raisons que je viens de citer : je l’utilise quand je fais un P.O.C sur une techno ou autre, genre là je m’amuse à travailler sur une voiture RC que j’ai hack avec un arduino et un shield wifi, et j’ai fait un soft en python en 2 temps 3 mouvement pour contrôler la voiture avec une manette de xbox. Et pour ca j’ai utilisé une seule lib (pygame) qui me permet de faire de l’interface graphique, et qui gère aussi les controler type manette, et ces choses là ce mette en place en 5 ligne de python

Enfin j’ai écris un pavé u_u mais pour résumer c’est facile, il y a toujours une lib qui fait le café et ça permet de vite avoir un résultat. Ce que j’aurais a reprocher c’est qu’on arrive vite à faire des trucs dégueu et tricky parce que c’est hyper permissif, c’est pour ça que je l’utilise pas pour des gros projets qui demande de la rigueur.


#5

Tu peux faire des applications de Bureau avec Python, il existe des wrapper pour les librairies natives classiques comme QT (pyQT) ou GTK (pyGTK).


#6

@FelixTao, pas mal le délire de geek :D


#7

La rigueur ne réside pas dans le language mais dans celui qui l’utilise.


#8

Hahaha ! Entièrement d’accord !
Mais je n’ai aucune rigueur en python :p Je fais vite des list de map de list de map et des one-line imbuvable ^^

Parce contre en C je suis hyper maniac quand je veux


#9

Oui, en utilisant Kivy.


#10

Pour ma part, je trouve que Python encourage beaucoup plus la rigueur que le C. Oui c’est permissif mais la philosophie t’encourage à faire du code plus propre. Je pense que, quand on adopte un langage, il faut adopter ça philosophie. En C, je trouve que la gestion de plugins/dépendances est moins bien faite. Ça encourage le copier/coller et une mauvaise structure des dossier. De plus, en Python, le code est plus cours, donc plus lisible, plus facile à maintenant et plus facilement gérable.


#11

Plus de rigueur que le C je n’irais pas jusque la, rien que pour la gestion de la mémoire…
Pour le reste je suis carrément d’accords, je manque juste d’expérience en python (j’en ai rarement fait pour des gros projet)


#12

Je pense que c’est un avantage de ne page gérer la mémoire. Ton code est plus propre parce-que tu n’as pas à t’occuper de ça. Encore une fois, tu as moins de ligne de code.


#13

Ah bien sur la question n’est pas la, mais du coup faut être beaucoup plus rigoureux lorsqu’on manipule la mémoire (:


#14

Effectivement, si tu n’es pas rigoureux tu peux faire vite n’importe quoi donc tu n’as pas le choix.


#15

Justement, bien qu’il fasse être rigoureux pour libérer la mémoire, le langage ne t’incite pas du tout à l’être, et c’est bien le problème …


#16

Ne t’incite pas a l’être si tu n’en as pas envie ;) Moi je kiff construire mon code et chasser les failles l’une après l’autre pour ne plus avoir aucun leaks et optimiser la consommation total de mémoire et l’exécution !


#17

Ça dépend de l’objectif de ton application. Pour moi, optimiser la consommation de la mémoire est important si c’est un problème dans ton programme. Avec Python, tu va probablement coder 10 fois plus vite ton application. Je crois qu’une bonne solution serait d’écrire l’application en Python et de la remplacer ou de faire des modules en C si la vitesse devient critique.

Ceci-dit, je crois qu’on entre dans une guerre de programmeur. Il n’y a pas de bon ou de mauvais choix. Il faut juste choisir la bonne solution selon le contexte.


#18

Pour faire des optimisations de module, il y a Cython aussi qui permet d’atteindre des performances très proches du C. En fait c’est un compilateur Python > C.