Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Programmation : découvrez les sept raisons pour lesquelles vous devez apprendre le langage Python
Selon myTectra

Le , par Malick

455PARTAGES

20  0 
pourquoi utilisez-vous Python ?
Selon le cabinet myTectra, un spécialiste des solutions d'apprentissage, Python est le langage favori d'un très grand nombre de développeurs comparé à d'autres langages comme Java, PHP, C++, etc. Selon lui, cela est principalement dû à la clarté de ses lignes de code et à son efficacité. « Python est un vieux langage certes (la première version est sortie en 1990), mais il n'est pas plus vieux que Cobol ou Fortran . Donc, pourquoi le changer d'autant plus qu'il continue d'être efficace et qu'il existe plusieurs façons de l'améliorer », s'interroge myTectra. Ce dernier estime que la longévité en tant que telle est une bonne chose, car c'est signe de stabilité et de fiabilité.

Dans son analyse, myTectra soutient que beaucoup de développeurs ne considèrent pas Python comme une compétence nécessaire pour entrer dans le monde de la programmation ; cela parce qu'il est facile à apprendre. « Si vous êtes comme beaucoup de personnes qui ont commencé avec Java, C ou Perl, la courbe d'apprentissage de Python est pratiquement inexistante », a ajouté le spécialiste des solutions d'apprentissage.

Citant personnellement son cas, l'ingénieur en informatique Venkatesan affirme que son amour pour Python s'est développé au fil des années. En effet, il soutient qu'il lui a fallu plusieurs années d'apprentissage pour se rendre compte des nombreuses possibilités qu'offre ce langage. Cela dit, afin de convaincre les informaticiens de la nécessité d'apprendre Python, l'ingénieur Venkatesan présente ci-dessous les sept raisons pour lesquelles il est utile pour les développeurs d'apprendre le langage Python.

Python est facile à apprendre

Comparé à plusieurs langages de programmation actuellement disponibles, Python est de loin le plus facile à étudier. La syntaxe des lignes de code présente une certaine clarté, ce qui en facilite la lecture et la compréhension, même si vous n'êtes pas un expert en Python. Venkatesan soutient que l'apprentissage et l'enseignement de Python à travers des cas pratiques constituent une très bonne approche, car la syntaxe de Python obéit à moins de règles par rapport à d'autres langages. En effet, l'accent est principalement mis sur l'objectif à atteindre en exécutant votre code.

Python est un langage de choix, c'est-à-dire à usage général

Python est un langage de programmation interprété, interactif, orienté objet et de haut niveau à usage général. Selon l'ingénieur Venkatesan , Python est aujourd'hui le langage de programmation le plus populaire. Les développeurs ont aujourd'hui la latitude de faire de Python leur langage privilégié dans presque tous les domaines de l'informatique, y compris le développement Web, le cloud computing (AWS, OpenStack, VMware, Google Cloud, etc.), l'automatisation, les tests de logiciels, Big Data (traitement de gros volumes de données), Hadoop, etc.

Python permet de créer plus de fonctions avec moins de lignes de code

Python permet aux développeurs de créer des fonctions avec moins de lignes de code, ce qui ne serait pas le cas avec d'autres langages de programmation. C'est un langage facile à apprendre et avec la pratique, il devient possible de créer rapidement un jeu rudimentaire en deux jours. Un autre facteur qui fait de Python un langage de programmation intéressant pour les novices est sa lisibilité et son efficacité.


Python est un langage polyvalent et multiplateforme

« Python est actuellement âgé de 28 ans. Même s'il est plus vieux que beaucoup de mes lecteurs, il reste très intéressant, car il peut s'appliquer à peu près à tous les types de développement en l'occurrence la conception de logiciels, le développement Web, etc. », a affirmé l'ingénieur Venkatesan. Il ajoute qu'il est également possible d'utiliser Python pour gérer des infrastructures en local ou se trouvant dans le cloud, pour travailler sur des bases de données, pour créer des fonctions personnalisées intégrées aux logiciels d'analyse de données comme Hive ou Pig. Venkatesan soutient également que pour construire un outil à usage personnel, Python est un excellent choix.

