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

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juin 2016
    Messages
    457
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2016
    Messages : 457
    Points : 15 983
    Points
    15 983

    Par défaut « Pourquoi on est repassé de Go à PHP ? », Danny van Kooten, l'éditeur de MailChimp nous livre les raisons

    « Pourquoi on est repassé de Go à PHP ? », Danny van Kooten, l'éditeur de MailChimp nous livre les raisons
    de ce rebasculement

    En avril 2017, Danny van Kooten, un développeur indépendant, prenait la décision de réécrire en Go l'application Laravel qui alimente Boxzilla, un plugin pour WordPress qui permet de créer des formulaires MailChimp ayant plus d'un million d'utilisateurs. Le développeur précisait qu'il avait pris du plaisir à coder son application en Go. Rappelons au passage que Go est un langage de programmation compilé et concurrent inspiré de C et Pascal. Ce langage a été développé par Google et veut faciliter et accélérer la programmation à grande échelle. C'est un langage qui vise aussi la rapidité d'exécution, indispensable à la programmation système. Il considère le multithreading comme le moyen le plus robuste d'assurer sur les processeurs actuels cette rapidité tout en rendant la maintenance facile par séparation de tâches simples exécutées indépendamment.

    Pourquoi avoir laissé PHP pour Go ?

    Après avoir développé son application en Go, Kooten trouvait que le résultat final était une énorme amélioration par rapport à l'ancienne application (développé en PHP) avec une meilleure performance, un déploiement plus facile et une couverture de test plus étendue. Le développeur explique que son application était relativement simple. C'était une API et un gestionnaire de compte relativement simple, pilotée par une base de données, où les utilisateurs peuvent se connecter pour télécharger le produit, consulter leurs factures ou mettre à jour leur méthode de paiement, dit-il. Laravel l'avait bien aidé à développer, mais Kooten trouvait que certaines choses « ont toujours semblé trop compliquées » à faire.

    Nom : danny-300x300.jpg
