OVH Cloud OVH Cloud

100 % multiplate-formes ?

5 réponses
Avatar
Vent d'Est - East Wind
voila je suis très intéressé par python pour commencer a apprendre a
programmer

j aimerais avoir vos avis sur quelques eclaircissemnt ,
d'apres ce que j ai lu le python est très portable , des lors est ce que
ca signifie que si j'ecrit une fois du code , je peux le reutiliser
dans un autre environnemnt que celui initial ?
comme je travail sur les 3 plateformes (linux , windows et mac os x , et
meme parfois mac os classic )
j aimerais par exemple ecrire une fois un soft sans devoir le réécrire
chaque fois que je change de plate forme

d autre part , il y a encore le fait que si je fait une interface
graphique je dois surement aussi faire attention a ce que je puisse la
porter sur les diffenrentes plate forme (enfin je suppose )

en quelques mots en quoi dois je faire attention pour que mon soft soit
100 % portables ??

quels sont les conseils en matieres de library graphiques respectant ces
critères ?? comment choisir la plus adpatés ?
(j ai vue qu'il y avait GTK , wxwindow , tkinter )

merci d'avance de vos réponse


vent d est

5 réponses

Avatar
Tibi
Vent d'Est - East Wind wrote:

ca signifie que si j'ecrit une fois du code , je peux le reutiliser
dans un autre environnemnt que celui initial ?


t'as tout compris

d autre part , il y a encore le fait que si je fait une interface
graphique je dois surement aussi faire attention a ce que je puisse la
porter sur les diffenrentes plate forme (enfin je suppose )


Il faut choisir une bibliothèque graphique portée sur tous les systèmes
cibles.
Ensuite il n'y a rien à porter.

en quelques mots en quoi dois je faire attention pour que mon soft soit
100 % portables ??


Ne pas utiliser de bibliothèque spécifique à un système. Attention toutes
les libs standards Python ne sont pas disponibles sur tous les OS.

quels sont les conseils en matieres de library graphiques respectant ces
critères ?? comment choisir la plus adpatés ?
(j ai vue qu'il y avait GTK , wxwindow , tkinter )


Il y a aussi Qt.
Le choix d'un toolkit graphique c'est un peu une question religieuse /
trollesque donc je te laisse faire ton choix.

Avatar
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle.
Bonjour !

Bien que la fonction "abs(" existe dans Python, la portabilité absolue
n'existe pas.

En clair tous les langages sont "plus-ou-moins" (non)-portables. Et, plus le
projet est complexe (plus il gère d'éléments différents), plus le risque de
non-portabilité est élevé. Par exemple, l'utilisation d'un GUI, qui peut
être disponible sur une plateforme, et pas sur une autre.
De plus la portabilité n'est pas garantie, même pour une plate-forme unique.
Ainsi un logiciel qui exploiterait un socket TCP/IP sous windows, ne
fonctionnera pas, sur une autre machine windows qui utiliserait NetBeui, à
la place de TCP/IP.

Ceci dit, Python fait partie des langages les mieux adaptés au développement
multi-plateformes.

Le mieux, à mon avis, est de pouvoir tester le développement sur les
différentes plateformes cibles, DURANT LE DEVELOPPEMENT.



Bonne journée
--
Michel Claveau
Avatar
Loïc Joly
Michel Claveau - abstraction méta-galactique non triviale en fuite
perpétuelle. wrote:

Le mieux, à mon avis, est de pouvoir tester le développement sur les
différentes plateformes cibles, DURANT LE DEVELOPPEMENT.


Ca me fait penser à une phrase. Un code ne peut être dit portable qu'à
partir du moment où il a été porté.

--
Loïc

Avatar
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle.
'soir !

Un code ne peut être dit portable qu'à partir du moment où il a été
porté.



C'est terriblement vrai. Il faut aussi trouver un porteur...


Michel Claveau



Avatar
Bruno Desthuilliers
Vent d'Est - East Wind wrote:
voila je suis très intéressé par python pour commencer a apprendre a
programmer

j aimerais avoir vos avis sur quelques eclaircissemnt ,
d'apres ce que j ai lu le python est très portable , des lors est ce que
ca signifie que si j'ecrit une fois du code , je peux le reutiliser
dans un autre environnemnt que celui initial ?


En bref : ça dépend du code.

En plus long : le runtime Python (aka interpréteur aka VM aka etc...) a
été porté sur un grand nombre de plateforme (cf python.org pour savoir
lesquelles...). Donc, théoriquement, le code python peut être interprété
sur toutes ces plateformes. Après, certaines bibliothèques n'existent
que pour certaines plateformes, ce qui restreint d'autant la portabilité
du code utilisant ces bibliothèques...

comme je travail sur les 3 plateformes (linux , windows et mac os x , et
meme parfois mac os classic )
j aimerais par exemple ecrire une fois un soft sans devoir le réécrire
chaque fois que je change de plate forme


Une méthode très simple (enfin...) et éprouvée est de bien séparer la
partie portable des parties spécifiques, en encapsulant les parties
spécifiques dans des modules ayant une API commune et autant
d'implémentations que nécessaire.

d autre part , il y a encore le fait que si je fait une interface
graphique je dois surement aussi faire attention a ce que je puisse la
porter sur les diffenrentes plate forme (enfin je suppose )


Tu suppose bien.

en quelques mots en quoi dois je faire attention pour que mon soft soit
100 % portables ??


Lire la doc des bibliothèques utilisées, éventuellement encapsuler les
parties non-portables (cf ci-dessus...). Et of course tester sur toutes
les plateformes cibles.

quels sont les conseils en matieres de library graphiques respectant ces
critères ?? comment choisir la plus adpatés ?
(j ai vue qu'il y avait GTK , wxwindow , tkinter )


PAQJS, wxwindows (X11/motif, X11/GTK+, Win32, MacOS X) et tk sont les
plus portables. Choix à faire selon la complexité de l'UI et tes
préférences personnelles.

Le mieux est toutefois de séparer le 'moteur' (la logique applicative)
de l'UI, de façon à pouvoir changer d'UI sans devoir réécrire le moteur...

Une (autre ?) solution est d'utiliser une interface Web, certes moins
riche et plus contraignante (du point de vue développement) qu'un
toolkit GUI, mais assurément plus portable...

HTH
Bruno