« En résumé, investir un peu d'effort pour apprendre Python vous donnera des compétences qui ne feront que vous valoriser sur le marché de l'emploi », déclare Venkatesan.

Python dispose de l'un des gestionnaires de paquets les plus matures : PyPI

D'après Venkatesan, une fois que le langage est assimilé, l'utilisateur sera en mesure d'exploiter pleinement la plateforme. En effet, Python est soutenu par PyPi, un dépôt de plus de 85 000 modules Python contenant des scripts prêts à l'emploi. Ces modules fournissent des fonctionnalités à votre environnement Python local et permettent de résoudre divers problèmes relatifs notamment au fonctionnement des bases de données, à l'analyse de données, à la création de services Web RESTful, etc.

Pour rappel, PyPI (de l'anglais « Python Package Index ») est le dépôt tiers officiel du langage de programmation Python. Son objectif est de doter la communauté des développeurs Python d'un catalogue complet recensant tous les paquets Python libres. Il est analogue au dépôt CPAN pour Perl.

Python est un langage couramment utilisé dans la science des données

Selon Venkatesan, Python, à côté du langage R, est le langage le plus utilisé dans la science moderne des données. La preuve, les offres d'emploi pour lesquelles il est nécessaire d'avoir des compétences en Python sont plus nombreuses que celles qui nécessitent des compétences en R. Venkatesan ajoute que les compétences que vous développez en apprenant Python seront également assimilées à des compétences dans le domaine de l'analytique.

Python est multiplateforme et open source

Python est utilisable sur plusieurs plateformes et est open source il y a de cela plus de 20 ans. Si vous avez besoin d'un code qui fonctionne sur aussi bien Linux que Windows et MacOS, pensez à Python.

L'ingénieur informaticien en l'occurrence Venkatesan a également tenu à mettre en évidence la flexibilité du langage Python. Il rappelle qu'il existe plusieurs implémentations robustes de Python qui sont intégrées à d'autres langages de programmation. Parmi celles-ci, nous avons :

  • CPython, une version avec C. Pour rappel, CPython est l'implémentation de référence du langage Python. C'est un interpréteur de bytecode écrit en langage C ;
  • Jython, ou Python intégré avec Java. Ce dernier, anciennement nommé JPython, est un interprète Python écrit en Java et créé en 1997 par Jim Hugunin ;
  • IronPython qui est conçu pour être compatible avec .NET et C#
  • PyObjc, ou Python écrit avec le langage ObjectiveC ;
  • RubyPython, ou Python combiné avec Ruby.



En conclusion, Venkatesan affirme qu'il n'y a pas beaucoup de langages de programmation qui offrent la polyvalence et la simplicité de Python. « Que vous soyez nouveau ou expert en programmation, Python est quelque chose que vous devez savoir », a-t-il déclaré.

Source : myTectra

Et vous ?

Qu'en pensez-vous ?

Voir aussi

Le Stanford CS choisit le JavaScript comme langage d'initiation à la programmation en 2017, cela aux dépens de Java

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de wiztricks
Modérateur https://www.developpez.com
Le 01/05/2017 à 21:00
Salut,

Citation Envoyé par imikado Voir le message
il existe des solutions clés en main pour les windosiens (comme easyphp/wamp and co..) (je précise je suis sous GNU/Linux)
Dans WAMP/LAMP, le "P" est l'initiale de PHP, Perl ou Python. Donc en cherchant un peu vous allez trouver des tutos. pour configurer [L|W]AMP avec Python (même si cette "stack" me semble un peu dépassée depuis 2004).

- W
5  0 
Avatar de Zefling
Membre expert https://www.developpez.com
Le 01/05/2017 à 20:53
L'exemple est un peu bidon... En PHP :

Code PHP : Sélectionner tout
echo "Hello, world!";

J'ai trouvé un autre langage qui fait la même chose en une ligne.

Ce qui me pose problème en Python, c'est quand je tombe sur ce genre de code (pris sur la page de Wikipédia) :

Code Python : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def queens(n): 
    a = list(range(n)) 
    up = [True] * (2 * n - 1) 
    down = [True] * (2 * n - 1) 
    def sub(i): 
        for k in range(i, n): 
            j = a[k] 
            p = i + j 
            q = i - j + n - 1 
            if up[p] and down[q]: 
                if i == n - 1: 
                    yield tuple(a) 
                else: 
                    up[p] = down[q] = False 
                    a[i], a[k] = a[k], a[i] 
                    yield from sub(i + 1) 
                    up[p] = down[q] = True 
                    a[i], a[k] = a[k], a[i] 
    yield from sub(0) 
  
sum(1 for a in queens(8))
Déjà, on peut oublier l'indentation automatique. Mais en plus, je ne trouve pas ça très lisible, surtout la dernière ligne du def. Il faut vraiment être certain de son indentation, sinon ça ne fera pas du tout la même chose.

De plus, avoir un code trop dense est parfois aussi une cause de problème de lisibilité par d'autres. Je suis tombé sur des choses merveilleuses faites en une ligne, et le résultat est que je trouve une expression régulière complexe parfois plus compréhensible.

Après, j'avoue que je suis trop habitué à tout ce qui formatage type qui ressemble à du C (PHP, Java, JS, TS, HaXe et même CSS).
4  1 
Avatar de RyzenOC
Inactif https://www.developpez.com
Le 01/05/2017 à 21:24
il est aussi installé de base sur quasi toute les distrib linux. C'est la raison principale qui fait que je l'avais choisit pour remplacer les scripts bash.

Couteau suisse des langages, il ces tous faire : web, client léger, client lourd, jeux vidéos...
Il s’intègre très bien à d'autre langages/environnement, par exemple on peut l’utiliser dans blender, maya, on peut mette de l'opencl dans ces scripts pythons pour certains calcules lourds...etc.

Il a 3 défauts selon moi :

Les performances, je le compare pas à du C hein, mais à PHP7 par exemple.

Pour le multiplate-forme sur mobile j'ai pas trouvé grand chose, sur IOS que dalle et sur android j'ai pu trouvé 2-3 trucs mais j'ai laissé tombé je comprenais rien, si quelqu'un avait des infos/liens sur le sujet.

La programmation multicœurs qui est vite laborieuse, le langage n'étant pas prévue pour cela à la base, il y'a beaucoup de limitations. Le partage d'un objet entre 2 processus par exemple est très complexe. Si quelqu'un a des solutions simple la dessus sa m’intéresse,

Voici la solution que j'utilise, la seul que j'ai trouvé la plus simple, efficace et souple, pour le coup en C c'est 1000 fois plus simple.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
  
import multiprocessing as m 
import pickle 
  
#code "universelle" 
class Store: 
    pass 
  
class Shareable: 
    def __init__(self, size = 2**10): 
        object.__setattr__(self, 'store', m.Array('B', size)) 
        o = Store() # This object will hold all shared values 
        s = pickle.dumps(o) 
        store(object.__getattribute__(self, 'store'), s) 
  
    def __getattr__(self, name): 
        s = load(object.__getattribute__(self, 'store')) 
        o = pickle.loads(s) 
        return getattr(o, name) 
  
    def __setattr__(self, name, value): 
        s = load(object.__getattribute__(self, 'store')) 
        o = pickle.loads(s) 
        setattr(o, name, value) 
        s = pickle.dumps(o) 
        store(object.__getattribute__(self, 'store'), s) 
  
def store(arr, s): 
    for i, ch in enumerate(s): 
        arr[i] = ch 
  
def load(arr): 
    l = arr[:] 
    return bytes(arr) 
  
  
#tes objects ou structure a partager, voici un exemple 
  
class Foo(Shareable): 
    def __init__(self): 
        super().__init__() 
        self.f = 1 
        self.f2 = 1 
        self.mylist=[0,1,2,3,4,5,6] 
  
    def foo(self): 
        self.f += 1 
        """while True: 
            self.f2+=1""" 
  
def Otherprocess(s): 
    print("Process2 :") 
    print(s.f) 
    s.mylist=[0] 
    """while True: 
        s.f2+=1""" 
  
if __name__ == '__main__': 
    import multiprocessing as m 
    import time 
    s = Foo() 
    print(s.f) 
    p = m.Process(target=s.foo, args=()) 
    p.start() 
    #p.join() 
    p2 = m.Process(target=Otherprocess, args=(s,)) 
    p2.start() 
    time.sleep(1) 
    print("Process1 :") 
    print(s.f) 
    print(s.mylist)
3  0 
Avatar de martopioche
Membre éclairé https://www.developpez.com
Le 02/05/2017 à 2:06
Citation Envoyé par imikado  Voir le message
D'ailleurs actuellement, pour faire du python en production on peut utiliser quoi ? il y a un module sur apache, nginx ou autre ?

mod_wsgi pour Apache, wsgi est intégré à Ngnix depuis la 0.8.40…

il existe des solutions clés en main pour les windosiens (comme easyphp/wamp and co..) (je précise je suis sous GNU/Linux)

Potentiellement Winpython.

Citation Envoyé par Zefling  Voir le message
L'exemple est un peu bidon... En PHP :

Code PHP : Sélectionner tout
echo "Hello, world!";

J'ai trouvé un autre langage qui fait la même chose en une ligne.

Voilà, bidon… Quand on trouvera un autre langage qui propose des features type listes en intension (ok, Haskell puisque c'en est inspiré… ) ou interprétation booléenne des types (je ne vais pas faire toute la liste), bah on en reparle…

Déjà, on peut oublier l'indentation automatique.

Pourquoi ?

Mais en plus, je ne trouve pas ça très lisible, surtout la dernière ligne du def.

Oui enfin, autant le nommage des variables ne rend pas les choses faciles (et ça n'a rien à voir avec Python), autant ne pas comprendre la dernière ligne signifie surtout ne pas savoir ce qu'est un yield from et ça n'a rien à voir avec la lisibilité.

Il faut vraiment être certain de son indentation, sinon ça ne fera pas du tout la même chose.

Exactement comme être certain de placer une instruction avant ou après des accolages fermantes dans la plupart des autres langages…

De plus, avoir un code trop dense est parfois aussi une cause de problème de lisibilité par d'autres.

Quand on présente Python comme un langage qui permet d'écrire avec moins de ligne, ce n'est pas en étant plus dense (d'ailleurs bien au contraire) mais en ayant une syntaxe qui permet d'être moins verbeux.

Citation Envoyé par RyzenOC  Voir le message
il est aussi installé de base sur quasi toute les distrib linux. C'est la raison principale qui fait que je l'avais choisit pour remplacer les scripts bash.

Ce serait un argument merveilleux si la plupart des distribs Linux se rappellent qu'on est en 2015 et qu'il serait temps de mettre Python 3 par défaut…*Ah oui, on n'est même plus en 2015…

Les performances, je le compare pas à du C hein, mais à PHP7 par exemple.

C'est indiscret si je demande quelle est votre contrainte de temps ?

Pour le multiplate-forme sur mobile j'ai pas trouvé grand chose, sur IOS que dalle et sur android j'ai pu trouvé 2-3 trucs mais j'ai laissé tombé je comprenais rien, si quelqu'un avait des infos/liens sur le sujet.

D'après Guido Van Rossum lui même de l'époque où il était chez Google et donc le retour de Google : Android, c'est Java, point.

pour le coup en C c'est 1000 fois plus simple.

Tombe bien, c'est l'idée…

Citation Envoyé par imikado  Voir le message
1. a t -on comme pour php des solutions simple pour avoir un environnement de developpement (easyphp/wamp sous windows qui s'installe en 2 clic)

Pourquoi faire avec Python ???

2. en production, c'est quoi l'équivalent de apache-php / nginx-php ?

cf même réponse plus haut…
5  2 
Avatar de hotcryx
Membre extrêmement actif https://www.developpez.com
Le 02/05/2017 à 13:32
Citation Envoyé par Zefling Voir le message

De plus, avoir un code trop dense est parfois aussi une cause de problème de lisibilité par d'autres.
Je te comprends, le For pue sévère si on a 2 pages de codes.

Décompose en fonctions/procédures
3  0 
Avatar de Aurelien.Regat-Barrel
Expert éminent sénior https://www.developpez.com
Le 03/05/2017 à 2:43
Citation Envoyé par RyzenOC Voir le message
La programmation multicœurs qui est vite laborieuse, le langage n'étant pas prévue pour cela à la base, il y'a beaucoup de limitations. Le partage d'un objet entre 2 processus par exemple est très complexe. Si quelqu'un a des solutions simple la dessus sa m’intéresse,
Jette un oeil à Go : c'est un langage qui s'apprend vite quand on vient de Python, qui est compilé en un exécutable autonome (gros avantage sur Python à mon avis) dont les performances peuvent soutenir une comparaison avec C, et qui intègre nativement une abstraction pour la concurrence (les goroutines).

Citation Envoyé par CodeurPlusPlus Voir le message
Du Big Data traité en Python ? Cela ne doit pas être si big...
Pour le big data je sais pas, mais pour les data science Python est clairement un leader. Typiquement Python est utilisé comme wrapper sur des libs écrites en C ou C++ : numpy, igraph, tensorflow, sql... donc on peut avoir de bonnes perf si on l'utilise comme glue pour combiner des briques optimisées. C'est d'ailleurs un domaine où ce langage excelle.

Ce que je lui reproche c'est la galère à redistribuer une application développée avec (lourdeur d'un virtual env, dépendances qui pètent au runtime, ...). Cela dit grâce à Docker (et Jupyter) ça va mieux... sous Linux du moins!
3  0 
Avatar de RyzenOC
Inactif https://www.developpez.com
Le 05/05/2017 à 15:01
Citation Envoyé par jean12 Voir le message

Une chose qui faciliterait davantage la tâche des developpeurs pyhton serait selon moi l'uniformisation des branches 2.x et 3.x.
Non ce qu'il faut c'est imposer l'abandon de Python 2.x
Toute les distrib linux se trimballe encore python 2.7... ils pourrais mettre à jours leurs scripts python depuis le temps... Moi j'ai fait cette effort sa fait 3ans et j'en avais des programmes codé en python 2. Donc ne me dite pas que c'est impossible.
3  0 
Avatar de imikado
Rédacteur https://www.developpez.com
Le 01/05/2017 à 20:35
Citation Envoyé par Malick SECK Voir le message

Selon le cabinet myTectra, un spécialiste des solutions d'apprentissage, Python est le langage favori d'un très grand nombre de développeurs comparé à d'autres langages comme Java, PHP, C++, etc. Selon lui, cela est principalement dû à la clarté de ses lignes de code et à son efficacité.
Je suis désolé, mais autant pour java,c# qui sont des langages précompilés, ou c/c++ sont des langages compilés sont "forcément" plus verbeux, mais php ...

J'aimerai bien voir un comparatif avec php qui est un des langages les plus faciles à apprendre, de plus pour faire du web...
D'ailleurs actuellement, pour faire du python en production on peut utiliser quoi ? il y a un module sur apache, nginx ou autre ?
il existe des solutions clés en main pour les windosiens (comme easyphp/wamp and co..) (je précise je suis sous GNU/Linux)
5  3 
Avatar de martopioche
Membre éclairé https://www.developpez.com
Le 02/05/2017 à 2:39
Citation Envoyé par abbe2017 Voir le message
non ! la facilité dépend des langages qu'on a déjà abordés avant.
Sauf que tout le monde n'a pas fait de manière innée un autre langage avant, et du point de vue pédagogique, Python avec Swift est le langage qui offre le meilleur contexte d'enseignement.

Si on s'adresse à des développeurs avec un vécu, j'admet que la résistance a été d'une part que le langage ne permet pas une copie conforme des sources de son langage de prédilection et d'autre part qu'on passe sur un langage dynamique et que c'est la panique car le compilateur était utilisé en tant que validateur…

mais si tu présentes Python a quelqu'un qui vient d'un langage à EDI/Rad, il te dira "c'est chiant", quand-esct qu'on arrive enfin à la ligne qui créer une interface graphique et qui gère l'accès à la base de données.
"EDI/Rad" à ma connaissance n'est pas un langage.

ps : je suis tjrs à la recherche d'un RAD/EDI à base de python (genre un Visual Python .. , si qqun a des infos)
Et il n'y en aura certainement jamais car Python est un langage interprété et dynamique. J'aimerai bien voir les concepts de développement d'un outil "RAD" qui permettraient d'exploiter le duck typing…

c'est usant et assez stupide de la part de l'auteur de cet article de mettre en valeur le fait qu'on peut en faire plus avec moins de ligne de code car ça rend le code illibile et plus difficule à débugger tellement en une ligne de code (avec des fonctions dont le nom fait 2 ou 3 caractères) mal nommées.Allez donc débugger le code d'une autre personne... et vous verrez bien que ce n'est pas une qualité de pouvoir faire en une ligne de code quelque chose d'apparement "puissant" (puissant dans le sens marketing stupide du terme)
Les mauvaises pratiques ne sont pas à mettre sur le dos du langage. Un nom de fonction avec 2/3 caractères n'est d'ailleurs pas pep-8 complient, comment se fait-elle qu'elle ai passé l'AQ ?

euh...là étrangement en 10ans, j'ai jamais eu affaire à manipuler cela. à part installer python via la distrib deb et choisir les bons paquets (apt-get install...etc), je n'ai pas plus d'expérience à apporter dessus.
Je présume une erreur de quote et que la remarque était sur PyPI. Avec les gestionnaires de paquets système, comment gériez vous les incompatibilités entre 2 projets pour le dev ? Pour la mise en prod ? Quels étaient vos process lorsqu'un développeur rejoignait vos projets ? Vous n'avez jamais entendu parler en 10 ans de pratique des virtualenvs et des pip requirements files ?

il parraît que c'est vrai, mais je crois que ça vient du lobby des scientifiques à qui ont apprenait python dans la section math sup/inso/spé... donc je ne pense pas que ce soit pour une cause réelle et sérieuse.
Je suis bio-informaticien de formation, à l'époque, le langage qui avait le vent en poupe était Perl pour le "script" et Java pour les applications plus lourdes (en plus du C pour les applications à performance). Aujourd'hui, ceux qui utilisaient Perl sont passé à Python pour des questions d'efficacité. Dans le domaine de l'élec/microelec, Python prend de plus en plus de place du fait des outils comme Numpy, Scipy ou plus généralement Anaconda qui permettent de s'affranchir de la lourdeur d'un Mathlab. Mais on peut préférer une théorie du complot…

- c'est noir : bcp trop d'éditeur mal foutu déprimant : vi,vim... de très rares (et tardif) bon éditeur (type EDI sans être rAD) sont venu après mais payant... Ces écrans noirs, au final ça déprime...
Et pourtant, passer sur un PyCharm avec le thème Darcula a le bénéfice d'être beaucoup plus reposant pour les yeux…

- le débuggage : merdique , désolé mais les messages d'erreurs sont toujours à 15000 lignes de la ligne de code concernés, surtout quand tu utilises bcp de lib/paq/imports
Enfin, ça c'est le principe d'une stack-trace… La capture des erreurs, les tests-u, le shell intéractif sont autant d'outils qui permettent justement d'être efficace sur ces phases.

- trop de variances de version/paquets posant de sacrés problèmes de mise à jour
Justement, avec des virtualenvs et pip, on contrôle ce que l'on fait et en général ça passe assez bien…
3  1 
Avatar de lulu7
Inactif https://www.developpez.com
Le 02/05/2017 à 8:09
Pourquoi faire avec Python ???
Pourquoi pas ?
5  3