IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: pourquoi utilisez-vous Python ?

Votants
49. Vous ne pouvez pas participer à ce sondage.
  • Parce qu'il est facile à apprendre

    29 59,18%
  • Parce que Python est un langage de choix, c'est-à-dire à usage général

    25 51,02%
  • Python permet de créer des fonctions avec moins de lignes de code

    18 36,73%
  • Python est un langage polyvalent

    28 57,14%
  • Python dispose de l'un des gestionnaires de paquets les plus matures : PyPI

    17 34,69%
  • Python est un langage couramment utilisé dans la science des données

    23 46,94%
  • Python est multiplateforme et open source

    34 69,39%
  • Autres (précisez)

    0 0%
  • Sans avis

    3 6,12%
Sondage à choix multiple
Python Discussion :

Programmation : découvrez les sept raisons pour lesquelles vous devriez apprendre le langage Python


Sujet :

Python

  1. #1
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 133
    Points : 83 972
    Points
    83 972
    Billets dans le blog
    15
    Par défaut Programmation : découvrez les sept raisons pour lesquelles vous devriez apprendre le langage Python
    Programmation : découvrez les sept raisons pour lesquelles vous devez apprendre le langage Python,
    selon myTectra

    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é.

    Nom : Sans titre.png
Affichages : 124277
Taille : 156,7 Ko

    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.


    Nom : pasted image 0.png
