Partage
  • Partager sur Facebook
  • Partager sur Twitter

Le Python... Sans intérêt ?

Sujet résolu
22 mai 2013 à 12:14:44

Bonjour,

Tout d'abord je souhaite dire que ce topic n'est en aucun cas un troll de bas étage ou tout autre ineptie de ce genre, mais une réelle réflexion que je me suis fais et dont je vous fais part.

Pour établir la situation : j'ai commencé à apprendre le Python il y a quelques mois et j'en suis très satisfait ; de part sa simplicité bien évidemment mais aussi de part les possibilités qu'il nous offre.

Seulement, une fois l'enthousiasme de la découverte, de l'apprentissage et de l'utilisation d'un nouveau langage de programmation passé, m'est venu une question : quel est l'intérêt du Python ? En effet, une fois passer sa version 2.7 il devient incompilable... Où est l'intérêt d'améliorer un langage de programmation si celui-ci n'est pas partageable comme bon nous semble par la suite ? Je veux dire, j'ai créer 2-3 scripts et leur lancement n'est faisable que par une personne qui a Python installé sur son PC ; or mes scripts ne sont pas destinés à 1 ou 2 personnes, mais à bien plus.

Ou alors c'est moi qui me suis mal renseigné... Mais j'ai beaucoup recherché, et tout ce que j'ai réussis à faire en Python 3.2, c'est le "compiler" via l'IDLE officiel et en tirer un .pyc dont j'ignore encore les fonctions.

Bref, pourriez-vous m'éclairer ?

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 12:32:58

Salut,

Pourquoi taper les vieilles versions de python quand des récentes existent ^^ ? De plus, pour la rétro compatibilité, c'est pas forcément une mauvaise chose.
Si tu veux une rétro-compatibilité entre les versions, ça oblige à garder des fonctions/codes crades/dangereuses fonctionnelles pour que les anciens codent fonctionnent. Mais du coup, une partie des programmeurs vont pas changer leur habitude (bah oui, ça marche encore, pourquoi se casser le cul à changer ?). Du coup tu restes avec des codes nazes.
Donc parfois il vaut mieux casser la rétro compatibilité et repartir sur quelque chose de correcte, même si ça plait pas parce qu'il faut revoir le code (ça fait partie du jeu après tout).

Concernant Python sur l'ordinateur, oui c'est nécessaire parce que Python est interprété et non compilé. Pour PHP et Java c'est pareil. Sans PHP ou sans JAVA, ça fonctionne pas. Si tu veux un code fonctionnel sans installer quoi que ce soit d'autre que l'OS, faut du code machine (compilé).

Le fichier .pyc c'est un fichier python traduit dans un langage que Python interprète plus vite (si je me trompe pas). Ce n'est pas un programme comme un .exe. Et si tu attends un .exe (ou équivalent), ce n'est pas le bon langage que tu regardes.

Donc en résumé, Python n'est pas un langage compilé au même titre que le C ou C++, si tu veux distribuer tes fichiers .py il faut Python d'installé pour les lire (tout comme il faudrait PHP ou Java si ton code était en php ou java), la rétro-compatibilité faut parfois l'oublier pour mettre en place rapidement quelque chose de propre.


Ce n'est peut-être pas les réponses que tu attends, dans ce cas je m'excuse et je te demanderais de préciser ce que tu veux savoir que je puisse essayer de mieux t'aider :)


Bye et bonne continuation ;) 

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 12:44:24

D'accord d'accord... Donc si je cherche à créer des .exe en Python pour les partager je me fous le doigt dans l'oeil.

En partant de ce constat, honnêtement... Je ne vois pas l'intérêt de Python.

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 12:48:19

python est intégré de base dans 99% des distrib linux et dans MacOs.

Pour windows, tu as la possibilité de créer un exe qui contient directement python + ton script. Plusieurs existent comme py2exe. Ainsi tu aura un exe tout propre et l'utilisateur ne se rendra pas compte que tu utilise python.

