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

Débats sur le développement - Le Best Of Discussion :

L’orientation vers plusieurs outils pour une application est-elle mauvaise ?


Sujet :

Débats sur le développement - Le Best Of

  1. #101
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par MiaowZedong Voir le message
    De plus, je suis pas sûr qu'il ait raison de mettre le numérique ainsi à part. Lire en diagonale, recopier les passages qui semblent vaguement pertinent, c'est une méthodologie moisie qui, me semble-t-il, peut s'appliquer à n'importe quel texte.

    Je ne partage donc pas vraiment sa conclusion, mais je salue son initiative. D'autres profs devraient faire comme lui!
    mouais.. Enfin ma soeur qui était prof dans un IUT jusqu'à il y a 2 ans se plaiginait de la même chose, et ceci jusqu'aux examens finaux et rapports de stages.. Avec même procès etc etc quand les profs repéraient et n'étaient pas d'accord pour donner le diplôme.....

    Et cela n'existait pas avant Internet, il y a donc bien un problème spécifique..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  2. #102
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Citation Envoyé par MiaowZedong Voir le message
    Avant de réutiliser le travail d'autrui, il faut le comprendre.
    C'est bien le plus difficile à faire et à faire comprendre ! (voir ma citation du classique Confucius)
    Je participe principalement au section Dephi\C++Builder, combien de membres ne viennent qu'attendre un code prêt à l'emploi, ne lise pas les réponses si celles-ci ne font que décrire comment procéder et orientent vers la documentation de la RTL\VCL (le Framework inclu dans Delphi) ou vers la MSDN !

    On est submergé de sujets comme "comment utiliser ce truc" sans montrer la moindre démarche personnelle, on répond par un classique "avec la library bidule" qui n'obtient comme réponse qu'un "tu peux fournir un exemple" !

    Il n'y a même pas volonté de savoir comment utiliser la bibliothèque alors il ne faut pas espérer celle de savoir comment elle fonctionne !

    Et lorsque l'on fourni un code, un grand nombre bloque dès le premier "identificateur non reconnu" et n'ont même pas le réflexe de regarder l'aide pour ajouter le fichier dans la section uses (équivalent du include) si ils savent ce que c'est !

    Lorsque c'est un amateur, cela se comprend, ce n'est pas son métier
    Lorsque c'est un professionnel, il faut avouer que l'on ne peut pas tout savoir (même si il y a des limites à l'incompétence)
    Lorsqu'il s'agit d'étudiants, pour moi c'est assez grave !
    Si ils ne font pas l'effort de chercher aujourd'hui alors qu'ils n'ont que cela à faire alors une fois leur pseudo diplôme en poche, que feront-ils ?
    Se baladeront-ils de SSII en SSII ?
    Se trouveront une planque où l'on n'écrit que 2 lignes de code par jour à cause d'une méthodologie de développement rigide et bureaucratique ?
    J'ai fait un DUT, il y a plus de 10 ans, pour l'obtenir, une 10 de moyenne suffisait, 8 minimale par module (Info, Général, Rapport), la moitié de la classe avait 8-9 en Info, mais 12+ en Général, résultat, ils ont leur dîplome.
    Moi, c'était plutôt 14 contre 8, j'ai bien galéré en math !
    L’Apprentissage pour moi fut salutaire, un peu flemmard à la base, les périodes d'entreprise m'ont appris bien plus que l'école !
    Il ne faut pas demander à un étudiant de savoir faire mais avant tout de savoir se documenter !
    Personnellement, j'ai ré-appris l'objet, 2 ans après la fin des études quand j'ai eu un boulôt où j'étais sous-utilisé (problème d'organisation du Chef de Projet) et que j'avais le temps pour essayer ces fameuses "Design Pattern" et tout le tralala POO !
    J'ai appris à l'école le Java, Merise... je n'ai utilisé ni l'un ni l'autre, pire, je code souvent en fonction de la météo et l'humeur du jour, je tente des expérimentations sur le langage par pure curiosité pour appliquer tel ou tel dogme appris dans un bouquin, quelque part entre "artiste incompris" et "ingénieur râleur"
    Le Delphi\C++Builder je l'ai appris en entreprise, c'est ma compétence principale, un peu de PHP4-5, de Windev, VBS... faut savoir s'adapter à son environnement

    Savoir se documenter, pour moi, c'est bien le plus important, à partir du moment que l'on a le courage d'aller chercher l'information et pas simplement attendre qu'elle arrive, on a fait le plus gros du travail !

    Le débat ressemble un à celui que l'on a suite à l'article Quelle est votre définition du « vrai développeur » et comment le trouvez-vous ? avec sa catégorie "anti-développeurs" adepte de réutilisation massive !

    Sur le marché, nous aurions donc plein de diplômé qui donne l'illusion parce qu'ils savent copier\coller ?
    C'est un peu de la caricature, comme dans toutes professions, il y a les communs et les prix d'excellence !
    Il faut leur laisser une chance de murir un peu !

    Je suis d'accord avec ceux qui ont mentionné la "réalité du travail en entreprise" avec telles ou telles contraintes, il faut admettre que l'on ne peut pas tout faire soi-même pas seulement pour respecter les délais (un exercice dont j'ai bien du mal en passant) mais aussi parce que l'on en a pas la capacité !
    Il y a plein d'éléments dans C++Builder que je comprends pas, cela fonctionne dans l'état, je ne me pose pas trop de question, je fais mon travail avec rigueur, j'espère produire une code satisfaisant mais il y a des choses que j'ai compris par tatonnement et que je ne maitrise que très partiellement !
    Tout le monde ne va pas coder son propre compilateur, il y a des gens plus doué que d'autres, je me considère dans l'entre-deux, ce qui me semble abordable, je le fais moi-même si cela n'existe pas déjà en standard dans l'environnement de Dev, ce qui me semble trop long à comprendre (là les délais réapparaissent), je cherche une encaspulation existante provenant d'une bibliothèque externe !

    Ayant souvent ré-écrit la "roue carrée", oui c'est fun, c'est intéressant, on a développé juste le bout utile (ou inutile) pour notre projet, on est fier de l'avoir fait !
    Et puis ré-écrire la roue, Microsoft l'a fait aussi avec le .NET, il y avait Java !
    On voit d'abord les versions Java OpenSource écrites par les éminences grises de l'informatique puis suivent les implémentations .NET
    Qu'apporte de plus le .NET ? Surement plein de truc, je n'en sais rien, je n'utilise ni l'un ni l'autre, en fait, si récemment, mon responsable a créé une interface avec Crystal Report en .NET car le support C++Builder n'existe plus, et bien la seule autre variante, c'était pour ... Java !
    D'ailleurs, Crystal Report c'est quoi un outil ... je crois que c'est l'un des trucs les plus gavants ! les impressions !
    C'est d'un ennui profond, quand j'étais apprenti, je me rappele avoir fait un listing de code barre imprimé à la main sur l'imprimante pixel par pixel, on avait pas de reporting dans l'application, tout passait par du publipostage Word, donc on m'avait demandé de le faire avec l'objet TPrinter, moi novice, j'ai suivi les consignes !
    Ce fut formateur, j'ai compris ce qu'était les DPI durant ce travail, à l'époque, je n'avais pas imaginé qu'on imprimait sur le papier un truc différent de l'apercu sur l'écran !
    Preuve que faire soit même, cela a du bon !
    Dans une autre société, j'ai pas perdu autant de temps, j'ai pris Quick Report et un TQRBarCode tout prêt, en 10 minutes, c'était réglé contre plusieurs jours la fois précédente !
    Preuve qu'une fois que l'on sait faire, on sait qu'il vaut mieux prendre un truc déjà existant reconnu stable et plus économique !
    Pour .NET, il leur fallait LEUR Truc, sous un prétexte multi-plateforme au début, c'est devenu plus une sorte de lavage de cerveaux des programmeurs qui ne savent ni ce qu'est un pointeur, une convention d'appel, une libération de ressource... va causer interopérabilité avec eux !
    Ils te sortent leurs solutions qui n'existent nulle part ailleurs qu'en .NET ou en ... Java évidemment !

    Ce que je fais actuellement, c'est pareil, je développe un module dans notre logiciel, ce module existe chez nos concurrents mais on voudrait bien prendre une petite part de marché, ce qui facilitera la vente des autres modules pour gagner encore plus !
    D'un point de vue "fonctionnalité", je réinvente un truc qui existe déjà, j'ajoute ma pierre à l'édifice !
    D'un point de vue "développement", ré-inventer ce qui existe déjà, cela occupe des programmeurs !
    Alors quand cette ré-invention est au niveau de nouveau Framework à la mode, cela crée des emplois !
    6 de mes anciens collègues qui ont vogués en SSII, le temps de trouver mieux, ont tous travailler pour la même société, qui a commencé un projet SAP devant unifier plusieurs logiciels, le temps que cela soit mis en place, des projets Delphi ont été démarré pour une interop temporaire, le projet SAP a échoué faute de souplesse bureaucratique, conséquence, ils ont tout refait tout en C# !
    A chaque changement, une belle armée de développeur à été décimée et une autre recrutée !

    Idem, pour "problèmes liés à une mauvaise utilisation des frameworks" et encore si c'était à niveau que l'on voit des horreurs mais parfois c'est dans les bases du langage et des types fondamentaux lié au compilateur
    Exemple pour récupérer une chaine depuis le 4eme caractère jusqu'à la fin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String Variable = (char *)&ChaineOriginale.c_str()[3];
    qui s'écrit simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String Variable = ChaineOriginale.SubString(4, MaxInt);
    Essaye de comprendre le code du 1er coup parmis ces caractères cabalistiques * & [] !
    A savoir que ce code été écrit pour s'adapter à une problématique de changement de version de l'outil de développement qui nécessite des ajustements alors qu'au même moment le type String du compilateur passe implicitement de AnsiString (1octet par Char) à UnicodeString et par conséquence c_str() passe de char* à wchar_t*
    Et ce n'est pas un débutant qui a écrit cela mais bien un développeur qui a commencé en C et ASM qui ne s'est pas adapté aux normes de programmation de son nouvel outil et réutilise du mauvais code déjà présent un peu partout dans le projet !
    Pire encore, mais à quoi peu bien servir ce code, pas un seul commentaire, pourquoi tronquer la valeur ?
    On le sait aujourd'hui, mais demain on se trainera ce genre de bidouille dont la seul raison de son existence est qu'elle facilite le déploiement de la nouvelle version
    Cette opposition “développeur senior” et “développeur moderne” est beaucoup trop réductrice !
    J'ai bien vu un poly-technicien des années 80 choisir comme solution de communication inter-processus l'utilisation d'un fichier comme sous DOS alors qu'il existe la mémoire partagée, les pipes, les messages, ou même le TCP\IP permettant au besoin de répartir les processus sur plusieurs machines !
    Oserais-je lancer l'opposition entre “développeur obsolète” et “développeur moderne” ?

    Je n'ai jamais travaillé dans une grosse boîte, j'ai évité les SSII, j'ai évité les bureaucraties qui nécessitent que chaque demande de développement soit contre-signé trois fois mais en même temps, je n'ai quasiment jamais eu de vrais spécifications qui se résument parfois à une phrase "ajoute le pilotage du robot machin pour le client bidule", me voilà parti, je bricole un truc, une petite démo à bidule, on corrige en fonction de ses réponses puis c'est la spirale infernale ...

    Dans mon ancienne boîte, le développement "client lourd" était en phase terminal, un pied dans la tombe, le temps était au "client web" avec le couple client YahooLib et Serveur PHP-Zend
    Avant de partir de la société, on m'a demandé un dernier développement, pour éviter de devoir touché au "client lourd" qui fonctionne bien mais que l'on ne sait pas trop comment ni pourquoi (un gros plat de spaghetti de 10 ans qui a été refilé sans passation ni documentation à 5-6 développeurs).
    L'idée était de faire des Modules Client Web exportant leur donnée puis un module d'Import PHP lui même utilisant un ActiveX qui appelait les 4 mégas-fonctions-TPCM (touche pas, ça marche) comme si l'on avait directement utilisé l'IHM du "client lourd", ça fonctionne mais aucune maitrise du fonctionnel, on perd la connaissance du métier par manque de documentation et la technique à cause d'absence de norme de codage !

    Là le problème, ce n'était pas l'abus de bibliothèques mais de considérer une seule et unique plateforme comme la solution absolue, ce n'est pas non plus possible, surtout avec les périphériques disponibles, avoir un code superbe, testé, documenté n'impressionne ni le commercial ni le client qui ne préfère avoir des gadgets utiles pour son métier sur son SmartPhone ou Tablette !
    On prévoit de remplacer DCOM par DataSnap (~WebService), ça va prendre du temps mais c'est invendable présenté comme cela alors on lui vend la possibilité de client Web par la suite qu'il attend depuis plusieurs années !

    Je rejoinds Patriarch24 qu'il faut différencier l'excès d'une utilisation normale de bibliothèques et d'outils tiers !

    Bon, j'ai du perdre 90% des lecteurs par mon flood ... il temps d'en finir :

    Conclusion, le réel problème n'est pas l'utilisation de bibliothèques mais le manque de maitrise de l'outil et des bibliothèques, le manque de documentation parce que l'on a pas le temps, le manque de recherche et de cohérence, de prise en compte de la pérennité d'une solution, tout simplement le manque de culture Informatique comme le soulignait fmdao
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #103
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Bon, j'ai du perdre 90% des lecteurs par mon flood ... il temps d'en finir :
    Un peu


    Citation Envoyé par ShaiLeTroll Voir le message
    Conclusion, le réel problème n'est pas l'utilisation de bibliothèques mais le manque de maitrise de l'outil et des bibliothèques, le manque de documentation parce que l'on a pas le temps, le manque de recherche et de cohérence, de prise en compte de la pérennité d'une solution, tout simplement le manque de culture Informatique comme le soulignait fmdao
    Je dirais même plus fort : le manque de culture générale

    La culture générale sert à avoir des repères, à acquérir une logique et du bon sens, et à avoir un esprit critique...

    Elle permet donc d'user de discernement lorsqu'on est face à un problème, et de chosir des bonnes solutions, pérennes ou non, suivant l'objectif à atteindre.

    Elle permet donc, dans le problème soulevé dans ce thread, de ne pas prendre une attitude noire ou blanche, mais pondérée et adatpée..

    Je crois qu'une des erreurs fondamentales de nos sociétés (et de l'enseignement d'ailleurs) est de penser que la technique et la technologie ne nécessitent pas de culture générale...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  4. #104
    Membre éprouvé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Points : 1 264
    Points
    1 264
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Je dirais même plus fort : le manque de culture générale
    Tout à fait d'accord !
    Le manque de culture générale, le manque de culture informatique sont désastreux ! On se retrouve avec des gens qui ne savent plus rien.
    Un exemple qui m'interpèle :
    Le premier, une gamine de 15 ans, accro à son Blackbery, a facebook et à la télé.
    Question : "Tu vois ce que c'est un chevalier, une auberge ?"
    Réponse : "Euh..."
    Aide de sa copine : "tu vois 'Plus belle la vie ?'"
    Réponse : "euh oui..."
    Nouvelle aide de la copine : "Ben c'est pas du tout ça...".
    Ca se passe malheureusement de commentaire

    Je lance un petit sondage muet (pas besoin de répondre, posez vous juste la question) :
    • Quelle est la séquence de démarrage d'un PC ?
    • Qu'est-ce qu'un OS multi-tâche, multi-programmation, préemptif, collaboratif
    • Qu'est-ce qu'un code ré-entrant ?
    • Comment on sait ce qui empêche un système de démarrer ?
    • C'est quoi le Power good ?

    J'en ai plein d'autres... Dont une où les développeurs Java et C# sont exemptés : pourquoi désallouer un pointeur quand on n'en a plus besoin...

    Je crois que ce qui manque, c'est de la culture générale et informatique. Et des bases. Mon prof d'info en BTS nous assénait :

    "Un ordi, c'est comme les chiottes, on est prié de le laisser en partant dans l'état dans lequel on l'a trouvé en entrant."
    Et le meilleur moyen, c'est encore de contrôler ce que fait son programme.

    Dernier point : réinventer la roue, c'est bien, mais pas top...
    "L'incohérence de ceux qui dirigent et l'incompétence de ceux qui critiquent sont un vibrant hommage à ceux qui exécutent."
    Général George S. PATTON. Messine 1943.

  5. #105
    Nouveau Candidat au Club
    Profil pro
    direction
    Inscrit en
    Octobre 2003
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : direction

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1
    Points : 0
    Points
    0
    Par défaut tout à fait d'accord!

  6. #106
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 1
    Points : 8
    Points
    8
    Par défaut 100%
    Je suis un "vieux" developpeur java et je le constate tous les jours. Les jeunes arrivent sur les projets et tout ce qu'ils cherchent c'est des projets avec des projets avec les mots clés du moment - nodejs, mongodb, angularjs, playframework, scala ... (que des technos web ou presque d'ailleurs à croire que c'est 100% du marché). Quand je fais passer les entretiens technique sur mon projet, rares sont ceux qui savent expliquer les notions de bases de l'informatique (table de hash, btree, la mémoire virtuelle, ou encore les bases d'un langage - java, c++ par exemple). le sql ? plus besoin il y a hibernate ! Ils savent de moins en moins coder et savent de mieux en mieux assembler les bout de code des tutos /framework. Du coup pour faire un truc simple, comme intégrer un fichier dans une base de données, on se retrouve avec une myriade de framework (non maitrisés la plus part du temps) qui amènent lourdeur et complexité (framework qui tombe en désuétude, dépendances en chaine, difficulté à debuger, à trouver les problèmes de perf etc.).
    Il y a un autre article dans le même sens http://blog.infine.com/conseils-a-un...peur-java-2133

  7. #107
    Membre émérite

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Points : 2 368
    Points
    2 368
    Par défaut
    @ztony: Tes propos sont tres pertinants tout comme ton lien.
    Je vais te répondre que tout dépend du type de projet. Beaucoup d'entreprises préferent des gens qui travaillent vite en ne faisant qu'assembler des morceaux de codes et utilisant une multitude de framework, comparé a un développeur tres doué mais réinvantant la roue et donc (pas toujours) plus lent.
    Si ton projet nécessite une performance hors du commun et une rapidité extreme pour fixer un bug alors c'est sur que le "bon vieux" (rien de péjoratif) sera la perle rare. Dans le cas contraire, si c'est un petit site intranet avec 10 clients connectés 2 minutes par jour alors l'application sera moins critique et meme si le développemt a été réalisé comme-ci comme-ca alors la différence sera moindre et peut-etre pas perceptible pour l'utilisateur.
    Aujourd'hui j'utilise tres peu le SQL pur et dur car j'utilise NHibernate et Entity Framework, mais il est vrai que quand je manipule le SQL c'est pour des opérations tres critiques que les frameworks ne permettent pas, donc il m'est tres utile. Mais comme je l'ai dit, tout dépend du projet et aussi de son role dans l'équipe. Quelqu'un qui développe pour de l'embarqué devra etre tres pointilleux sur l'aspect mémoire, un autre pour un site web ecommerce a forte influence devra etre davantage pointilleux sur la sécurité et la concurrence.
    Pour du Web il vaut mieux savoir réutiliser beaucoup de choses existantes pour l'aspect graphique par contre.

  8. #108
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Personnellement, bien que (relativement) jeune développeur je ne suis pas du tout fan des frameworks/librairies externes.

    Certes je n'en ai pas utilisé des masses mais, de ce que j'en ai vu c'est parfois plus compliqué de rentrer dedans que de coder en utilisant les outils natifs (je pense par exemple à struts, struts 2 et aux EJBs). Qui plus est (toujours en pensant à struts et struts 2), on ne peut même pas se dire qu'une fois qu'on les aura maîtrisé on sera plus efficaces car, d'un projet à l'autre, ils peuvent être utilisés de façon totalement différentes.

    Pour ce qui est des librairies externes (c'est aussi valable pour les frameworks), j'ai souvent des réticences à les utiliser car je ne sais pas ce qu'il y'a derrière : comment elles sont implémentées et du coup ce que ça implique sur les performances, la sécurité, les bugs potentiels, ... alors que je n'ai pas à me poser ce genre de questions sur les fonctions de base du langage (vu que je connais déjà les réponses).

  9. #109
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 117
    Points : 343
    Points
    343
    Par défaut
    Citation Envoyé par ztony Voir le message
    Je suis un "vieux" developpeur java ...
    Je ne peux que plusseoir malheureusement, pour ma part vieux développeur tout court et java en particulier depuis qu'il existe.

    Il y a dix ans, on a eu ce que j'appellerais la vague "IDE"/objet, ces développeurs qui étaient incapables de coder sans ces technos, soit, elles sont essentielles, mais qui avaient perdu toute notion de "réalité" et nous coder, déjà, des trucs impossibles ou la moindre opération demandait 2G de RAM (vécu...). Aujourd'hui, on a celle des "frameworks", frameworks web, base de données et qui, pareil, a fait perdre encore pied avec la réalité. Des interfaces web ubuesques par leurs implémentations sous-jacentes, plus aucune notion de base de SQL (vécu encore une fois, des tables de millions de lignes sans un seul index et "le développement" de demander une migration Oracle !!!!)

    Des bonhommes qui viennent t'expliquer que quand ça rame, c'est la faute à Java ou encore a l'OS, la faute aussi a la BDD, avec comme solutions miracles: augmenter le nombre de serveurs, la RAM et aussi le fameux migrer en NoSQL sans se demander s'ils n'ont pas utilisé un bazooka pour tuer une mouche, en plus avec quelques modifications dont ils ont le secret ayant oublié toutes les notions de base de l'architecture d'une machine.

    Un vrai souci: ça a quelque peu fatigué "les décideurs" car on leur a vendu des années la techno truc, le framework machin comme solution "miracle" et de leur coté, ils n'ont rien vu venir: coûts d'implémentation, de maintenance toujours aussi élevés, voir même ayant empiré. Comme le dit Loceka, le défaut d'un framework, c'est son "coût d'entrée" et plus ils sont complexes, en vient un deuxième, les coûts d'évolution et de maintenance qui explosent contrairement a ce qu'ils promettent dans le cadre de la vie d'un projet et de son équipe.

  10. #110
    Membre émérite

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Points : 2 368
    Points
    2 368
    Par défaut
    @rimram31: Merci pour ton partage
    Si j'ai bien compris tu ne semble pas pour les IDE, pourrais tu détailler? Si installer un IDE nécessite 2GB de rame, soit quelques Euros, alors pourquoi s'en priver. J'utilise Visual Studio 2012 et je vois mal comment s'en passer sans perdre en productivité ainsi qu'en qualité.

    Des bonhommes qui viennent t'expliquer que quand ça rame, c'est la faute à Java ou encore a l'OS, la faute aussi a la BDD
    On le dit aussi aux utilisateurs pour qu'ils nous laisse tranquille, mais ca c'est une autre histoire

  11. #111
    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
    Citation Envoyé par alex_vino Voir le message
    Si j'ai bien compris tu ne semble pas pour les IDE, pourrais tu détailler? Si installer un IDE nécessite 2GB de rame, soit quelques Euros, alors pourquoi s'en priver. J'utilise Visual Studio 2012 et je vois mal comment s'en passer sans perdre en productivité ainsi qu'en qualité.
    Le probleme n'est pas sur l'IDE (quoique), mais sur le programme que tu ecris : si tu fais un programme qui prend 2Go de memoire pour afficher Hello World, car tu as decide qu'il fallait stocker un dictionnaire anglais en base de donnee pour afficher un message, alors c'est une connerie.

    L'utilisation d'IDE de plus en plus perfectionnes a permi de voir une nouvelle engeance de programmeurs : ceux capables de faire un programme qui semble fonctionner sans comprendre ce qu'ils font, ni pourquoi c'est une connerie, et que non, on n'a pas besoin d'hibernate pour faire un Hello World.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  12. #112
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 117
    Points : 343
    Points
    343
    Par défaut
    Citation Envoyé par alex_vino Voir le message
    @rimram31: Merci pour ton partage
    Si j'ai bien compris tu ne semble pas pour les IDE...
    Je ne parlais pas des 2G du poste de développement, mais de ceux nécessaires sur la plateforme de production en raison du code écrit avec Je ne met pas en cause l'IDE lui-même que j'utilise (mais pas toujours...), mais ce que je pourrais appeler la "génération IDE" avec une façon de "produire" du code qui a perdu le contact avec la réalité d'une architecture ou, effectivement, on trouve des morceaux de code allouant plusieurs giga sans que cela n'émeuve personne.

    Un grand classique que j'ai rencontré est le traitement de fichiers où le code commence par lire la totalité du/des fichier(s) source(s) en mémoire, sur le même sujet, des fichiers ouverts jamais fermés ... C'est le seul inconvénient du poste de travail a 8G de RAM, c'est que pour le développeur, chez lui, "ça marche". Quand tu développes en architecture serveur ou des centaines de personnes doivent se partager a peu près les mêmes ressources, ça le fait un peu moins bien

    Ca va vous faire marrer, mais il y a 30 ans, je développais des petits programmes sur le prédécesseur du Commodore 64 avec 8Ko de RAM, ben on faisait déjà des trucs très sympas mais il est vrai qu'à cette époque, le moindre "gâchis", ça se voyait très vite!

  13. #113
    Membre émérite

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Le probleme n'est pas sur l'IDE (quoique), mais sur le programme que tu ecris : si tu fais un programme qui prend 2Go de memoire pour afficher Hello World, car tu as decide qu'il fallait stocker un dictionnaire anglais en base de donnee pour afficher un message, alors c'est une connerie.

    L'utilisation d'IDE de plus en plus perfectionnes a permi de voir une nouvelle engeance de programmeurs : ceux capables de faire un programme qui semble fonctionner sans comprendre ce qu'ils font, ni pourquoi c'est une connerie, et que non, on n'a pas besoin d'hibernate pour faire un Hello World.
    Tu veux dire que sans IDE ton texte se traduit tout seul? Je sais bien que tu images, mais ta comparaison avec Hibernate pour un HelloWorld n'est pas tres représentative.
    Plus sérieusement le code que tu produit avec ou sans IDE devrait etre grosso-modo le meme, surtout concernant ta logique métier. Je pense que la nouvelle génération dont tu parles ne travaille pas toujours de maniere optimale car tout simplement ils ne sont peut-etre pas encore spécialiste dans le domaine et il faut qu'ils "encaissent" davantage d'expérience. Par contre ce que j'ai remarqué dans le systeme scolaire c'est que les cours sont souvent orientés vers un language (surement pour permettre de mettre un pied plus facilement dans le monde "pro" qui souvent demande d'etre expert a sa sortie d'école) et donc pas assez généraliste. On ne va pas revoir tout le systeme scolaire mais ci-dessus j'ai vu qu'était cité B-Tree, je n'ai jamais rencontré une seule fois ce mot avant que je l'apprenne dans mes cours du soirs.

  14. #114
    Membre émérite

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par rimram31 Voir le message
    Je ne parlais pas des 2G du poste de développement, mais de ceux nécessaires sur la plateforme de production en raison du code écrit avec Je ne met pas en cause l'IDE lui-même que j'utilise (mais pas toujours...), mais ce que je pourrais appeler la "génération IDE" avec une façon de "produire" du code qui a perdu le contact avec la réalité d'une architecture ou, effectivement, on trouve des morceaux de code allouant plusieurs giga sans que cela n'émeuve personne.

    Un grand classique que j'ai rencontré est le traitement de fichiers où le code commence par lire la totalité du/des fichier(s) source(s) en mémoire, sur le même sujet, des fichiers ouverts jamais fermés ... C'est le seul inconvénient du poste de travail a 8G de RAM, c'est que pour le développeur, chez lui, "ça marche". Quand tu développes en architecture serveur ou des centaines de personnes doivent se partager a peu près les mêmes ressources, ça le fait un peu moins bien
    Ce que toutes les entreprises m'on dit: "acheter de la RAM coute rien, augmenter les délais de livraison des projets pour un gain non perceptible au client coute bien plus cher.". Ce genre de propos tend a réduire la qualité des projets, car quand on code on oublie parfois des optimisations et apres on ne revient plus dessus (manque de temps, cout trop élevé).

    Citation Envoyé par rimram31 Voir le message
    Ca va vous faire marrer, mais il y a 30 ans, je développais des petits programmes sur le prédécesseur du Commodore 64 avec 8Ko de RAM, ben on faisait déjà des trucs très sympas mais il est vrai qu'à cette époque, le moindre "gâchis", ça se voyait très vite!
    J'étais pas né, ca fait rever de telles performances
    Le moindre gachis sur du développement Android se voit aussi rapidement de nos jours, tous les smartphones n'on pas du quad-core.

  15. #115
    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
    Citation Envoyé par alex_vino Voir le message
    mais ta comparaison avec Hibernate pour un HelloWorld n'est pas tres représentative.
    Plus sérieusement le code que tu produit avec ou sans IDE devrait etre grosso-modo le meme, surtout concernant ta logique métier.
    Prenons un exemple vecu : Tu as une base de donnee avec des images de villes, et 3 infos sur la ville.
    Ce qu'a fait la personne : prendre NetBeans, et dans une partie que je ne connais pas, ouvrir 3 trucs, faire une jolie fenetre, et generer le code qui recupere les infos de la base et affiche l'image, avec comme legende l'un des champs.

    Ca fonctionnait tres bien, pour 24 images sur un PC avec 8Go de RAM avec un seul utilisateur. Je te laisse imaginer le truc lorsqu'il a ete teste sur un gros serveur, mais avec acces concurrents et une base de donnee tres volumineuse : ca a tout plante, car le code etait tout pourri.

    Cette generation de code, elle est pratique pour faire une demo (dixit l'un des developpeurs de NetBeans), mais ne devrait jamais etre utilisee pour faire une vraie application.


    La meme chose arrive chaque jour avec les developpeurs qui connaissent les IDE sur le bout de doigts (c'est bien), mais ne comprennent pas les concepts derriere (c'est mal).
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  16. #116
    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
    Citation Envoyé par alex_vino Voir le message
    Ce que toutes les entreprises m'on dit: "acheter de la RAM coute rien, augmenter les délais de livraison des projets pour un gain non perceptible au client coute bien plus cher."
    C'est peut-etre vrai pour certains clients. D'autres utilisent des serveurs a $500 000, avec des sites redondants qui doivent etre capables de tenir les memes performances, donc tout achat est multiplie par 2.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  17. #117
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Ce qu'a fait la personne : prendre NetBeans, et dans une partie que je ne connais pas, ouvrir 3 trucs, faire une jolie fenetre, et generer le code qui recupere les infos de la base et affiche l'image, avec comme legende l'un des champs.
    C'est quand même un cas ésotérique et qui n'a pas grand chose avec les IDE en général.

    Pour moi un IDE c'est un outil qui permet d'aider au développement (coloration syntaxique, complétion automatique, affichage intégré de la documentation), à la gestion de projets (plusieurs sous-projets dans le même environnement, pratique pour les recherches et la gestion de conf) et à la compilation/exécution (interaction avec ant, tomcat, ...).

    Je ne comparerait ça en aucun cas aux frameworks en tout genre.
    Après ce qui est discutable (ou même pas en fait) ce sont les générateurs de code, mais ça ne fait pas partie de la base d'un IDE.

  18. #118
    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
    Citation Envoyé par Loceka Voir le message
    Après ce qui est discutable (ou même pas en fait) ce sont les générateurs de code, mais ça ne fait pas partie de la base d'un IDE.
    Malheureusement, ca en fait de plus en plus partie. Rien que la generation des getter/setter, c'est de la generation de code. Et pleins d'IDE te proposent (beaucoup) plus.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  19. #119
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par alex_vino Voir le message
    Ce que toutes les entreprises m'on dit: "acheter de la RAM coute rien, augmenter les délais de livraison des projets pour un gain non perceptible au client coute bien plus cher.". Ce genre de propos tend a réduire la qualité des projets, car quand on code on oublie parfois des optimisations et apres on ne revient plus dessus (manque de temps, cout trop élevé).
    Exemple que je vis en ce moment :

    Pour un algo de géométrie, une "référence absolue" dans l'optimisation est un certain algo.. Jsque-là rien que de très normal..

    Sauf que...

    Afin d'implémenter cet algo, tu as besoin de au minimum 8 fois l'espace mémoire minimum.

    C'est donc bien une optimisation, mais en vitesse seulement.. Or, quand on traite des millions de points, ça devient quand même un sacré problème..


    Citation Envoyé par gangsoleil Voir le message
    Malheureusement, ca en fait de plus en plus partie. Rien que la generation des getter/setter, c'est de la generation de code. Et pleins d'IDE te proposent (beaucoup) plus.
    Exemple vécu ces jours-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Point  ( x, y )
    
    Point.GetX ()
    Point.GetY ()


    2 appels de fonctions (donc overhead) pour obtenir les coordonées d'un point....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  20. #120
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 117
    Points : 343
    Points
    343
    Par défaut
    Citation Envoyé par alex_vino Voir le message
    ...Le moindre gachis sur du développement Android se voit aussi rapidement de nos jours, tous les smartphones n'on pas du quad-core.
    Le succès des développements disons "embarqués" est pour moi une très bonne nouvelle justement pour que les développeurs reprennent de bonnes habitudes

    Le débat n'est pas celui des IDE, ils sont très bien, la génération de code automatique, c'est toujours discutable quand ça génère des usines a gaz (in maintenables qui plus est!). Je parlais plutôt de mauvaises pratiques de programmation, la question n'est pas d'optimiser "a tout prix", simplement d'avoir quelques réflexes de bon sens en développant quand l'écriture d'un code "économe" ne prend pas plus de temps, simplement une question d'habitudes.

    Ecrire le close quand j'ouvre un fichier, le lire avec un buffer, aider le gc en déréférençant ses objets, utiliser les algos (tri, recherches ...) standards ... se préoccuper de ses appels système, IO, de la performance de ses requêtes database, ... des exemples, je pourrais en donner des dizaines, je suis assez ahuri que ces "bonnes pratiques" se soient quelque peu perdues.

Discussions similaires

  1. Plusieurs URL pour une application Flex
    Par Mygush dans le forum Flex
    Réponses: 1
    Dernier message: 13/06/2012, 11h07
  2. Réponses: 1
    Dernier message: 06/03/2012, 16h43
  3. [CakePHP] Configurer plusieurs environnements pour une application CakePHP
    Par RideKick dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 10/11/2009, 14h31
  4. Réponses: 8
    Dernier message: 18/01/2007, 21h01

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