Pourquoi Python est le langage préféré pour le pi

9

Pourquoi le python est-il perçu comme le langage préféré pour contrôler et manipuler le Raspberry Pi?

Pourquoi le langage Python est-il choisi par rapport à d'autres langages de programmation comme PERL, etc. (qui sont inclus avec des distributions comme Raspbian)?

La question n'est pas orientée vers l'un d'entre eux, mais essaie simplement de trouver des mérites les uns par rapport aux autres par rapport à la framboise pi.

Chetan Bhargava
la source
5
Directement sur raspberrypi.org: "La Fondation Raspberry Pi recommande Python comme langue pour les apprenants. Cependant, toute langue qui compilera pour ARMv6 peut être utilisée avec Raspberry Pi; vous n'êtes donc pas limité à utiliser Python. C, C ++, Java , Scratch et Ruby sont tous installés par défaut sur le Raspberry Pi. " Ils le recommandent donc pour pratiquement aucune raison. Ils semblent avoir raté PERL sur cette liste, mais il est probablement vrai que Python est plus facile à détecter que PERL.
Ghanima
3
C'est totalement dénué de sens. Je crois que tout cela a à voir avec une seule phrase occasionnelle sur le site Web (cité ci-dessus). Parce que python est facile et populaire sur linux en général, c'est tout, mais en ce sens, ils auraient pu dire perl ou ruby. De toute façon, cela ne ferait aucune différence.
goldilocks
3
Je n'ai jamais utilisé Python, mais je connais le langage goto de ses programmeurs Linux à l'ancienne. C'est peut-être pourquoi ils recommandent cela. Je ne vois aucune autre raison. Bonne question cependant. Espérons que cela démystifiera tout. De plus, tout ce dont j'ai besoin pour compiler est en C.
Piotr Kula
2
Parce que Python est génial? ( xkcd.com/353 )
Utilisateur
2
Je programme en Python au travail, mais (essaie surtout) d'utiliser Perl partout ailleurs. Par exemple, j'ai écrit WiringPi :: API et RPi :: WiringPi spécifiquement pour pouvoir utiliser Perl sur mon Pis.
stevieb

Réponses:

10

Python a été conçu comme un langage d'enseignement.

Il est très facile de commencer et l'écosystème Python est très convivial pour les débutants [2]. Allez simplement consulter les archives pour la liste Python Tutor .

Des réponses comme celle-ci sont extrêmement courantes - en particulier pour les vampires non-aidants.

Je n'ai pas encore trouvé de communauté aussi accueillante et amicale que possible pour les nouveaux arrivants. De plus, il y a quelques années à PyCon, ils ont distribué des Raspberry Pi à tous les participants, de nombreux Pythonistas auront au moins un Pi qui tourne même s'il ne fait qu'exécuter XMBC;)

Et d'un point de vue spécifique à Pi, il est très très facile de commencer à contrôler les ports GPIO

# blink.py
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)

while True:
    GPIO.output(7,True)
    time.sleep(0.2)
    GPIO.output(7,False)
    time.sleep(0.2)

9 lignes et vous avez terminé. Tout ce qu'il faut pour exécuter ceci est sudo python blink.py- il y a très peu de choses que vous devez comprendre sur la compilation ou la liaison ou quoi que ce soit d'autre. Vous avez à peine besoin de comprendre quoi que ce soit sur la programmation.

De plus, si vous pensez au fait qu'ils ont deux options - ne rien recommander ou recommander quelque chose - une recommandation minimale d'une ligne pour Python est probablement la meilleure qu'ils pourraient faire. Quiconque ayant une préférence passera probablement dessus et ira dans la langue de son choix, et quiconque sans expérience aura (espérons-le) l'expérience la moins frustrante possible [3].


[2]: Cependant, je pense que Ruby est également très sympathique avec les nouveaux arrivants

[3]: Même la différence entre Python 2 et 3 n'est pas aussi douloureuse que ce que j'ai entendu dire que certains des problèmes se trouvent entre les versions de Ruby.

