Maison > Article > développement back-end > Pourquoi Python est-il multiplateforme ?
La raison pour laquelle Python peut être multiplateforme : le code source est multiplateforme ; les instructions Python seront finalement converties en un jeu d'instructions en langage C, puis le jeu d'instructions en langage C sera compilé en code machine et enfin courir. Le multiplateforme est limité : 1. Il ne peut y avoir rien de spécial pour Windows 2. La méthode d'encodage doit être compatible ;
Le concept multiplateforme est un concept important dans le développement de logiciels, qui ne dépend pas du système d'exploitation ou de l'environnement matériel.
Une application développée sous un système d'exploitation peut toujours fonctionner sous un autre système d'exploitation. Relativement parlant, si un certain langage informatique peut être hautement multiplateforme sans modifier le code, alors le langage sera plus abstrait et le contrôle matériel sera moindre, et il ne convient que pour développer des systèmes modèles hautement abstraits. Par exemple, Java, Delphi, Yi Language et Python sont tous multiplateformes. Ils pourront être développés, exécutés et maintenus sous divers systèmes.
La plupart des langages informatiques sont multiplateformes dans un sens absolu : parce qu'ils envoient des instructions au processeur de manière lisible par l'homme, il n'est pas nécessaire de s'appuyer sur un quelconque système. Mais si vous souhaitez utiliser la boîte à outils des composants du système pour créer une nouvelle interface utilisateur graphique (GUI), vous pouvez utiliser des fonctions API ou des classes de bibliothèque dans le système spécifique du développeur. Bien que C++ soit multiplateforme, les programmes C++ qui utilisent l'API Win32 sous Windows ne peuvent généralement pas être compilés sur les machines Unix. Différents compilateurs interprètent également différemment les spécifications du langage. Dans ce cas, le programme doit être pris en compte avant de construire pour différents systèmes.
Certains langages tels que Java ont réalisé dès le début qu'ils devaient fonctionner sur différentes plates-formes, c'est pourquoi le multiplateforme a été implémenté dans l'environnement linguistique local de leurs plates-formes. Par exemple, Java peut être utilisé sur plusieurs plates-formes précisément parce que la bibliothèque Swing est implémentée sur de nombreuses plates-formes. De même, l'accès aux fichiers multiplateformes est possible car il existe des bibliothèques pour l'accès aux fichiers sous les plates-formes respectives. Par analogie, divers problèmes multiplateformes nécessitent la résolution de leurs propres bibliothèques locales. Le framework wxWidgets est une bibliothèque multiplateforme qui fournit de nombreuses solutions différentes en fonction de différents problèmes multiplateformes ; il existe de nombreuses bibliothèques similaires et les bibliothèques correspondantes peuvent être utilisées en fonction du développement multiplateforme dans différents langages.
Il est très peu probable de fournir et de tester des versions compilées pour chaque système d'exploitation et CPU ; les logiciels open source permettent aux utilisateurs de compiler eux-mêmes le code objet, de sorte que l'aspect plate-forme transfrontalier soit meilleur. De même, les langages interprétés, ou les langages qui nécessitent des machines virtuelles, sont plus conformes aux exigences multiplateformes, car les utilisateurs doivent également les compiler eux-mêmes. La machine virtuelle Java de Sun, Hotspot, ne fournit que des fichiers binaires compilés pour quelques plates-formes, mais pas pour toutes. Par exemple, Sun ne prend en charge que la plate-forme i386 pour GNU/Linux, mais si vous exécutez Linux sur un ordinateur PowerPC ou SPARC, vous devez compiler vous-même le code machine local ou utiliser un logiciel tiers pour exécuter des programmes Java.
De nombreuses API (Application Programming Interfaces) dépendent de la plate-forme. OpenGL peut être considéré comme multiplateforme car il ne dépend d'aucun système d'exploitation, architecture de processeur ou marque de périphérique graphique spécifique. Des API spécifiques à la plate-forme peuvent être créées en tant que couches de compatibilité sur d'autres systèmes, telles que les bibliothèques WINE, afin que les programmes Windows puissent s'exécuter sur les systèmes UNIX.
De plus, de nombreux langages de programmation ont des extensions et des middlewares multiplateformes, de sorte que les programmeurs peuvent compiler/exécuter sur différentes plateformes avec seulement quelques modifications mineures au même code source, comme Qt et wxWidgets. .
Que peut-on faire en Python sur toutes les plateformes ?
Parce que Python convertit finalement ces propres instructions en un jeu d'instructions du langage C, puis compile le jeu d'instructions du langage C en code machine puis l'exécute C'est pourquoi les performances de Python La raison de la différence (. bien sûr, il existe de nombreuses façons d’accélérer).
Bien sûr, il y a des limitations :
1. Il ne peut y avoir rien de spécial pour Windows
2.
Prend en charge les plates-formes grand public courantes, telles que AIX, HPUX, Solaris, Linux, Windows, etc. Les plates-formes Unix et Linux courantes, à l'exception de Windows, ont toutes Python natif, mais la version est généralement inférieure. Concernant le multiplateforme, tout comme les autres langages multiplateformes, il convient de noter que certains modules individuels sont uniques à une seule plateforme, mais les performances multiplateformes globales sont toujours très bonnes. Il n'est pas nécessaire d'écrire plusieurs ensembles de code. pour s'adapter à plusieurs plateformes.
Mais cela ne veut pas dire qu'il n'y a aucune restriction : d'une part, les fichiers intermédiaires .py, .pyc et .pyo d'une même version sont multiplateformes, d'autre part, les PC et les terminaux mobiles, tels que les téléphones mobiles et les Pads, ne peuvent pas être multiplateformes (voir l'élément suivant pour la raison enfin, ils ne peuvent pas traverser les architectures de processeurs, telles qu'Intel et ARM, 64 bits et 32 bits) ;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!