Mais ton soucis c'est plus un problème de distribution que du langage en soit. PHP, Java, tous les langages .net, Python, ruby, etc. sont des exemples où les contraintes sont les meme. Pourtant ils sont souvent utilisé. Car ce que tu considère comme un grave defaut est aisément contournable.

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 12:52:40

Python est très utilisé sous Linux, car il est souvent installé dessus (et de toute façon avec le système de dépendance, ça se fait tout seul).

Tu peux utiliser Python dans ton propre intérêt aussi, si tu as besoin de faire rapidement un petit script p.ex. Et puis installer un interpréteur Python n’est pas difficile.

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 12:54:41

Au passage, py2exe (qui est ce que tu demande) à d'autres equivalents comme cx_Freeze pour python 3 ou py2app pour MacOs

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 12:56:48

Effectivement, j'avais oublié py2exe (mais comme tu le précises, il intègre python dedans, donc ça peut, peut-être, être plus lent, non ?)

Pour Python dans mac, c'est exacte (même si c'est pas forcément un version récente) pour en avoir un.

Python est un langage plus haut niveau que du C ou C++ et qui n'est pas compilé. De ce fait, tu dois distribuer tes codes et avoir l'interpréteur sur l'ordi sur lequel tu l'installes. C'est peut-être pas ce que tu recherches. Mais de là à dire que Python n'a pas t'intérêt, c'est un peu rapide :p

Python est très puissant comme langage et est souvent utilisé comme langage secondaire dans un programme pour sa simplicité et efficacité (il peut par exemple être utilisé pour des plugins, le cœur du programme est en C par exemple, et tu rajoutes des trucs grâce à des plugins en python). Bref, je m'enfonce peut-être un peu plus en disant ça :p

Non franchement, si tu souhaites distribuer facilement ton code, regardes la solution proposée par kristofjé (py2exe) ou alors tourne toi vers un autre langage compilé (vu que ça semble être ce que tu cherches).

Bye :)

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 12:58:16

Un .exe contenant l’interpréteur + le script... Si on installe plusieurs .exe fait de cette manière, ça fait beaucoup d’interpréteur d’installé.

AMHA le mieux est de demander à l’utilisateur d’installer Python.

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
22 mai 2013 à 13:00:14

Salut, rien ne t'empêche de faire un installateur pour ton programme qui installe Python dans la foulée si il n'est pas présent. Et puis, si tu veux vraiment du code compilé, il y a des solutions, comme Cython.

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 13:00:34

fscorpio a écrit:

Et puis installer un interpréteur Python n’est pas difficile.

Ouais enfin bon... Je me vois mal demander à tous les gens auxquels je file mes scripts d'installer un interpréteur...

kristofjé a écrit:

Au passage, py2exe (qui est ce que tu demande) à d'autres equivalents comme cx_Freeze pour python 3 ou py2app pour MacOs

Je tourne sous Windaube malheureusement...

@dri1 a écrit:

Salut,
rien ne t'empêche de faire un installateur pour ton programme qui installe Python dans la foulée si il n'est pas présent. Et puis, si tu veux vraiment du code compilé, il y a des solutions, comme Cython.

J'ai déjà essayé Cython, mais le script s'ouvre et se referme directement...

-
Edité par Koshomatic 22 mai 2013 à 13:04:20

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 13:02:26

Effectivement, j'avais oublié py2exe (mais comme tu le précises, il intègre python dedans, donc ça peut, peut-être, être plus lent, non ?)

Bah non. py2exe ou cx_Freeze c'est simplement qu'il te fournit un beau exe avec une version de python gelé et ton script qui va avec, c'est fait exprès pour tous ceux qui ne veulent pas s’embêter à faire installer python à leur user. Mais à la base c'est comme si tu avais la version de base de python + ton script. Tout au plus tes codes sont intégré dans la partie ressource de l'exe et ça va demander une seconde à ton ordi pour l'extraire au démarrage, mais c'est rien du tout.