Wayne Werner
la source
1
L'inconvénient de l'utilisation de python avec gpio est que vous ne pouvez pas vraiment conduire les choses via des interruptions.
Καrτhικ
@ Καrτhικ semble que ce n'est plus vrai
Wayne Werner
4

Comme Ghanima l'a mentionné dans les commentaires:

Directement sur raspberrypi.org: "La Fondation Raspberry Pi recommande Python comme langue pour les apprenants. Cependant, toute langue qui compilera pour ARMv6 peut être utilisée avec Raspberry Pi; vous n'êtes donc pas limité à utiliser Python. C, C ++, Java , Scratch et Ruby sont tous installés par défaut sur le Raspberry Pi. " Ils le recommandent donc pour pratiquement aucune raison. Ils semblent avoir raté PERL sur cette liste, mais là encore, il est probablement vrai que Python est plus facile à détecter que PERL

La réponse semble être qu'ils ont arbitrairement sélectionné Python, étant plus récent et populaire par rapport à d'autres langages similaires.

Chetan Bhargava
la source
2

Eh bien, il existe d'autres systèmes d'exploitation disponibles pour le Raspberry Pi sur le site ROM qui nécessitent ou peuvent permettre une meilleure utilisation pour d'autres langues, mais la principale raison pour laquelle Python est préféré pour une utilisation sur le Raspberry Pi est parce qu'il s'agit d'un laboratoire sur ordinateur. puce où son plus pour un usage éducatif que tout ce que nous savons tous que le python est un langage assez facile à ramasser. Mais en disant que vous pouvez trouver des bibliothèques qui permettent des fonctionnalités et des livres sur la façon d'utiliser d'autres langues sur le raspberry pi comme c / c ++ par exemple.

Paria
la source
1

Je suppose qu'ils voulaient un langage courant qui pourrait figurer en bonne place dans une carrière d'ingénieur logiciel, des langages comme Java, C, Ada, Python, etc., etc.

Les langages comme Algol, Pascal, Perl, PHP, JavaScript, FORTRAN, BASIC, Ruby, Smalltalk, etc., etc. sont davantage des niches.

Que Python soit un choix judicieux ou non est sans objet. Il a été choisi.

Ma préoccupation est d'apprendre Python de manière non structurée, c'est ainsi que la plupart des utilisateurs de Pi apprendront. Je pense que cela doit vraiment être introduit dans la programmation des apprenants dans le cadre d'un cours structuré afin de décourager les mauvaises habitudes et d'expliquer les bonnes pratiques.

joan
la source
Le Pi n'est qu'un outil et n'est donc pas responsable que quelqu'un apprenne à coder de manière non structurée ou non. Il y a beaucoup de livres et de contenu dans cet "Internet" pour aider quiconque souhaite être aidé.
Ghanima
2
"Je suppose qu'ils voulaient un langage courant qui pourrait figurer en bonne place dans une carrière d'ingénieur logiciel" est certainement incorrect . Il y a probablement plus de lignes de FORTRAN encore utilisées que jamais écrites en python, il y a probablement 10 fois plus de gens qui vivent avec PHP que python, etc. etc. Stack Exchange lui-même est principalement ruby ​​et je pense que C #. Ils auraient tout aussi bien pu choisir quoi que ce soit dans l'une ou l'autre des listes ci-dessus si la raison était "quelque chose qu'un ingénieur logiciel pourrait fortement utiliser".
goldilocks
Tout à fait d'accord avec goldilocks. C # est mon langage de flux principal sur le Pi :) Je n'utilise pas du tout Perl ou Python. PHP juste parce qu'il n'y a pas encore d'IIS sous Linux.
Piotr Kula
SE est principalement .NET (C #) et exécute principalement IIS. Ils l'ont fait pour des raisons pragmatiques - toute l'équipe de développement d'origine était beaucoup plus compétente en .NET et dans l'environnement IIS. C'est du moins ce qu'ils disent sur certains articles de blog que j'ai lus.
Wayne Werner
Ici à l'avenir, le javascript n'est pas un langage de niche. C'est dans toutes les pages Web, à partir de toutes les autres pages Web.
YetAnotherRandomUser