Affichages : 74916
Taille : 51,7 Ko

    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
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    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)
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Expert confirmé Avatar de Zefling
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 173
    Points : 4 686
    Points
    4 686
    Par défaut
    L'exemple est un peu bidon... En PHP :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    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 - Visualiser dans une fenêtre à part
    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. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    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
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    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 - Visualiser dans une fenêtre à part
    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)

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Pourquoi ne pas donner de nom "clé en main" mysql ou autre: posgresql and co ?

    La question:
    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)
    2. en production, c'est quoi l'équivalent de apache-php / nginx-php ?
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    (même si cette "stack" me semble un peu dépassée depuis 2004).

    - W
    C'est quoi la stack "actuel" de SGBD en 2017 ?

    En opensource (et multi plateforme): à part mysql/mariadb et eventuellement postgresql (moins accessible pour les débutants)...
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  8. #8
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    Par défaut
    Du Big Data traité en Python ? Cela ne doit pas être si big...

    Enfin, tant qu'on ne cherche pas à nous faire croire qu'un jeu AAA ou qu'un logiciel de traitement vidéo en temps réel peut être entièrement codé en Python...

  9. #9
    Membre confirmé
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Février 2017
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 189
    Points : 476
    Points
    476
    Par défaut mon avis de 10ans
    bonjour,

    j'en ai fait pendant 10ans, du 2.x, 2.3,2.5 et 3.0.x et je n'en fait plus depuis 3ans.
    Mon avis :

    Python est facile à apprendre
    non ! la facilité dépend des langages qu'on a déjà abordés avant.
    Si on a fait que du VB ou de la prog en EDI à obj graphique (jbuilder,windev, les RaD...etc) , python est très difficile à apprendre.
    Si on a fait du java, Python est facile à apprendre comme un bonbon.

    Après je pense aussi que tous les langages sont faciles à apprendre dès l'intant où :
    - l'on a une doc et qu'ON LA LIT !
    - l'on a des exemples en difficulté croissant
    -l'on a un bon éditeur / eDI
    -l'on a un bon ordi qui ne dégoute pas tellement il rame ou bug ou plante
    -l'on a une bonne config d'install standart
    -l'on a un super forum pour poser des questions naises et qu'on ne se fait pas rétorquer ("t'as pas lu la doc ? t'as pas cherché sur Google avant ?)
    -l'on ne compte pas le temps et qu'on a la passion d'apprendre et qu'il n'y a rien d mieux à faire ou à regarder à la télé
    -l'on sait lire et écrire un autre autre langage (français ou anglais...)

    Python est un langage de choix, c'est-à-dire à usage général
    100% d'accord, on en touve partout. j'ajouterai que c'est même un langage bien agréable dans les soft de cao/dao (3d animation, maya..etc).
    j'aurai envi de dire aussi qu'on en trouve tellement partout qu'il a les mêmes problèmes que le c/c++. tu as beau avoir 10ans d'expérience, en entretien d'embauche tu es recalé car tu n'a pas d'expérience avec la lib/framework/edi que le recruteur -incompétent- exige dans son offre d'emploi

    Python permet de créer plus de fonctions avec moins de lignes de code
    oui et non.
    oui car c'est vrai in finé.
    non car avant d'y arrivé il faut avoir une énorme connaissance des packages/lib/import à incoporer et maitriser dès le départ.
    si tu présentes Python à un bleu (qui n'a fait que du basic ou du pascal), il sera peut-être d'accord.
    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.

    ps : je suis tjrs à la recherche d'un RAD/EDI à base de python (genre un Visual Python .. , si qqun a des infos)


    Python permet de créer plus de fonctions avec moins de lignes de code
    oui je sais le cite deux fois mais ça m'exaspère ce que je vais dire, alors je le mets en exergue.
    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)
    J'en reviendrai presque à regretter le défunt Cobol qui lui, nécessitait bcp de lignes de code pour pas grand chos au final.... ;-)

    Python est un langage polyvalent et multiplateforme
    vrai à 100%
    attention toutefois aux putains de retour à la ligne différent entre un script linux et ios et win... (désolé d'être grossier
    mais ça cause des bug très chiant à trouver et corriger)

    Python est un langage polyvalent et multiplateforme
    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.

    Python est un langage couramment utilisé dans la science des données
    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.

    Python est multiplateforme et open source
    pour le côté multiplat, j'ai déjà fait ma critiq plus haut.
    par contre Opensource ne veut pas dire "tout est gratuit et libre et exploitable" après 10ans de taf, j'ai mainte fois vu des script payants commerciaux (soit la lib/paquet payant, soit le support payant, soit la doc payante, soit l'upgrade payante et même la mise à disposition à condition de l'utilisation en uplink (en ligne only), interdit de l'avoir en offline)


    qq ptites choses que je regrette avec python après ces 10ans :

    - l'EU (l'expérience utilisateur, l'agréabilité) vient avec une machine moderne (ssd, multi cpu, VM) tellemen la génération/compilation est reloud et lente.... problème des langages à scripts compilés
    - 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...
    - 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
    - trop de variances de version/paquets posant de sacrés problèmes de mise à jour, d'upgrade, de candidature pour un job de dev python face à un bleubite de RH qui y connait rien .

    après 3ans de no-python, je me dit à chaque que je vois un article ou un script python : "ah c'était mes classes" (dans le sens, l'épreuve dure à passer à l'armée dont on est fiert d'avoir passée et faite mais qu'après on se dit qu'on l'aurait bien sauté si on aurait pu...)

    Ps : j'espère que les dév actuels n'aurait pas à subir un passage catastrophique d'un p3 à un py4 telle que le p2-->p3 a été : chaothique.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par RyzenOC Voir le message
    Il a 3 défauts selon moi :

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

    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,

    Le 1er point est valable, moi qui suis en transition de PHP vers Python ça m’embête un peu. Cela dit si l'équipe de PHP a réussi a avoir ce bond de performance entre les versions 5 et 7, on peut imaginer que c'est possible pour Python aussi.

    Je suis curieux de savoir dans quel domaine tu as besoin de gérer du multicoeur avec Python, je ne suis qu'un débutant sur le langage mais il ne me semble pas fait pour ça. Tu aurais un exemple ?


    Citation Envoyé par imikado Voir le message
    C'est quoi la stack "actuel" de SGBD en 2017 ?

    En opensource (et multi plateforme): à part mysql/mariadb et eventuellement postgresql (moins accessible pour les débutants)...
    Je dirais que Apache HTTP Server est en perte de vitesse au profit de NGINX, sinon rien de bien nouveau. Du coup on parle de stack LEMP au lieu de LAMP mais c'est toujours très utilisé.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 614
    Points : 713
    Points
    713
    Par défaut
    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 - Visualiser dans une fenêtre à part
    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…

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 614
    Points : 713
    Points
    713
    Par défaut
    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…

  13. #13
    Inactif  
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2015
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2015
    Messages : 91
    Points : 0
    Points
    0
    Par défaut
    Pourquoi faire avec Python ???
    Pourquoi pas ?

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 614
    Points : 713
    Points
    713
    Par défaut
    Citation Envoyé par lulu7 Voir le message
    Pourquoi pas ?
    Bah pour continuer à faire simplement les choses simples… Ok, je sais que c'est à l'opposé du développement professionnel…

  15. #15
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Je connais une petite pelletée de langages et les points abordés ici ne m'incitent pas particulièrement à ajouter Python à la liste.
    Je dis pas que c'est mauvais hein, juste que personnellement ce langage ne m'apporterait rien.
    Bon, j'étais pas à la recherche d'un nouveau langage non plus, mais vu l'engouement pour Python autant se renseigner.
    Plus je connais de langages, plus j'aime le C.

  16. #16
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Oui Python n'est pas si mal mais les contrôles GUI, ils sont où? dmc?
    (à moins de faire du web embedded)

    Ce qu'il me plaît ce sont les addons Kodi
    Si la réponse vous a aidé, pensez à cliquer sur +1

  17. #17
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    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
    Si la réponse vous a aidé, pensez à cliquer sur +1

  18. #18
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par martopioche Voir le message
    mod_wsgi pour Apache, wsgi est intégré à Ngnix depuis la 0.8.40…

    (...)

    Potentiellement Winpython.
    je viens de regarde : winpython ne correspond pas du tout à easyphp/wamp, il n'existe pas de stack clé en main pour les windosien pour pouvoir faire du dev web avec python ?

    Merci pour l'info pour wsgi, j'était resté à mod_python

    Et j'ai trouvé ici comment parametrer virtualhost and co (ici avec le framework django)
    https://docs.djangoproject.com/fr/1..../wsgi/modwsgi/
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  19. #19
    Membre habitué
    Homme Profil pro
    Développeur backend (python)
    Inscrit en
    Mai 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur backend (python)

    Informations forums :
    Inscription : Mai 2014
    Messages : 77
    Points : 138
    Points
    138
    Par défaut
    Pour ce qui est de la mise ne place de projet web avec django, je passe par nginx + gunicorn, je trouve ça plus simple, plus rapide et plus robuste. Et il y a pas mal de doc sur le sujet.
    Après il y a encore une autre implémentation avec nginx + gunicorn + supervisor, mais je trouve ce dernier inutile tant le fichier de conf gunicorn est simple à mettre en place.

  20. #20
    Membre confirmé Avatar de Andarus
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 455
    Points
    455
    Par défaut
    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,
    Je ne m'y suis jamais essayé mais pourquoi ne pas avoir utilisé une lib pour, il semble y en avoir pas mal. https://wiki.python.org/moin/ParallelProcessing

    Les personnes que j'ai pu rencontrer avec cette problématique utilisait IPython.

Discussions similaires

  1. Réponses: 98
    Dernier message: 31/10/2016, 08h33
  2. [GDC 2013] Cinq raisons pour lesquelles les « Free To Play » craignent
    Par Neckara dans le forum Développement 2D, 3D et Jeux
    Réponses: 15
    Dernier message: 02/04/2013, 16h41
  3. Réponses: 5
    Dernier message: 15/06/2009, 11h28
  4. Réponses: 2
    Dernier message: 08/07/2008, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo