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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 291
    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 291
    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 : 126923
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 : 75456
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 : 43
    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
    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
    Membre éprouvé Avatar de Zefling
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    1 213
    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 213
    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
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 970
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 970
    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

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    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 681
    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

  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 : 43
    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
    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 : 43
    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
    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
    Membre Expert

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    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 actif
    Profil pro
    DSI
    Inscrit en
    Février 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DSI

    Informations forums :
    Inscription : Février 2010
    Messages : 88
    Par défaut
    Citation Envoyé par CodeurPlusPlus Voir le message
    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...

    Sauf que les lib NumPy et SciPy dominent bien R et Matlab réunis.

  10. #10
    Membre très actif

    Homme Profil pro
    Mentaliste
    Inscrit en
    Mars 2008
    Messages
    872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Mentaliste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 872
    Par défaut
    Citation Envoyé par imikado Voir le message
    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)
    J'ai eu un excellent niveau Php et depuis un an et demi j'ai officiellement laissé tomber Php pour Python + Django (Django = le pendant de Symfony mais pour Python).
    Plus facile à tous les niveaux et mieux à tous les niveaux sauf un : la rapidité.
    Mais en 2017 c'est négligeable : avant que ton PC rame pour servir des pages Web, il va s'en passer du temps...

    Je te laisse regarder les stats 2017 sur stackoverflow.

    Python est le langage le plus demandé en moyenne sur 64,000 développeurs.
    Et, stat encore plus amusante, c'est le langage le mieux payé en France !

    Pour Windows : installe Python 3.6 précompilé, et PyCharm (le pendant de PhpStorm mais pour Python).
    A partir de là suis un tutoriel Python et voilà c'est parti !

    J'ai refait le jeu Sokoban sous shell en Python + orienté objet en 2011 : une journée pour faire ça en Python. C'est un langage extrêmement facile à apprendre, et si tu fais du Php, tu verras : il est plus simple, et tu vas vraiment t'amuser.

    Pour la note, j'ai ré-écrit un gros parser de fichier Php (1600 lignes) sur lequel j'avais stoppé de coder car devenu trop complexe et incompréhensible pour moi : en Python en une journée, j'ai tout ré-écrit, 1000 lignes de code (presque la moitié) et je suis allé beaucoup plus loin et j'ai même pu terminer mon parser jusqu'au bout (merci PyCharm pour la facilité du trace en pas à pas).

    Au fait petite question : pourquoi Python est le plus utilisé en langage scientifique ? Parce qu'il n'y a pas de limite pour la gestion des entiers. C'est pas une blague : si Python n'a plus de place sur 32 bits il passe à 64, puis 128, et ensuite alloue autant de mémoire que nécessaire.

    Et puis tu as des expressions qui sont presque de l'anglais naturel :

    mavariable = "olivier" if answer is not None else "thibault"

    (sisi c'est bien du Python)

    Je conseille donc Python à tout le monde sans aucune exception.

    Le seul hic concernant Django ? Bah c'est qu'il force les bonne pratiques, et que quand tu veux mettre ton site en production, tu lance "collectstatic" qui récupère tous les fichiers statiques, et Django ne veut plus jamais les servir : à toi me mettre un frontal (nginx est ton ami) qui, si ce sont des URLs qui commencent par "/static/", doit les renvoyer sans passer par Django, sinon, les fait suivre à Django. Donc ce sont de très bonnes pratiques, mais cela coupe Django de tous les débutants car il te faut un serveur dédié (2 €/mois sur amazon cloud), et surtout savoir configurer un frontal. C'est vraiment la seule ombre noire que je trouve à Python.


    Citation Envoyé par RyzenOC Voir le message
    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.
    J'ai fait la démo d'exemple montre en main en 10 minutes : kivy

    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.
    Je sais que sur le 3.6 il y a eu énormément de boulot là dessus, avec des yield ou autres choses prévues pour ça (multicœurs). Pour le partage d'objets je ne sais pas.

    Citation Envoyé par imikado Voir le message
    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)
    Tu installe Python que tu veux (je conseille 3.6)
    Puis PyCharm. Tu l'installe, tu fais project -> new -> django et il va tout te récupérer et tout t'installer. Le serveur Web est lui même lancé par PyCharm et il est en Python : non seulement tu n'as rien d'autre à installer, mais tu vois tout ce qui se passe, pas besoin de log ou autre, et tu peux même faire tu pas à pas.

    Citation Envoyé par imikado Voir le message
    2. en production, c'est quoi l'équivalent de apache-php / nginx-php ?
    Nginx + gunicorn


    Citation Envoyé par CodeurPlusPlus Voir le message
    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...
    Dès que tu veux de la rapidité tu as Cython, qui permet d'écrire en C pur, avec lequel tu génère un .po ou un .dll (pour windows) et dans Python tu déclare puis appelle tes librairies.
    C'est bien plus puissant qu'en Php, crois moi !

    Citation Envoyé par abbe2017 Voir le message
    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.
    Python a énormément de choses pré-livrées avec.
    Exemples :
    - any() est une fonction où tu passe un tableau et si n'importe laquelle des valeurs est vraie, il renvoie "vrai" sinon c'est "faux"
    - all() est une fonction où tu passe un tableau et si toutes les valeurs sont vraies, il renvoie "vrai" sinon c'est "faux"
    Tout est déjà pré-construit : système de fichiers, gestion des PDFs, des mp3, des wav, traitement des fichiers image, bref, en Python, il faut faire comme cela : d'abord on cherche si une librairie n'est pas déjà écrite, et puis si elle n'est pas faite, on fait le code.

    Citation Envoyé par abbe2017 Voir le message
    ps : je suis tjrs à la recherche d'un RAD/EDI à base de python (genre un Visual Python .. , si qqun a des infos)
    PyCharm est ton ami.

    Citation Envoyé par abbe2017 Voir le message
    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.... ;-)
    C'est que tu es tombé sur du code qui ne suit pas le principe du zen de Python qui est à la fois marrant mais très vrai.

    Citation Envoyé par abbe2017 Voir le message
    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 un des rares langages qui n'a pas de limite en terme de gestion des entiers.
    Et il gère en natif les nombres complexes :
    a=complex(2,3)
    b=complex(4,3)
    print(a+b, a-b, a*b, a/b)

    Tu en connais d'autres de langages qui gèrent ça en natif ?

    Citation Envoyé par abbe2017 Voir le message
    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
    Là je ne comprends pas. Tu compile du Python ?

    Citation Envoyé par abbe2017 Voir le message
    - 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
    T'as jamais débogué en Java, ou fait un point d'arrêt sur un site écrit en Symfony toi....

    Citation Envoyé par abbe2017 Voir le message
    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...)
    Tu peux me dire en quoi tu code, et que tu considère "mieux" ? Je suis très intéressé...

    Citation Envoyé par Mystcreater Voir le message
    C'est fantastique Python jusqu'à temps que vous essayez de vous trouver un travail dont vous pouvez développer dans ce langage.
    J'en suis à plus de 40k€ avec ma société, de développements Python pur, portage Python ou sites Python/Django

    Citation Envoyé par marco056 Voir le message
    En même temps, si tu t'exprimes aussi bien en français qu'en python...
    +1e54

    Citation Envoyé par jdddeschamps Voir le message
    En revanche, les IHM sont un peu difficiles à programmer. J'ai choisi tkinter et ça ne marche pas sur Mac
    - https://github.com/pldeschamps/eisenhowermatrix
    - https://www.developpez.net/forums/d1...ionne-mac-osx/
    PyQt semble très bien.

  11. #11
    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
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par SurferIX Voir le message

    J'ai fait la démo d'exemple montre en main en 10 minutes : kivy
    Je vais regarder, on peut générer un apk autonome avec ce truc ? si oui sa m'a l'air super intéressant.
    https://kivy.org/docs/guide/packaging-android.html
    je crois que c'est possible d’après la doc, pour l'instant j'ai pas trop le temps mais j'essayerais à l'occasion pour voir.

    Citation Envoyé par SurferIX Voir le message
    Je sais que sur le 3.6 il y a eu énormément de boulot là dessus, avec des yield ou autres choses prévues pour ça (multicœurs). Pour le partage d'objets je ne sais pas.
    Oui il y'a eu de nouvelle instructions, les yields pour lé générateurs ou asyncio pour faire des taches asynchrone on peut même allouer de la ram avec malloc (comme en c)

    Mais pas de bol, les yields et les taches asynchrones fonctionne comme les threads en python, ils sont mono coeurs
    donc sa n'apporte rien d’intéressant dans notre cas.

    Citation Envoyé par SurferIX Voir le message
    J Pour le partage d'objets je ne sais pas.
    Justement c'est mal barré car dans Python, tous n'est qu'objet

    on peut uniquement partager des structures basique de la bibliothèque types_c (int float, tab...etc)

  12. #12
    Invité
    Invité(e)
    Par défaut
    Python a beaucoup d'avantages mais il ne faut pas exagérer non plus.

    Citation Envoyé par SurferIX Voir le message
    Au fait petite question : pourquoi Python est le plus utilisé en langage scientifique ? Parce qu'il n'y a pas de limite pour la gestion des entiers. C'est pas une blague : si Python n'a plus de place sur 32 bits il passe à 64, puis 128, et ensuite alloue autant de mémoire que nécessaire.
    Ce n'est pas complètement vrai. Python est beaucoup utilisé pour scripter ou prototyper mais les bibliothèques qui sont derrière sont généralement en Fortran, C ou C++. Et il existe d'autres alternatives valables comme matlab, R, julia...
    Quant à la gestion des entiers en précision multiple, c'est un mauvais exemple : déjà je ne crois pas que ce soit le principal problème en calcul scientifique et ensuite il existe d'autres solutions comme GMP en C.

    Citation Envoyé par SurferIX Voir le message
    Et puis tu as des expressions qui sont presque de l'anglais naturel :
    mavariable = "olivier" if answer is not None else "thibault"
    L'anglais n'a rien de naturel, et je ne vois pas en quoi ton exemple serait moins naturel en C/C++ : mavariable = (answer ? "olivier : "thibault");

    Citation Envoyé par SurferIX Voir le message
    Je sais que sur le 3.6 il y a eu énormément de boulot là dessus, avec des yield ou autres choses prévues pour ça (multicœurs). Pour le partage d'objets je ne sais pas.
    En Fortran/C/C++, openmp permet de paralleliser efficacement une boucle avec un simple pragma. Et on peut contrôler le partage de données très finement si on veut.

    Citation Envoyé par SurferIX Voir le message
    Dès que tu veux de la rapidité tu as Cython, qui permet d'écrire en C pur, avec lequel tu génère un .po ou un .dll (pour windows) et dans Python tu déclare puis appelle tes librairies.
    C aussi permet d'écrire du C pur... Et des outils comme swig permettent très facilement d'écrire une interface pour plein de langages à partir d'un code C ou C++.

    Citation Envoyé par SurferIX Voir le message
    Et il gère en natif les nombres complexes :
    a=complex(2,3)
    b=complex(4,3)
    print(a+b, a-b, a*b, a/b)
    Tu en connais d'autres de langages qui gèrent ça en natif ?
    C++ : http://en.cppreference.com/w/cpp/numeric/complex

  13. #13
    Invité
    Invité(e)
    Par défaut
    Tu es vraiment en train de jouer à qui a la plus grosse entre un langage de script et un langage compilé?

    Python est utilisé car il permet de faire simplement beaucoup choses, mais n'importe quelle personne un minimum pragmatique ne va pas se plier en 4 et utiliser Python pour quelque chose hors de son périmètre. Je comprend bien l'attrait de tout faire en Python, surtout que c'est souvent rendu possible par le langage, mais utiliser les bons outils pour les bonnes tâches c'est pas genre un des 1ers trucs qu'on apprend en tant que dev ?

    xpost : je répondais a SimonDecoline

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Mrsky Voir le message
    Tu es vraiment en train de jouer à qui a la plus grosse entre un langage de script et un langage compilé?

    Python est utilisé car il permet de faire simplement beaucoup choses, mais n'importe quelle personne un minimum pragmatique ne va pas se plier en 4 et utiliser Python pour quelque chose hors de son périmètre. Je comprend bien l'attrait de tout faire en Python, surtout que c'est souvent rendu possible par le langage, mais utiliser les bons outils pour les bonnes tâches c'est pas genre un des 1ers trucs qu'on apprend en tant que dev ?

    xpost : je répondais a SimonDecoline
    C'est ce que j'ai dis dans mon post. Dans le cas du calcul scientifique, python est très bien pour scripter, prototyper, etc... et pour les parties où il faut de la performance pure, fortran/c/c++ est souvent plus adapté. Les deux se complètent bien et ça me parait inefficace de vouloir absolument faire de la performance pure tout en python ou du prototypage tout en fortran.

  15. #15
    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
    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)

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

  17. #17
    Membre très actif
    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
    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…

  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 : 43
    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
    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 éclairé
    Homme Profil pro
    Développeur backend (python)
    Inscrit en
    Mai 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2014
    Messages : 77
    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 très actif
    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
    Par défaut
    Citation Envoyé par imikado Voir le message
    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 ?
    Ah oui, en effet…*Oui parce que ces usines à gaz ne servent à rien en Python. Les virtualenvs permettent de compartimenter les devs, chaque framework web vient avec son serveur de dev (norme WSGI…), la db en dev, tu la gère avec un SQLite fourni en standard…

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