Pour le reste, dire que python est inutile c'est juste du troll de bas étage que de reprocher ça au langage. Si tu fais une appli une appli C++ avec Qt tu es bien obligé de fournir aussi les dll de Qt, c'est le même principe. Ce n'est pas lié au langage, c'est lié à la distribution de l'application. Ça ne sert à rien de répondre à ça.

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 13:03:30

Koshomatic a écrit:

kristofjé a écrit:

Au passage, py2exe (qui est ce que tu demande) à d'autres equivalents comme cx_Freeze pour python 3 ou py2app pour MacOs

Je tourne sous Windaube malheureusement...

Oui bin c'est ce que je dis, pour Windows il y a py2exe ou cx_Freeze

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 13:04:20

kristofjé a écrit:

Effectivement, j'avais oublié py2exe (mais comme tu le précises, il intègre python dedans, donc ça peut, peut-être, être plus lent, non ?)

Bah non. py2exe ou cx_Freeze c'est simplement qu'il te fournit un beau exe avec une version de python gelé et ton script qui va avec, c'est fait exprès pour tous ceux qui ne veulent pas s’embêter à faire installer python à leur user. Mais à la base c'est comme si tu avais la version de base de python + ton script. Tout au plus tes codes sont intégré dans la partie ressource de l'exe et ça va demander une seconde à ton ordi pour l'extraire au démarrage, mais c'est rien du tout.


Ah d'accord, je pensais pas. Bah tant mieux :D

Merci pour l'info ^^

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 13:05:15

Attendez y a trop de réponses, j'arrive plus à lire :lol:
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
22 mai 2013 à 13:09:17

Koshomatic a écrit: >J'ai déjà essayé Cython, mais le script s'ouvre et se referme directement...

Je vois mal comment on peut repprocher à Python les problèmes d'interface chaise-clavier sans tomber dans le bas troll. :-°

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 13:12:44

@dri1 a écrit:

Koshomatic a écrit:

J'ai déjà essayé Cython, mais le script s'ouvre et se referme directement...


Sur windows, une fenêtre DOS s'ouvre et se ferme si tu dis pas au système de se mettre en pause. Ça parait donc normal.
  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 13:12:51

Je suis encore débutant, pour ne pas fermer un script directement j'utilise une boucle ou une fonction input, donc bon, désolé si ma réponse semblait niaise.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
22 mai 2013 à 13:20:06

Le problème n'est pas que tu n'es pas arrivé à utiliser cython, c'est que tu te permettes de faire un jugement sur l'utilité de Python alors que tu n'as visiblement même pas essayé toutes les solutions au faux problème que tu soulèves. On t'a donné de nombreuses solutions possibles, mais tu restes sur ta position sans donner d'argument convainquant. J'appelle ça un troll. Donc je te pose la question : pourquoi aucune de ces solutions ne te convient ?

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 13:44:16

Ouais enfin bon... Je me vois mal demander à tous les gens auxquels je file mes scripts d'installer un interpréteur...

Il suffit d'embarquer l'installeur windows de Python dans ton propre installeur, paramétrer ton installeur pour vérifier si python est présent sur la machine cible dans la version qui t'intéresse, et installer tout seul la bonne version de Python si besoin.

De cette façon tu ne multiplies pas inutilement les interpréteurs, et tu ne demandes pas explicitement aux gens d'aller télécharger et installer une dépendance. Simple à utiliser et propre.

-
Edité par nohar 22 mai 2013 à 13:45:46

  • Partager sur Facebook
  • Partager sur Twitter
Zeste de Savoir, le site qui en a dans le citron !
Anonyme
22 mai 2013 à 14:07:45

D'accord d'accord... Donc si je cherche à créer des .exe en Python pour les partager je me fous le doigt dans l'oeil.

Déjà tout le monde n'est pas sous Windows, il y a des systèmes un peu plus hum pratiques aussi, ensuite il est très facile d'utiliser un empaqueteur comme py2exe ou un machin comme ça, et l'utilisateur n'y verra que du feu. Tout ça les gens te l'ont déjà dit.

