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

Langages de programmation Discussion :

Quel est l'intérêt des langages dynamique, en général ?


Sujet :

Langages de programmation

  1. #1
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut Quel est l'intérêt des langages dynamique, en général ?
    Bonjour,

    J'aimerais comprendre l'engouement actuel pour les langage dynamiques tel que Python, PHP ou Ruby. J'ai récemment dû travailler sur un projet PHP et j'ai perdu un temps fou à debugger des erreurs de syntaxe, de typage, de propriétés ou méthodes inexistantes, etc. Il faut dire que je dois faire pas mal d'erreurs d'inattentions, étant habitué à ce qu'une compilation me signale toute ces erreurs. Je suis programmeur c#, qui est statique et fortement typé. L'auto-complétion me guide partout et je développe en .NET incomparablement plus rapidement qu'avec un langage comme PHP. Comprendre un programme existant est aussi bien plus évident quand on connait le type des objets et que l'on peut remonter à leurs définitions ou la définition de leurs membres, et ceci n'est pas possible avec un langage dynamique.
    Aujourd'hui je dois choisir un ERP pour mon entreprise. Je devrais pas mal le personnaliser donc le langage sur lequel il est basé a pas mal d'importance. Ceux qui m'intéressent sont en Python ou Java et franchement je préférerai à priori mettre les mains dans du java, pour ce que j'ai vu de Python... Avec python, je crains vraiment de perdre autant de temps qu'en développant en PHP. Mais si vous arrivez à me convaincre du contraire...
    Plus généralement, je ne vois pas de vrais avantages au langages dynamiques. Ils sont pour moi un retour à l'age de pierre.

    Merci d'avance pour tout vos conseils.
    ****************************************

    - I don’t write plumbing code anymore
    - I use PostSharp
    - And you?


    ****************************************

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Je ne sais pas si c'est tellement le fait que le langage soit dynamique. Le principal attrait des langages de script, c'est que l'application hôte peut les exécuter sans compromettre sa sécurité.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    Quelle application hôte ?
    Pourquoi est-ce qu'avec un langage de script il y a plus de sécurité ?
    ****************************************

    - I don’t write plumbing code anymore
    - I use PostSharp
    - And you?


    ****************************************

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Parce qu'un langage de script n'a généralement pas d'accès direct à la mémoire ou aux fichiers. Comme une machine virtuelle, en fait.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    ok, mais sinon ne trouves-tu pas qu'il est plus lent de développer avec un langage de script ?
    ****************************************

    - I don’t write plumbing code anymore
    - I use PostSharp
    - And you?


    ****************************************

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par maa Voir le message
    ok, mais sinon ne trouves-tu pas qu'il est plus lent de développer avec un langage de script ?
    La plupart des gens semble penser le contraire, du moins jusqu'à ce qu'ils essayent de programmer à grande échelle... Mais j'aurais tendance à dire que cela dépend plus des qualités et niveaux d'abstraction respectifs de tes langages dynamiques/statiques que simplement de leur appartenance à l'une de ces deux catégories.

    Par exemple je ne doute pas qu'on développe plus vite en Python qu'en C (NB : PHP est à mon avis l'un des pires exemple de langages de programmation, donc ne laisse pas trop ton expérience avec lui influencer ton opinion de tous les langages dynamiques) en général.

    D'un autre côté pas mal d'aficionados des langages dynamiques tendent à attribuer au dynamisme des avantages qui sont plutôt dûs au niveau d'abstraction et à imputer au typage statiques des désavantages qui n'existent que dans les systèmes de typage explicite faiblement expressifs et fragiles des langages mainstream... Un langage comme Haskell est une tout autre expérience dans le genre : il est au moins aussi expressif qu'un langage dynamique et l'inférence de types et la puissance du système de types le rendent nettement plus sûr qu'un langage dynamiquement typé tout en préservant la légèreté de notation. De plus il est compilé et beaucoup plus performant que les implémentations vedettes de PHP/Python/Ruby.

    --
    Jedaï

  7. #7
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Parce qu'un langage de script n'a généralement pas d'accès direct à la mémoire ou aux fichiers. Comme une machine virtuelle, en fait.
    Pas accès aux fichiers les langages de scripts ? A part JavaScript, je ne vois pas trop. De plus vu l'énorme quantité de bugs et d'exploit dûs à des problèmes de l'implémentation de PHP, l'argument ne convainc pas.
    Un langage statique rationnel se prête à des analyses statiques et à une compilation dans un environnement restreint qui permettent la même sécurité avec des performances supérieures : voir par exemple le bot IRC lambdabot qui compile et exécute du code Haskell à longueur de journée sur #haskell.

    --
    Jedaï

  8. #8
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    Merci beaucoup pour ta réponse.

    PHP est à mon avis l'un des pires exemple de langages de programmation, donc ne laisse pas trop ton expérience avec lui influencer ton opinion de tous les langages dynamiques
    D'accord, c'est plutôt rassurant.

    La plupart des gens semble penser le contraire, du moins jusqu'à ce qu'ils essayent de programmer à grande échelle...
    Pour ma part, j'ai l'impression que le peu de temps que l'on perd en rigueur avec un langage statique est largement compensé par le temps de debuggage perdu avec les langage dynamiques. Donc à moins de n'avoir qu'à faire de très petite modification sur un programme existant, j'ai l'impression que d'avoir un typage dynamique n'est jamais un gain de temps.


    D'un autre côté pas mal d'aficionados des langages dynamiques tendent à attribuer au dynamisme des avantages qui sont plutôt dûs au niveau d'abstraction et à imputer au typage statiques des désavantages qui n'existent que dans les systèmes de typage explicite faiblement expressifs et fragiles des langages mainstream...
    Je ne sais pas trop ce qu'est un langage mainstream. Pour ma part je programme en c#.net, et je ne trouve pas qu'il limite le niveau d'abstraction, au contraire. J'ai d'ailleurs toujours la possibilité de revenir dans le monde dynamique en utilisant des variables de type object, des generics, ou même avec c#4 des variables dynamiques. Tout ceci doit également être possible en java.
    ****************************************

    - I don’t write plumbing code anymore
    - I use PostSharp
    - And you?


    ****************************************

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    @Jedai: Pas d'accès direct aux fichiers. Au final, c'est l'application hote qui autorise ou non l'accès à tel ou tel fichier.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par maa Voir le message
    Je ne sais pas trop ce qu'est un langage mainstream. Pour ma part je programme en c#.net,
    C, C++ (à la C avec des classes), C# 1.1 et Java sont les exemples classiques mainstream


    Citation Envoyé par maa Voir le message
    et je ne trouve pas qu'il limite le niveau d'abstraction, au contraire. J'ai d'ailleurs toujours la possibilité de revenir dans le monde dynamique en utilisant des variables de type object, des generics, ou même avec c#4 des variables dynamiques. Tout ceci doit également être possible en java.

    utiliser le type object et les generics ne signifie pas du tout revenir dans le monde du typage dynamique...
    • utiliser le type object signifie juste que tu auras des vérifications de types au runtime, ie quand tu casteras pour réutiliser correctement ton object sous l'interface qui convient à la situation
    • utiliser des generics n'est pas plus dynamiques, et pas forcemment plus coûteuses, car elles ne sont plus depuis longtemps des classes standard avec cast du type object au type paramètre bien placés


    ensuite, clairement avec C# 4 et l'accès au Dynamic Language Runtime, il y a clairement l'arrivée d'une notion de typage dynamique des objects... mais
    • utiliser juste le type var ne signifie pas passer réellement en typage dynamique (un peu comme si on imaginait que le auto de C++0x allait le transformer en langage de script )
    • les utilisations réelles dans C# sont assez limitées : à part des constructions "compliquées" du même type que Linq, elles sont souvent bien bornées, et donc encapsulées pour que le système de type fasse son travail
    • DLR a surtout permis d'importer rapidement des langages dynamiques sur la plate-forme .Net (IronPython, etc). Alors qu'il aurait fallu
      • soit utiliser des constructions lourdes via hashtables/vérifications de type à la main, pour émuler leur fonctionnement dans la CLR
      • soit coder un interprète embarqué dans .net et faire tourner le script via cet interprète (Perl.Net )
      • soit se restreindre à un sous-ensemble compilable du langage de script et le porter sur la CLR (exemple de sous-langage compilable statiquement RPython par rapport à Python)




    enfin, il ne faut pas oublier que
    • Microsoft fait évoluer très vite le langage C#, au moins qu'il va finir par atteindre un niveau de complexité proche du C++.
    • beaucoup d'ajouts à C# viennent de l'approche fonctionnelle, et donc possèdent la plupart de ses avantages ( à l'équipe F#)
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  11. #11
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    Merci pour ta réponse.

    utiliser le type object signifie juste que tu auras des vérifications de types au runtime, ie quand tu casteras pour réutiliser correctement ton object sous l'interface qui convient à la situation
    Je me suis mal exprimé. Mais le polymorphisme permet de rester souple et d'avoir un bon niveau d'abstraction. Et à l'extrême, si on a pas envie de s'embêter avec les types, on peut utiliser des méthodes avec des paramètre de type object. Ca revient un peu à ne pas avoir de typage comme dans les langages dynamiques (il faut alors tester les types des paramètres et faire des casts selon les besoin). C'est assez mauvais comme style de programmation, mais c'est à peu de chose près la manière de faire avec les langage dynamiques.

    utiliser des generics n'est pas plus dynamiques, et pas forcemment plus coûteuses, car elles ne sont plus depuis longtemps des classes standard avec cast du type object au type paramètre bien placés
    La encore, ce que je voulais dire c'est que ça permet d'avoir un bon niveau d'abstraction, de faire des méthodes tolérantes, mais plus fines que les méthodes dynamiques qui laissent tout passer !

    C, C++ (à la C avec des classes), C# 1.1 et Java sont les exemples classiques mainstream
    C# 1.1 est un langage mainstream ? Et c# 2 un peu moins ? De même pour c# 3 et 4 ? Et java en est où dans tout ça ? Au même niveau que c# 1 ?

    Et toi, qu'en penses-tu de l'efficacité de programmation dans les langage statiques et dynamiques ?
    ****************************************

    - I don’t write plumbing code anymore
    - I use PostSharp
    - And you?


    ****************************************

  12. #12
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par maa Voir le message
    La encore, ce que je voulais dire c'est que ça permet d'avoir un bon niveau d'abstraction, de faire des méthodes tolérantes, mais plus fines que les méthodes dynamiques qui laissent tout passer !
    je me doute bien que tu souhaitais montrer l'intérêt du polymorphisme paramétrique... mais j'ai préféré préciser un peu mieux les choses pour éviter que les débutants qui liraient cette conversation n'en tirent pas de fausses conclusions


    Citation Envoyé par maa Voir le message
    C# 1.1 est un langage mainstream ? Et c# 2 un peu moins ? De même pour c# 3 et 4 ? Et java en est où dans tout ça ? Au même niveau que c# 1 ?
    disons que l'utilisation que 95% des développeurs font de ces langages vont en faire des langages "mainstream"... par mainstream, on entend qu'ils respecteront les grandes idées de conception et d'implantation au jour d'aujourd'hui.
    en gros, les langages OO sont restreints à un sous-ensemble implantable de UML, et les spécificités des langages sont très rarement utilisées pour améliorer le résultat final...
    idem le procédural à une époque était assez restreint, et la modularité pas toujours au rendez-vous

    clairement, modules/composants/objets ne sont pas des notions réellement distinctes pour ce genre de conception, et on se retrouve avec une absence totale de rigueur, et d'ouverture d'esprit dans des projets "usines à gaz"


    Concernant Java, disons pour simplifier que :
    • Java2 avant la version 1.5 est en gros l'équivalent de C# 1.1
    • depuis Java 1.5, on est proche de C# 2, même si
      • en C#, avec l'utilisation de delegates, il est possible d'obtenir des fonctions de premier ordre (ie passer une fonction en argument), et si on ajoute le caractère générique aux delegates, il est parfois possible d'avoir un code proche de la pensée fonctionnelle
      • avec les wildcards, Java a intégré depuis la 1.5 des fonctionnalités que l'on ne retrouve entièrement que depuis C# 4 (contra-variance, covariance sur les arguments des génériques). les contraintes de type where de C# 2 ne suffisaient pas conceptuellement... après je trouve que l'utilisation des wildcards en Java est un casse-tête, et d'ailleurs énormement de développeurs les évitent



    Citation Envoyé par maa Voir le message
    Et toi, qu'en penses-tu de l'efficacité de programmation dans les langage statiques et dynamiques ?

    disons que l'efficacité de programmation est déjà quelque chose de subjectif... parle-t-on de
    • sûreté de fonctionnement à la conception vs à la "compilation" vs à la fin de la phase de test
    • rapidité de développement... mais quid du RAD prêt-à-boguer inmaintenable
    • performances brutes



    en résumé, il est difficile de donner une réponse générale à une telle question en ayant si peu de données à sa disposition... n'oubliez pas qu'une bonne conception et une grande rigueur d'implantation apportent souvent un bon résultat.
    ainsi quelqu'un de rigoureux avec un langage très permissif sera certainement préférable à un informaticien jemenfoutiste qui code à l'arrache sans conscience professionnelle avec des outils réputés "fiables"
    bien entendu, dans le second cas, avoir des contraintes imposées par le langage (inférence de type, etc) peut limiter la casse... mais après, on peut toujours avoir un gars qui développe avec OCaml comme s'il faisait du Scheme, et utilise Obj.magic toutes les 5 lignes pour tromper le système de type, ce qui revient à n'utiliser que des types object en C#/Java etc
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  13. #13
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    disons que l'efficacité de programmation est déjà quelque chose de subjectif... parle-t-on de

    * sûreté de fonctionnement à la conception vs à la "compilation" vs à la fin de la phase de test
    * rapidité de développement... mais quid du RAD prêt-à-boguer inmaintenable
    * performances brutes
    Temps total pour arriver à faire une application fonctionnelle. Si l'application est mal conçue à cause de l'utilisation d'un type de langage, le temps sera rallongé.
    Maintenant on pourra faire peut être faire des distinctions selon le style de programmation, le type de programmeur. Et aussi peut être distinguer si on développe sois même l'application de A à Z ou si on code sur quelque chose d'existant. Enfin bref, dans quel cas il faut choisir un langage dynamique ou statique si on veut passer le moins de temps possible pour arriver à quelque chose de fonctionnel.
    Je sais pas si c'est plus facile de répondre.

    PHP est à mon avis l'un des pires exemple de langages de programmation, donc ne laisse pas trop ton expérience avec lui influencer ton opinion de tous les langages dynamiques
    Là où j'ai galéré avec PHP, c'est pour debugger des erreurs de syntaxe, de type, de propriétés/méthodes inexistantes, etc. et aussi beaucoup de temps pour comprendre comment un programme existant fonctionne, parce que je ne peux pas remonter aux définitions de mes types et de mes membres et donc je suis obliger de debugger pour me rendre compte par où le programme "passe". Après c'est vrai que tout n'est pas objet en PHP et les fonctions existantes sont souvent peu pratiques, mais ça n'est pas ce qui m'a vraiment fait perdre du temps. Alors avec Python ou Ruby, je ne vois pas ce qui pourrait trop changer puisque ce qui ne me conviens pas est visiblement directement imputable aux langage dynamiques.
    ****************************************

    - I don’t write plumbing code anymore
    - I use PostSharp
    - And you?


    ****************************************

  14. #14
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par maa Voir le message
    Temps total pour arriver à faire une application fonctionnelle. Si l'application est mal conçue à cause de l'utilisation d'un type de langage, le temps sera rallongé.
    Maintenant on pourra faire peut être faire des distinctions selon le style de programmation, le type de programmeur. Et aussi peut être distinguer si on développe sois même l'application de A à Z ou si on code sur quelque chose d'existant. Enfin bref, dans quel cas il faut choisir un langage dynamique ou statique si on veut passer le moins de temps possible pour arriver à quelque chose de fonctionnel.
    Je sais pas si c'est plus facile de répondre.

    ben en fait, il manque quelques informations de taille :
    • avez-vous le temps et les moyens de suivre une formation pour éventuellement changer les méthodes, langages, etc. utilisés dans votre organisation actuelle ?
    • quelle est la taille de l'équipe ?
    • quel est l'historique et le niveau de formation moyen d'un développeur dans cette équipe ?
    • quel type d'application développez-vous ? (faire des webservices, ou faire du code temps réel, ça n'a souvent pas les mêmes contraintes )



    par ailleurs, un chef de projet chevronné et au point sur les différentes possibilités serait sans mieux placé qu'un simple développeur anonyme comme moi pour répondre
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  15. #15
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    avez-vous le temps et les moyens de suivre une formation pour éventuellement changer les méthodes, langages, etc. utilisés dans votre organisation actuelle ?
    L'équipe c'est moi :Eventuellement, si c'est rentable au final. De plus l'ERP qui me semble le plus adapté à mes besoins est en Python. C'est à priori celui sur lequel j'aurais le moins de rajouts à faire. Mais si les modifications sont compliquées à cause du langage (que je ne connais pas), alors je préfère avoir à en faire un peu plus sur un ERP conçu en java.

    quel est l'historique et le niveau de formation moyen d'un développeur dans cette équipe ?
    Donc on parle de moi là. Je n'ai pas fais d'étude d'informatique. J'ai seulement appris par moi même ces 4 dernières années. Je développe habituellement en c#. Je maintient actuellement une application veille de 20 ans, programmée en clipper. Sinon je me débrouille dans les langages du web et c'est dans ce contexte que j'ai été confronté à PHP...

    quel type d'application développez-vous ? (faire des webservices, ou faire du code temps réel, ça n'a souvent pas les mêmes contraintes )
    Pour l'instant je n'ai fais que des petites applications pour répondre à des besoins spécifiques et combler les lacunes de l'application actuelle. L'ERP à pour but de remplacer cette veille application ainsi que l'amoncellement de petits programmes qui gravitent autours.
    ****************************************

    - I don’t write plumbing code anymore
    - I use PostSharp
    - And you?


    ****************************************

  16. #16
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    Citation Envoyé par maa
    J'aimerais comprendre l'engouement actuel pour les langages dynamiques tel que Python, PHP ou Ruby.
    C'est le good enough et le getting things done qui ont séduit ceux qui ont été échaudés par le doing the right thing.
    À mon avis cette évolution est très positive pour tout le monde, car au lieu d'avoir des langages de compromis avec un système de typage timoré qui cumule le manque d'expressivité au manque de flexibilité, on se dirige lentement vers une répartition suivant deux groupes historiques :
    • d'un côté des langages hérités de Lisp / Smalltalk pour ceux qui privilégient le typage flexible
    • de l'autre côté des langages inspirés de ML / Eiffel pour ceux privilégient le typage expressif

    S'il n'y avait pas le succès des langages dynamiques il faudrait continuer à adopter des stratégies de typage mi-chèvre mi-choux qui ne font le bonheur de personne.

    Citation Envoyé par maa
    J'ai récemment dû travailler sur un projet PHP et j'ai perdu un temps fou à debugger des erreurs de syntaxe, de typage, de propriétés ou méthodes inexistantes, etc.
    C'est au moins autant du à des facteurs humains qu'au langage lui-même :
    • l'inévitable perte de productivité inhérente à un changement de langage / techno
    • ton manque d'expérience avec ce genre de langages
    • ta dépendance à un environnement / IDE
    • toute erreur non signalée avant exécution signifie que tu dois anticiper en reportant ton d'attention plus en amont sinon la sanction est plus dure en aval


    Citation Envoyé par maa
    Aujourd'hui je dois choisir un ERP pour mon entreprise. Je devrais pas mal le personnaliser donc le langage sur lequel il est basé a pas mal d'importance.
    Sur le court terme le langage a de l'importance.
    Sur le moyen terme l'ERP lui-même risque de devenir le facteur limitant.
    Plus tu avances dans le temps plus le changement d'habitudes devient anodin et ce sont les facteurs limitants qui te pourrissent la vie.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  17. #17
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 149
    Points : 28 116
    Points
    28 116
    Par défaut
    Bonjour,

    Citation Envoyé par maa Voir le message
    Aujourd'hui je dois choisir un ERP pour mon entreprise. Je devrais pas mal le personnaliser donc le langage sur lequel il est basé a pas mal d'importance. Ceux qui m'intéressent sont en Python ou Java et franchement je préférerai à priori mettre les mains dans du java, pour ce que j'ai vu de Python... Avec python, je crains vraiment de perdre autant de temps qu'en développant en PHP. Mais si vous arrivez à me convaincre du contraire...
    Chaque langage a ses specificites, ses contraintes, ses avantages et ses inconvenients. Mais aussi, et on l'oublie souvent, ses domaines d'application privilegies.

    Ainsi, il est theoriquement possible d'ecrire tout programme en tout langage, mais c'est plus ou moins raisonnable. Et c'est bien la que se situe le probleme : une partie des developpements n'est pas ecrite dans le langage optimal, et une partie d'entre eux sont ecrits dans un langage contre-indiqué.

    Ainsi, ecrire un serveur d'application en assembleur est possible, mais pas forcement conseille. Ecrire un micro-kernel en java n'est peut-etre pas non plus la solution ideale.

    Je pense que tu n'as pas l'utilite des langages dont tu parles, et que c'est pour ca que tu ne vois pas leur interet. Apres, on peut aussi se poser la question de l'interet de l'ERP en python, qui ne semble pas forcement le langage le plus adapte au premier abord.

    Et pour finir avec ta question premiere, je pense que tu devrais identifier precisement tes besoins, et voir si un ERP est la reponse adequate a tes besoin. Ensuite seulement tu pourras voir duquel tu as besoin, et de la decouleront les formations dont tu as besoin, soit en langage de programmation, soit en autre chose.

    En esperant t'avoir apporte un point de vue complementaire.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  18. #18
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    PHP est à mon avis l'un des pires exemple de langages de programmation, donc ne laisse pas trop ton expérience avec lui influencer ton opinion de tous les langages dynamiques
    Là où j'ai galéré avec PHP, c'est pour debugger des erreurs de syntaxe, de type, de propriétés/méthodes inexistantes, etc. et aussi beaucoup de temps pour comprendre comment un programme existant fonctionne, parce que je ne peux pas remonter aux définitions de mes types et de mes membres et donc je suis obliger de debugger pour me rendre compte par où le programme "passe". Après c'est vrai que tout n'est pas objet en PHP et les fonctions existantes sont souvent peu pratiques, mais ça n'est pas ce qui m'a vraiment fait perdre du temps. Alors avec Python ou Ruby, je ne vois pas ce qui pourrait trop changer puisque ce qui ne me conviens pas est visiblement directement imputable aux langage dynamiques
    C'est à mon avis un manque d'expérience et/ou d'outil adapté qui vous font pensez cela.

    Avec un IDE digne de ce nom il est tout à fait possible de remonter vers les définition de methode d'une classe soit disant "boite noire" de php.
    Toujours dans le même esprit , un ide correct, va t'avertir des erreurs de débutant tel que la synthaxe ou les fonctions inexistante.

    Alors php est loin d'être parfait , on est bien d'accord mais de là à avancer que c'est le pire des langage c'est à mon avis un peu fort

    Pour répondre au débat , je pense que ce qui fait la force de ces langage c'est leur coté plus accessible.
    Pas de typage fort , pas ou peu de gestion mémoire.
    Quand je dois développer en C , je suis toujours entrain de me demander si j'ai pas oublier libérer la mémoire,si j'écris bien au bon endroit , si mon tableau va être assez grand.
    Ca me gène sans doute car c'est un langage que je ne maitrise pas et que je pratique assez peu , mais c'est une gène qui n'existe pas pour quelqu'un qui débarque dans un langage de script.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  19. #19
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Là où j'ai galéré avec PHP, c'est pour debugger des erreurs de syntaxe, de type, de propriétés/méthodes inexistantes, etc. et aussi beaucoup de temps pour comprendre comment un programme existant fonctionne, parce que je ne peux pas remonter aux définitions de mes types et de mes membres et donc je suis obliger de debugger pour me rendre compte par où le programme "passe". Après c'est vrai que tout n'est pas objet en PHP et les fonctions existantes sont souvent peu pratiques, mais ça n'est pas ce qui m'a vraiment fait perdre du temps. Alors avec Python ou Ruby, je ne vois pas ce qui pourrait trop changer puisque ce qui ne me conviens pas est visiblement directement imputable aux langage dynamiques
    Simplement sur le point des définitions objets ect. Php n'étant pas très expressif, il (l'ide) s'appuie énormément sur la doc écrite.
    Avec une doc correcte tu fais l'auto complétion, tu remontes tes defs ect sans problèmes.
    De même qu'avec un ide décent tu peux voir tes erreurs syntaxique à l'écriture.

    Donc pour un ide sympa pour php => netbeans.

    Le reste des points industrialisation, préférence, capacités du langage ect il y à des threads à ce sujet je pense.

    Autrement je suis plutôt de l'avis de gangsoleil, sur l'approche à adopter dans ta prise de décision.

  20. #20
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Perso, je vois pas l'intérêt des langages dynamiques.

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

Discussions similaires

  1. Quel est l'intérêt des Interfaces ?
    Par opeo dans le forum Langage
    Réponses: 42
    Dernier message: 06/01/2022, 14h16
  2. Quel est l'intérêt des mots clé get et set ?
    Par verbose dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 30/09/2008, 16h19
  3. Signature des assemblies : quel est l'intérêt?
    Par AdamReith dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 30/04/2008, 18h20
  4. Quel est l'intérêt des Services Web ??
    Par silvermoon dans le forum Débats sur le développement - Le Best Of
    Réponses: 19
    Dernier message: 12/02/2003, 22h28

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