Affichages : 21507
Taille : 23,6 Ko

    « C'est un plaisir d'écrire du code Go, l'outillage est incroyable et il n'est pas seulement rapide à développer, le résultat final est généralement très rapide aussi. Le simple fait de lire le but du projet Go m'a convaincu sur le langage. Je pense que nous verrons un bon nombre de personnes passer des langages de typage dynamique comme PHP, Python et JavaScript à Go dans les prochaines années. Migrer le code vers Go consistait principalement à obtenir l'interaction de la base de données et à porter les modèles Blade vers quelque chose que nous pourrions utiliser dans Go », écrivait-il.

    Pourquoi avoir renoncé à Go pour revenir à PHP ?

    Contre toute attente, Danny van Kooten annonce dans un billet de blog le lundi dernier que ses applications de boutique sont de nouveau alimentées par PHP. Pourquoi ce revirement soudain pourrait-on se demander ? Eh bien, la raison est simple. Le développeur trouve que PHP s'est beaucoup amélioré au cours des trois dernières années. « Le langage a ajouté des déclarations de type argument scalaire, des déclarations de type retour, des exceptions multi-catch, des améliorations de performances impressionnantes et bien d'autres améliorations plus générales », dit-il. Kooten a été principalement séduit par Symfony 4.

    Citation Envoyé par Danny van Kooten
    J'ai toujours été un grand fan de la promesse de compatibilité de Symfony et leur impressionnante expérience de 13 ans prouve qu'ils le pensent vraiment. Alors quand Symfony 4 est sorti et que j'ai entendu de bonnes choses à son sujet, je l'ai pris pour un essai en y implémentant une toute petite partie de notre application. Comme conclusion, j'ai remarqué que beaucoup d'efforts ont été consacrés à la simplification de l'installation, ce qui a accéléré le démarrage d'une application Symfony avec beaucoup moins de travail pour configurer les bundles. Il rivalise maintenant avec le développement rapide de Laravel tout en encourageant des pratiques de développement décentes. Et il est très performant.

    Il a été relativement facile de porter notre ancienne application Laravel sur Symfony, d'implémenter de nouvelles fonctionnalités de la version Go de notre application et d'annuler certains des raccourcis que j'avais pris auparavant (la plupart grâce aux aides globales de Laravel). Un bel effet secondaire est que j'ai réussi à augmenter substantiellement notre couverture de test dans le processus. Écrire la même application en termes de fonctionnalités pour la deuxième fois une troisième fois est vraiment utile à cet égard.

    La barre de débogage de Symfony est un outil incroyable. Il vous montre ce qui s'est passé pendant le trajet de la demande à la réponse, vous informe des avertissements et des déprédations et est livré avec un profileur intégré que vous pouvez facilement connecter à des parties de benchmark de votre propre code. Après avoir appris le composant Form de Symfony, je préfère ne plus m'en passer. Il est donc trivial de rendre un formulaire accessible qui peut être réutilisé à plusieurs endroits, de valider le formulaire lors de sa soumission, puis de remplir un objet PHP à partir des données du formulaire en toute sécurité.
    Toutefois, Danny van Kooten tient à préciser que ce n'est pas parce que Go l'a déçu qu'il a changé de langage de développement. Au contraire, il trouve toujours Go très génial. « Honnêtement, Go est génial. Sa simplicité est rafraîchissante et vous ne pouvez pas vous approcher de ce genre de performance avec PHP 1, je la choisirais quand même si nous avons besoin d'une petite API ou quelque chose qui nécessite un haut débit », dit-il.

    Pour certains internautes, passer de PHP à Go ne semble pas être une bonne idée à leur avis. Pour cause, disent-ils, les fichiers PHP peuvent être déployés indépendamment, échangés ou mis à jour en direct, aucune compilation des fichiers PHP n'est nécessaire. Pour eux, si ce n'est que pour compiler et déployer un système entier pour changer un seul point d'extrémité d'une application est comme revenir en arrière après avoir utilisé PHP.

    Source : Billet de blog

    Et vous ?

    Qu'en pensez-vous ?
    Quel langage de programmation Web côté serveur préférez-vous ? Pourquoi ?
    Vous est-il déjà arrivé de quitter PHP pour y revenir après ? Pour quelles raisons ?

    Voir aussi

    Quels sont les langages de programmation les plus utilisés par les développeurs ? Une analyse des évènements publics sur GitHub

    PHP est utilisé par plus de 80 % des sites, toutefois 96 % de ces sites utilisent encore la version 5 du langage, selon un rapport de la W3Techs

    PHP 7.4 devrait être rendu disponible vers la fin de cette année voici un aperçu des nouveautés qui pourraient y figurer

    W3Tech : plus de 60 % des sites Web tournent sur PHP 5.x une version qui ne sera plus supportée après le 31 décembre 2018
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    7 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 7 177
    Points : 23 347
    Points
    23 347

    Par défaut

    le dernier argument évoqué est justement la force et à la fois la faiblesse de PHP, quel programme PHP n'a pas râlé pour une erreur de syntaxe qui n'est apparue que longtemps après la mise en oeuvre dans une partie du code peu sollicité ?

    les langages compilés ont cette énorme avantage d'une validation de l'ensemble du code de l'application une bonne fois pour toute, ensuite il peu rester des bugs, mais jamais d'erreur de syntaxe...sur les langages interprété, ce n'est qu'en exécutant chaque portion de code dans chaque condition d'utilisation (vive les includes) qu'on va pouvoir s'assurer que tout fonctionne correctement.

    l'autre chose pénible c'est que lorsque l'on met à jour le moteur PHP, les scripts peuvent ne plus fonctionner car ils utilisent une fonction dépréciée, ou dont le fonctionnement a été modifié...ça n'arrivera jamais sur un code compilé, le problème peut éventuellement se produire sur une recompilation, mais la version en production ne bougera pas.

    j'utilise cependant PHP pour presque tous mes hébergements web car ils sont sur du mutualisé OVH et que c'est du coup beaucoup plus simple à mettre en oeuvre...même si je croise les doigts quand une version de PHP est abandonnée et que je dois pousser une nouvelle version.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : juillet 2008
    Messages : 49
    Points : 181
    Points
    181

    Par défaut Pas grave

    Boaf, il aurait fait tout ça en Python dès le départ et le problème ne se posait même pas
    (je rigole, ça va...)

  4. #4
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    4 737
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 4 737
    Points : 11 793
    Points
    11 793
    Billets dans le blog
    5

    Par défaut

    Jamais touché à Go, par contre je peux vous assurer que dans le monde pro, PHP 7+ est considéré comme un solide langage de dév. Depuis l'apparition du typage statique, j'ai même vu des dev java s'y remettre, c'est dire...
    Les perfs en général sont impressionnantes "out of the box", pas besoin de tripatouiller. Et cela va continuer : PHP 8.0 annonce que du bon : usage massif d'un compilateur JIT et alors là : roulements de tambour : un mini serveur d'applications natif qui permettra de garder à disposition les fichiers compilés en mémoire entre les appels ! C'est une révolution profonde dans la mesure où PHP s'éloigne de son fonctionnement originel stateless.

    Bref, PHP récupère des développeurs et des projets dans les entreprises, que du bon je vous dis
    Et les perfs vont encore grimper méchamment (pour tout ce qui est à gros trafic, c'est tip-top)
    # Dans la Création, tout est permis mais tout n'est pas utile...

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    janvier 2014
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2014
    Messages : 441
    Points : 976
    Points
    976

    Par défaut

    Si j'ai bien compris, il maitrise PHP sur le bout des doigt, et apprécie grandement ce langage. Il est parti sur Go en raison des lacunes que PHP présentait, mais ces lacunes étant partiellement comblé aujourd'hui, il revient à PHP. Ses raison ne sont ni purement pragmatique, ni entièrement porté sur les performance, ni sur ses sentiment (fanboy...), mais un mélange d'avantages et compromis de tout ça.

    Pour des perf absolues on peut coder en assembleur ... sinon question performances sur gros trafique, il parait que CMS C++ fait des merveilles.

    PS: Python 3x et postérieurs apporte quoi de mieux ou de pire par rapport à PHP dans ce contexte ?
    Pensez à utiliser les pouces d’appréciation, pour participer à la visibilité de l'apport d'un propos, ou l'intérêt que vous y prêtez... qu'il soit positif ou négatif.

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2017
    Messages
    533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2017
    Messages : 533
    Points : 2 235
    Points
    2 235

    Par défaut

    Citation Envoyé par rawsrc Voir le message
    Et les perfs vont encore grimper méchamment (pour tout ce qui est à gros trafic, c'est tip-top)
    Heu... on parle d'un plugin wordpress là. Il y a vraiment des sites à gros trafic qui sont fait avec wp + des plugins ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    mai 2002
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2002
    Messages : 42
    Points : 35
    Points
    35

    Par défaut

    Citation Envoyé par SimonDecoline Voir le message
    Heu... on parle d'un plugin wordpress là. Il y a vraiment des sites à gros trafic qui sont fait avec wp + des plugins ?
    Non... On parle du serveur là. Du service MailChimp.

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    janvier 2014
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2014
    Messages : 441
    Points : 976
    Points
    976

    Par défaut

    c'est confus pour la cible... il est effectivement question de plugin WordPress, mais de manière indirecte :
    En avril 2017, Danny van Kooten, un développeur indépendant, prenait la décision de réécrire en Go l'application Laravel qui alimente Boxzilla, un plugin pour WordPress ayant plus d'un million d'utilisateurs.
    Pensez à utiliser les pouces d’appréciation, pour participer à la visibilité de l'apport d'un propos, ou l'intérêt que vous y prêtez... qu'il soit positif ou négatif.

  9. #9
    Membre éprouvé
    Homme Profil pro
    Noob
    Inscrit en
    octobre 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Noob

    Informations forums :
    Inscription : octobre 2009
    Messages : 317
    Points : 1 021
    Points
    1 021

    Par défaut

    Citation Envoyé par rawsrc Voir le message
    Et cela va continuer : PHP 8.0 annonce que du bon : usage massif d'un compilateur JIT et alors là : roulements de tambour : un mini serveur d'applications natif qui permettra de garder à disposition les fichiers compilés en mémoire entre les appels ! C'est une révolution profonde dans la mesure où PHP s'éloigne de son fonctionnement originel stateless.
    Le fonctionnement stateless de PHP est en partie ce qui rend le langage à la fois si permissif et résistant. Si une instance de PHP plante, il suffit de la tuer et ça n'impacte pas (enfin peu) le serveur. A mon avis la migration d'une appli tournant sur PHP actuel à une future version stateful va réserver des belles surprises au niveau des memory leaks, comme par exemple les ressources non fermés comme les fichiers ou une connexion à une BDD.

    En revanche ça ouvre la voie à un nodeJS-like pour PHP et ça c'est très cool. Je sais qu'il existe déjà des solutions pour cela comme Ratchet, mais c'est se battre contre le langage lui même pour en arriver là (et autant utiliser autre chose du coup).
    Désolé pour les rétines, clavier QWERTY

  10. #10
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    4 737
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 4 737
    Points : 11 793
    Points
    11 793
    Billets dans le blog
    5

    Par défaut

    je pense qu'il y aura un mécanisme de libération automatique à la fin de l'exécution des scripts pour éviter justement ce genre d'écueil.
    Après, il se peut aussi qu'il évitent juste à minima, l'étape de la recompilation sans préserver les ressources ouvertes (mais dans ce cas, l'intérêt d'un telle approche en matière de gain serait assez limité).
    Wait and see comme dirait l'autre
    # Dans la Création, tout est permis mais tout n'est pas utile...

  11. #11
    Membre averti
    Profil pro
    retraité
    Inscrit en
    décembre 2010
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : décembre 2010
    Messages : 187
    Points : 381
    Points
    381

    Par défaut

    Citation Envoyé par stef-13013 Voir le message
    Boaf, il aurait fait tout ça en Python dès le départ et le problème ne se posait même pas
    (je rigole, ça va...)
    Sauf qu'il aurait fallu multiplier les serveurs pour pallier à la lenteur de python

  12. #12
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2018
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : mai 2018
    Messages : 73
    Points : 228
    Points
    228

    Par défaut

    Citation Envoyé par Paul TOTH Voir le message
    le dernier argument évoqué est justement la force et à la fois la faiblesse de PHP, quel programme PHP n'a pas râlé pour une erreur de syntaxe qui n'est apparue que longtemps après la mise en oeuvre dans une partie du code peu sollicité ?

    les langages compilés ont cette énorme avantage d'une validation de l'ensemble du code de l'application une bonne fois pour toute, ensuite il peu rester des bugs, mais jamais d'erreur de syntaxe...sur les langages interprété, ce n'est qu'en exécutant chaque portion de code dans chaque condition d'utilisation (vive les includes) qu'on va pouvoir s'assurer que tout fonctionne correctement.
    Heu… Est-il nécessaire en 2019 de rappeler que "compilation" n'est pas un synonyme de "validation" ? Et que les tests sont le principal outil de validation du bon fonctionnement ?

  13. #13
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    7 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 7 177
    Points : 23 347
    Points
    23 347

    Par défaut

    Citation Envoyé par dad3zero Voir le message
    Heu… Est-il nécessaire en 2019 de rappeler que "compilation" n'est pas un synonyme de "validation" ? Et que les tests sont le principal outil de validation du bon fonctionnement ?
    je répond à ceci
    les fichiers PHP peuvent être déployés indépendamment, échangés ou mis à jour en direct, aucune compilation des fichiers PHP n'est nécessaire
    par ailleurs je n'ai jamais prétendu qu'une application compilée ne pouvais pas avoir de bug, la compilation assure simplement qu'il n'y a aucune erreur de syntaxe (en plus des warnings qui pointent les faiblesses du code).
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    janvier 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : janvier 2016
    Messages : 10
    Points : 32
    Points
    32

    Par défaut

    A mon avis un stateful PHP ne sera pas plus risqué.
    Hypothèses sur le fonctionnement:
    • On aura un processus à part gérant les états.
    • Les scripts s’exécuteront toujours à part à la demande.
    • On aura des méthodes permettant d’interagir avec le processus gérant les états.
    • On pourra lire et écrire des données (sauf les objets, que des ressources/arrays/scalaires).
    • Et une configuration de quel script appeler en fonction d'un évènement.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    juin 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2007
    Messages : 69
    Points : 116
    Points
    116

    Par défaut

    Citation Envoyé par SimonDecoline Voir le message
    Heu... on parle d'un plugin wordpress là. Il y a vraiment des sites à gros trafic qui sont fait avec wp + des plugins ?
    Il existe beaucoup de site, plus ou moins gros, qui sont gérés par Wordpress.

    Quelques exemples :
    jquery.com, plesk.com, dyn.com, nginx.com, etc...
    https://kinsta.com/blog/wordpress-site-examples/

    Wordpress représente 33% des sites internet.

  16. #16
    Membre expert
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    avril 2016
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : avril 2016
    Messages : 843
    Points : 3 654
    Points
    3 654

    Par défaut

    Citation Envoyé par dad3zero Voir le message
    Citation Envoyé par Paul TOTH Voir le message
    le dernier argument évoqué est justement la force et à la fois la faiblesse de PHP, quel programme PHP n'a pas râlé pour une erreur de syntaxe qui n'est apparue que longtemps après la mise en œuvre dans une partie du code peu sollicité ?

    les langages compilés ont cette énorme avantage d'une validation de l'ensemble du code de l'application une bonne fois pour toute, ensuite il peu rester des bugs, mais jamais d'erreur de syntaxe...sur les langages interprété, ce n'est qu'en exécutant chaque portion de code dans chaque condition d'utilisation (vive les includes) qu'on va pouvoir s'assurer que tout fonctionne correctement.
    Heu… Est-il nécessaire en 2019 de rappeler que "compilation" n'est pas un synonyme de "validation" ? Et que les tests sont le principal outil de validation du bon fonctionnement ?
    Il y a bien une confusion sur la notion de compilation, mais je vois que dad3zero s'est ramassé un -3. Du coup, je vais rebondir dessus en détaillant.

    Prenons l'exemple de Python que je connais mieux que PHP. Python est, à la base, un langage interprété. Pourtant :
    • On peut lancer une analyse statique du code avec Pylint. Pylint est capable de détecter des appels de fonctions non définies et la lecture de variables non déclarées. Il détecte cela simplement en lisant le code, sans exécuter chaque portion. Pylint analyse aussi les problèmes de style. Mais Pylint ne compile pas du code Python.
    • On peut aussi lancer une analyse statique du code avec mypy. mypy détecte aussi des appels de fonctions non définies et la lecture de variables non déclarées, mais permet en plus de détecter des erreurs de type, seulement en lisant le code. Cela s'appuie sur la notion de typage statique. Mais mypy ne compile pas du code Python.
    • On peut aussi compiler du code Python avec Nuitka. Nuitka génère bien un ".exe" à partir de code Python.


    Il ne faut pas confondre :
    • la compilation, qui consiste à transformer du code d'un langage vers un autre, en général du langage machine et
    • l'analyse statique du code, qui permet de détecter des erreurs sans l'exécuter.

  17. #17
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2018
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : mai 2018
    Messages : 73
    Points : 228
    Points
    228

    Par défaut

    Citation Envoyé par Paul TOTH Voir le message
    la compilation assure simplement qu'il n'y a aucune erreur de syntaxe (en plus des warnings qui pointent les faiblesses du code).
    Ben… Non, j'insiste, la compilation assure simplement la transformation de code source en binaire machine, et je ne vais pas paraphraser Pyramidev pour la justification.

    P.S. je vais quand même rajouter une anecdote, dans les affirmations de la sorte, je me projette toujours il y a 20 ans où certaines compilations étaient réalisées sur des supercalculateurs sur lesquels vous n'aviez qu'un créneau réduit par jour. Êtes-vous êtes prêt à considérer que vous pouvez sacrifier une journée et votre slot pour valider la syntaxe de votre code ?

    Citation Envoyé par Pyramidev Voir le message
    Il y a bien une confusion sur la notion de compilation, mais je vois que dad3zero s'est ramassé un -3. Du coup, je vais rebondir dessus en détaillant.
    merci, je ne cours pas après les +/-

    Mais…

    En fait, je ne sais pas si il ne faut pas être inquiet…*

    Merci pour ce résumé :

    Il ne faut pas confondre :
    • la compilation, qui consiste à transformer du code d'un langage vers un autre, en général du langage machine et
    • l'analyse statique du code, qui permet de détecter des erreurs sans l'exécuter.

  18. #18
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    7 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 7 177
    Points : 23 347
    Points
    23 347

    Par défaut

    Citation Envoyé par Pyramidev Voir le message
    Il y a bien une confusion sur la notion de compilation, mais je vois que dad3zero s'est ramassé un -3. Du coup, je vais rebondir dessus en détaillant.
    avec plaisir, je suis ouvert à la discussion

    Citation Envoyé par Pyramidev Voir le message
    Prenons l'exemple de Python que je connais mieux que PHP. Python est, à la base, un langage interprété. Pourtant :
    • On peut lancer une analyse statique du code avec Pylint. Pylint est capable de détecter des appels de fonctions non définies et la lecture de variables non déclarées. Il détecte cela simplement en lisant le code, sans exécuter chaque portion. Pylint analyse aussi les problèmes de style. Mais Pylint ne compile pas du code Python.
    • On peut aussi lancer une analyse statique du code avec mypy. mypy détecte aussi des appels de fonctions non définies et la lecture de variables non déclarées, mais permet en plus de détecter des erreurs de type, seulement en lisant le code. Cela s'appuie sur la notion de typage statique. Mais mypy ne compile pas du code Python.
    • On peut aussi compiler du code Python avec Nuitka. Nuitka génère bien un ".exe" à partir de code Python.


    Il ne faut pas confondre :
    • la compilation, qui consiste à transformer du code d'un langage vers un autre, en général du langage machine et
    • l'analyse statique du code, qui permet de détecter des erreurs sans l'exécuter.
    alors je connais mieux PHP que Python, mais ce que tu décris ressemble méchamment à une compilation, quand bien même le but n'est pas de produire un exécutable...ce qui n'est d'ailleurs pas la finalité d'un compilateur, c'est d'ailleurs bien souvent la tâche d'un linker. Mais tous les codes PHP en sont pas "compilables" car c'est un langage très souple.
    Si j'en crois WikiPedia, Python "favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort" alors que PHP "est un langage peu typé et souple et donc facile à apprendre par un débutant"...certes il a beaucoup évolué depuis ses débuts, mais il garde toute sa souplesse.

    Citation Envoyé par dad3zero Voir le message
    Ben… Non, j'insiste, la compilation assure simplement la transformation de code source en binaire machine, et je ne vais pas paraphraser Pyramidev pour la justification.
    la définition est approximative puisque tu peux très bien compiler un code source C++ en Javascript par exemple, mais quoi qu'il en soit, la transformation n'a rien de simple, elle assure la totale cohérence du code source pour le transformer en quelque chose de totalement différent et qui ne permet généralement l'opération inverse (bien qu'on trouve des décompilateurs pour langages évolués).

    Citation Envoyé par dad3zero Voir le message
    P.S. je vais quand même rajouter une anecdote, dans les affirmations de la sorte, je me projette toujours il y a 20 ans où certaines compilations étaient réalisées sur des supercalculateurs sur lesquels vous n'aviez qu'un créneau réduit par jour. Êtes-vous êtes prêt à considérer que vous pouvez sacrifier une journée et votre slot pour valider la syntaxe de votre code ?
    alors il y a 20 ans on aurait rit au nez d'un développeur qui aurait prétendu faire tourner une application de gestion dans un navigateur avec le même langage interprété côté client et serveur...mais on pouvait déjà compiler des projets Pascal complets en quelques secondes.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  19. #19
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2017
    Messages
    533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2017
    Messages : 533
    Points : 2 235
    Points
    2 235

    Par défaut

    Citation Envoyé par Dgamax Voir le message
    Il existe beaucoup de site, plus ou moins gros, qui sont gérés par Wordpress.

    Quelques exemples :
    jquery.com, plesk.com, dyn.com, nginx.com, etc...
    https://kinsta.com/blog/wordpress-site-examples/

    Wordpress représente 33% des sites internet.
    Ohlala oui, toutes mes excuses. jquery.com, plesk.com... que de sites à haut trafic ! Ma grand-mère et ses copines y passent toutes leurs journées...

  20. #20
    Membre éprouvé

    Profil pro
    Inscrit en
    janvier 2014
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2014
    Messages : 441
    Points : 976
    Points
    976

    Par défaut

    En ce qui me concerne, le post au fameux "-3", il avait à mes yeux tout sont intérêt dans le sens où l'article décrivait un mécanisme qui a pour effet d'être "error-proof" à certains types d'erreur. Il rappelait simplement que : "compilation" n'est pas un synonyme de "validation" ...dans le sens où le "error-proof" (de syntaxe) mis en avant par un langage interprété n'est que superficiel sur l’ensemble des erreurs à vérifier.
    ...même s'il s'appuyait sur les propos de Paul TOTH
    Pensez à utiliser les pouces d’appréciation, pour participer à la visibilité de l'apport d'un propos, ou l'intérêt que vous y prêtez... qu'il soit positif ou négatif.

Discussions similaires

  1. Quel certificat après avoir travaillé pour une association?
    Par dré kam dans le forum Droit du travail
    Réponses: 1
    Dernier message: 23/07/2018, 10h01
  2. Réponses: 52
    Dernier message: 27/03/2018, 11h37
  3. Réponses: 0
    Dernier message: 20/11/2012, 17h14
  4. Réponses: 0
    Dernier message: 19/11/2012, 16h25
  5. un moyen pour supprimer un fichier après l'avoir ouvert
    Par ZeProgrammator dans le forum ASP.NET
    Réponses: 8
    Dernier message: 09/10/2009, 10h16

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