Mais tu peux aussi utiliser Python pour toi, parce que scripter son système c'est bien, pour faire des graphiques, des calculs, ou tout simplement pour apprendre la programmation. On n'apprend pas à programmer pour faire des applications, en tout cas on ne devrait pas, parce que c'est contre-productif. On peut apprendre à programmer par curiosité, parce que ça permet de comprendre comment fonctionne un ordinateur, ça présente des problèmes rigolos à résoudre, ça fait travailler la tête, BREF c'est un vrai passe-temps pour les curieux — et Python n'est pas un trop mauvais choix pour qui veut apprendre à programmer. Tu peux très bien apprendre des choses avec Python et finir par utiliser un autre langage pour développer pour tes amis : tu n'auras pas perdu ton temps, bien au contraire.

Et puis tu peux aussi faire du web avec Python (rien à distribuer, tout le monde a déjà l'interpréteur HTML/JavaScript chez lui !), utiliser IronPython ou Boo qui compilent pour .NET, etc.

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 14:31:10

@dri1 a écrit:

Le problème n'est pas que tu n'es pas arrivé à utiliser cython, c'est que tu te permettes de faire un jugement sur l'utilité de Python alors que tu n'as visiblement même pas essayé toutes les solutions au faux problème que tu soulèves. On t'a donné de nombreuses solutions possibles, mais tu restes sur ta position sans donner d'argument convainquant. J'appelle ça un troll. Donc je te pose la question : pourquoi aucune de ces solutions ne te convient ?


Le truc c'est que actuellement je suis néophyte, et vous me balancez plein de termes et de logiciels à la figure (et je vous en remercie, puisque ça constitue une aide concrète), donc j'ai pas le temps de tout regarder et étudier...

J'ai pas eu le temps de regarder tous vos liens, je n'ai même pas compris tout ce que vous avez dit :o

Pour faire le point sur mon avis : je ne vois pas l'intérêt d'un langage (aussi puissant soit-il, et je le répète : j'adore Python car il offre une simplicité et une maniabilité excellentes) qui ne peut pas être partager facilement avec d'autres personnes (donc un intérêt de partage, je ne parle pas d'un intérêt personnel).

Sur ce je suis malade et l'on vient de me faire une prise de sang, je vais me reposer quelques heures... A plus tard, merci encore à tous ^^

-
Edité par Koshomatic 22 mai 2013 à 14:31:48

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 14:52:11

Pour faire le point sur mon avis : je ne vois pas l'intérêt d'un langage (aussi puissant soit-il, et je le répète : j'adore Python car il offre une simplicité et une maniabilité excellentes) qui ne peut pas être partager facilement avec d'autres personnes (donc un intérêt de partage, je ne parle pas d'un intérêt personnel).

Pour faire le point sur les réponses : tu te fourres le doigt dans l'oeil comme tu le disais si élégamment plus tôt, c'est très facile à partager. Sur ce, j'ai un café à boire avec un carré de chocolat noir à manger avec, à plus tard.

  • Partager sur Facebook
  • Partager sur Twitter
OCaml, un langage expressif et performant qui vous ferait du bien.
22 mai 2013 à 15:13:40

@Koshomatic : Un programme en Python n'est pas moins facilement partageable qu'un programme en Java, Perl, Bash, C ou C++. Donc ta remarque est pour le moins surprenante.

  • Partager sur Facebook
  • Partager sur Twitter
Zeste de Savoir, le site qui en a dans le citron !
22 mai 2013 à 15:26:13

Les langages compilé, comme le C, ont leurs problèmes aussi pour être partagés. Ils ne marchent que pour un seul système d’exploitation (Windows, Mac, Linux, ...). Les langages interprétés, comme Python ou Java, peuvent être exécuté par tout à condition d’avoir l’interpréteur.

AMHA, les programmes les plus facile à partager sont ceux en Java (tout le monde, ou presque, a Java sur son PC) et ceux en HTML/Javascript le web étant assez répandu. Quand je dis facile à partager, je veux dire qui ne pose pas trop de contraintes pour pouvoir être utilisé, un langage compilé nécessite d’avoir le bon système d’exploitation, python, d’avoir l’interpréteur. Certes Java et HTML/Javascript (même si c’est plus du web) nécessite aussi un interpréteur, mais ils sont bien plus courant.

-
Edité par fscorpio 22 mai 2013 à 15:26:56

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 16:53:50

Quand je dis qu'il n'est pas facilement partageable, j'entends bienvenue évidemment par là le fait que la personne qui reçoit le script doit installer un interpréteur, etc... En gros le fait qu'elle ne puisse pas lancer directement le script (à contrario, il me semble, du C++ pour reprendre l'exemple de nohar (une fois compilé, évidemment)).

Bon, je vais me faire un récap' du topic afin de tirer le fin mot de cette histoire.

-
Edité par Koshomatic 22 mai 2013 à 16:54:19

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
22 mai 2013 à 18:20:46

Poursuis ton apprentissage de la programmation avec le langage que tu veux, et après tu viendras relire toutes les réponses de ce thread. Bonne continuation, cela dit.

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 18:24:24

Koshomatic a écrit:

Quand je dis qu'il n'est pas facilement partageable, j'entends bienvenue évidemment par là le fait que la personne qui reçoit le script doit installer un interpréteur, etc... En gros le fait qu'elle ne puisse pas lancer directement le script (à contrario, il me semble, du C++ pour reprendre l'exemple de nohar (une fois compilé, évidemment)).

D'abord, ce n'est pas vrai, comme ça t'a déjà été répondu. Ensuite, installer un interpréteur, ça rentre clairement dans la catégorie « facile » (et comme ça t'a déjà aussi été répondu, tu peux même le faire avec l'installateurde ton programme, donc il n'y a même pas de prérequis supplémentaire pour l'utilisateur). Enfin, en C++, c'est pareil : si tu utilises une librairie, soit tu la fournis avec (éventuellement dans ton binaire... comme Py2exe), soit l'utilisateur doit déjà l'avoir.

  • Partager sur Facebook
  • Partager sur Twitter
OCaml, un langage expressif et performant qui vous ferait du bien.
Anonyme
22 mai 2013 à 18:35:15

Intérêts du Python:

-facile/rapide à installer

-facile/rapide à apprendre

-polyvalent

-stable

De sorte que de nombreux scripts serveurs ou simulation informatique l'utilise et'est pour cela qu'il est très utilisé dans le monde de la recherche (je ne sais pas si vous avez déjà vu un physicien programmer mais parfois c'est plutôt drôle donc quand ils ont entre les mains un langage simple, robuste et efficace ils sont contents).

Cela peut sembler surprenant pour le zéro de base (ce n'est pas péjoratif) qui a l'habitude de programmer mais pour certains le mot même leur donne la chair de poule alors quand ils écrivent un code qui ressemblent "pratiquement" à de l'anglais écrit (à nuancer bien entendu mais on a pas en python une fioriture de caractères/instructions supplémentaires pour la mise en forme du code) çà a tendance à les rassurer ^^

-
Edité par Anonyme 22 mai 2013 à 18:37:43

  • Partager sur Facebook
  • Partager sur Twitter
22 mai 2013 à 18:47:56

Tu peux aussi ajouter une communauté pertinente qui fait l'effort de lire avant de rép... ah non, pardon.

  • Partager sur Facebook
  • Partager sur Twitter
OCaml, un langage expressif et performant qui vous ferait du bien.
22 mai 2013 à 19:11:31

Okay je reprendrais tout ce topic ce soir au calme...

En tout cas, merci à tous de m'avoir éclaircis sur les bienfaits de Python, ça m'a beaucoup appris ! :)

Et surtout merci à vous tous de m'avoir "supporter" durant cette longue journée (en particulier PommeFramboise), je sais qu'expliquer des choses concrètes à un néophyte (qui a dit impatient ?) n'est pas toujours simple.

  • Partager sur Facebook
  • Partager sur Twitter