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. #1
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut L’orientation vers plusieurs outils pour une application est-elle mauvaise ?
    L’orientation vers plusieurs outils pour une application est-elle mauvaise ?
    Un développeur à « l’ancienne » critique la multiplicité des bibliothèques


    William Edwards, un développeur “senior” attire l’attention dans un article de blog sur les choix des développeurs qu’il appelle « modernes » et qui pour lui auraient de très mauvais effets sur l’industrie.

    Les développeurs opteraient de plus en plus pour une multitude de bibliothèques externes modernes pour la conception d’une application.

    Ces bibliothèques, bien qu’offrant chacune de bonnes performances, seraient utilisées sans une réelle maîtrise des spécificités de celles-ci, et le produit qui en ressortirait serait souvent complexe, et dans la plupart des cas assez difficile à maintenir voire peu performant.


    William Edwards part d’un commentaire d’un lecteur sur un article qui expliquait comment l’outil NooSFere peut comprimer à 90% des emails.

    L’application NooSFere utilise un cache avec l’algorithme LRU (Least Recently Used). Les mails deviennent une liste de pointeurs de chaine partagée et la compression est effectuée en arrière-plan en utilisant l’algorithme de compression de données LZMA (Lempel-Ziv-Markov chain-Algorithm).

    L’utilisation uniquement des ressources du langage (table de hachage Java normale et listes liées) ayant permis un gain de performance énorme a été cependant critiquée par un développeur.


    Celui-ci dans son commentaire se demande pourquoi Redis (système de gestion de base de données NoSQL, clef-valeur libre, scalable, hautes performances) n’a pas été utilisé dans le projet pour la LRU. Proposition qui est soutenue par une autre personne qui trouve que Redis couplé à node.js sont connus pour être assez performants. Donc, une orientation vers une solution Web.

    « Les projets sont de plus en plus des sites Web » regrette Edwards, qui ajoute. « Vous n’avez pas besoin d’être un puissant programmeur. Vous pouvez utiliser JavaScript, exécuter node.js et utiliser MongoDB ou Redis en arrière-plan et vous pensez que votre solution est performante ? ».

    De façon générale pour William Edwards, les développeurs optent beaucoup plus pour la facilité que pour la simplicité. Résultat, ils se retrouveraient très souvent avec des solutions complexes disposant de plusieurs briques logicielles (bases de données NoSQL, interfaces, divers scripts issus des copier/coller, bibliothèques d’accès aux données, etc.) et peu performantes.

    « Il y a une nouvelle mentalité – un mouvement moderne – le développement d’une application revient à réfléchir sur comment relier une constellation de composants logiciels différents […] ils veulent utiliser tous les nouveaux outils qui brillent» conclut Edwards.

    Pour lui, il serait presque toujours préférable d’utiliser une base de données locale (sqllite, levelDB, BDB etc.), un langage rapide reposant sur un runtime (et éviter les langages dynamiques), et utiliser le moins de machines possible pour effectuer une transaction (le premier ennemi de la performance serait le nombre de machines).

    Bref, un avis tranché qui ressemble fort à une incompréhension générationnelle. Mais qui n’est pas dénué d’analyse.

    Un avis, en tout cas, qui suscite débat et réactions.

    Le billet de blog William Edwards


    Et vous ?

    Partagez-vous le point de vue de William Edwards ?

    Pensez-vous que le choix de plusieurs outils récents pour développer un produit n’est pas le meilleur ?

    Vous reconnaissez-vous dans sa définition d’un “développeur moderne” ? Et que lui répondriez-vous ?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Apparemment il fustige les dev qui suivent à l'excès l'école de pensée "ça sert à rien de réinventer la roue".

    Tout dépend du contexte, c'est franchement dur de répondre comme ça.

    A mon avis la question c'est plus:
    quel doivent être les critères pour juger si on peut réutiliser de l'existant?

    Des choses comme le fait que l'existant soit open ou close-source, maintenu ou non, criticité de la chose, etc...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 114
    Points : 618
    Points
    618
    Par défaut
    De ce que j'ai compris,

    il préconise "d’utiliser une base de données locale (sqllite, levelDB, BDB etc.), un langage rapide reposant sur un runtime (et éviter les langages dynamiques), et utiliser le moins de machines possible pour effectuer une transaction (le premier ennemi de la performance serait le nombre de machines)."

    Mais ... bien sûr !
    C'est l'évidence même.
    (bon, sauf pour le langage qui peut avoir son utilité, bref.)

    Quel besoin de sortir, je cite, "JavaScript, exécuter node.js et utiliser MongoDB ou Redis en arrière-plan" ...
    soit un serveur web (avec support de javascript), 1 base de donnée NoSql ... et un client web ...
    pour faire la même chose qu'un runtime en arrière-plan ?

    Il n'est pas utile de sortir toute la machinerie "web" (client/serveur) pour un besoin local sur la machine.

    C'est plutôt typique des personnes qui développement des applications middleware pour du SI : ils ont la liberté de choisir ce qu'ils veulent et ont souvent déjà les serveurs disponibles pour le faire.

    En embarqué, par exemple, on n'a pas le choix ! On est contraint par l'environnement technique donc le choix devient forcément plus "pertinent" vis-à-vis des contraintes.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 319
    Points : 843
    Points
    843
    Par défaut
    A mon humble avis (puisque c'est ce qu'on me demande ), la bonne documentation et la maintenabilité des librairies / code existant sont les deux facteurs essentiels. Bien sûr il y a plein d'autres facteurs, mais ce sont pour moi les plus proéminents, car ils permettent déjà de répondre aux questions prioritaires :

    1) Que fait exactement la librairie ? Comment fonctionne-t-elle ?
    2) Répond-t-elle vraiment à notre besoin ?
    3) Les auteurs réalisent-ils un support ? Si oui, quel est la durée garantie ?
    4) Peut-on rendre la (ou les) fonction(s) plus efficace(s) ? Si oui, quel sera le coût (temporel / monétaire) de refaire ne serait-ce que l'exact équivalent ?


    Certes, dans ces questions se glisse un peu la notion d'accès au code-source, qui détermine en partie la maintenabilité de la librairie.


    Ceci dit, je trouve qu'Edwards ne fait que remettre sur le plateau une autre version de l'interrogation : comment dire qu'on code "correctement" ?
    Il y a plusieurs constantes (ex : pouvoir être relu par quelqu'un d'extérieur) et plusieurs variables dépendante du contexte et du besoin. Sans parler des éventuels standards propres aux langages ...

    Chacun sa sauce. Pour lui, c'est "ne pas intégrer n'importe quel librairie". Un point de vue qui se respecte.
    "Donnez un poisson à un Homme, et il mangera un jour. Apprenez-lui à pêcher, et il mangera tous les jours."

  5. #5
    Membre chevronné Avatar de zeyr2mejetrem
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2010
    Messages
    471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 471
    Points : 2 040
    Points
    2 040
    Par défaut
    Citation Envoyé par deathness Voir le message
    Apparemment il fustige les dev qui suivent à l'excès l'école de pensée "ça sert à rien de réinventer la roue".

    Tout dépend du contexte, c'est franchement dur de répondre comme ça.

    A mon avis la question c'est plus:
    quel doivent être les critères pour juger si on peut réutiliser de l'existant?

    Des choses comme le fait que l'existant soit open ou close-source, maintenu ou non, criticité de la chose, etc...
    Je pense surtout qu'il est comme beaucoup de monde ... excédé de se récupérer des usines à gaz.

    En PHP il n'était pas rare que je me retrouve à faire de la maintenance logicielle sur des applis déployant toute l'infra Zend_Framework ... juste pour pouvoir exécuter des requêtes dans une base de donnée sans avoir à écrire l'ouverture de connexion

    Il est clair qu'on ne doit pas réinventer la roue ... mais parfois ca peut être salutaire pour la maintenance de se demander si on utilise pas le marteau pour écraser la mouche.
    Si tu ne sais pas faire, apprends. Si tu fais, fais bien. Si tu sais bien faire, enseigne.
    Mieux vaut paraître stupide quelques temps que rester stupide toute sa vie.

  6. #6
    Membre du Club
    Profil pro
    lead tec
    Inscrit en
    Octobre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : lead tec

    Informations forums :
    Inscription : Octobre 2011
    Messages : 16
    Points : 56
    Points
    56
    Par défaut
    Deathness, tu commentes alors que tu n'as même pas lu l'article....

    Et pour gagaches, ne te focalise pas sur un des exemples qu'il donne.

    L'idée générale de ce poste; c'est essentiellement de critiquer la manie qu'on les nouveau développeur à vouloir absolument utiliser toutes les technologies les plus récentes en oubliant de répondre à cette question essentielle:
    - quelle(s) technologie(s) va être la plus efficace pour répondre à mon problème.

    Avec pour résultat, des applications complexes souvent peu performante, mais utilisant de nombreux outils/langages/framework modernes.
    Alors qu'un résultat plus performant aurait pu être obtenue en utilisant moins d'outils/langages (qu'il soit moderne ou non

    Cogs bad = les engrenages, c'est mal.

    En effet, à vouloir utiliser de trop nombreux outils/langages/framework (pour ne pas réinventer la roue); le développeur crée une très grand complexité pour faire fonctionner ensemble tous ces éléments qu'il a choisis, non pas parce qu’ils répondent à un besoin, mais parce que c'est à la mode de les utiliser.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 35
    Points
    35
    Par défaut
    Je pense un peu comme lui...
    Je dois dire que souvent, les frameworks/api fournissent beaucoup plus de fonctionnalités que celles qui sont réellement nécessaire au fonctionnement du soft, on se retrouve a embarquer un grand nombre de truc dont 10% sera utilisés...

    Ca permet certes d'avoir un bon potentiel d'évolutivité du soft, mais ça a la risque d'alourdir énormement le tout.

    Me concernant il m'est déjà arrivé par exemple de recoder un client xml / webservice, ca m'a pris 3 jours a partir de libs de bases tel que tinyxml et libcurl (pour du c/c++) et ca m'a permis de m'affranchir d'usines a gaz monstrueuses.

  8. #8
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Cette après-midi, j'ai eu une réunion sur l'ajout d'un outil sur le site sur lequel je fait de la "maintenance et amélioration". (Comprendra qui voudra)

    Le but étant de :
    Savoir si la page convertit... mieux.. dans cette configuration...
    Logiquement, je répond qu'on a déjà des outils d'analyse sur tout le site et que je ne vois pas pourquoi ils ne peuvent pas faire l'affaire.

    J'ai pour simple réponse qui justifie tout :
    Si les grosses sociétés l'utilisent, c'est qu'elle est forcément mieux.(1)
    Je répond donc :
    Je remplace donc les outils actuelles par celui-ci ? Vue qu'ils ont aussi pour but de savoir si nos pages convertisses...

    Tout ça pour dire qu'il est parfois difficile d'être un développeur ( au service du client) moderne.

    Le problème n'est pas de savoir si la librairie est nouvelle ou non. Mais de savoir si celle-ci n'est pas en doublon ou s’intègre à l'environnement pré-existant.

    Cordialement,
    Patrick Kolodziejczyk.

    (1) : Argument du pseudo technicien-marketeux(2)
    (2) : Marche aussi avec pseudo développeur ou tout autre variante
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  9. #9
    Membre habitué
    Homme Profil pro
    Architecte C#
    Inscrit en
    Février 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte C#

    Informations forums :
    Inscription : Février 2003
    Messages : 78
    Points : 144
    Points
    144
    Par défaut
    a voir surtout la maintenabilité :

    un framework existant sera documenté,

    je n'ai jamais vu un développeur qui avait développé une brique maison pondre une documentation équivalente à celle de spring, pour comparer à une usine connue.

    En revanche, j'en ai vu un réinventer son framework Ioc pour son entreprise.
    Plus performant ? peut être, mais un gain de 100ms est cher payé en cout de développement quand son framework ne fonctionnait pas comme il devait (trop souvent).

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 149
    Points : 206
    Points
    206
    Par défaut
    Ce qu'il veut dire, c'est que à l'heure actuelle, et plus on avance, Plus il y a d'applications mal programmées ! Et que ceci est la faute des librairies préfaites, où tous ces "devs" modernes ont l'air de se jeter les yeux bandés...

    Parceque il y a de plus en plus de "devs" qui ne font que jouer à un puzzle sans rien y comprendre... (le genre de mec qui va meme pas ouvrir les librairies toutes faites pour examiner ce qui se passe vraiment dedans...)

    ...et voila ils collent ça sans aller plus loin.
    Ça "marche" (sur le coup lol) et c'est tout ce qu'ils désirent...

    Il n'y a pas bcp "d'outils récents" ou même vieux qui soient des bonnes choses pour le dev d'une appli propre(simple) Et performante, et sécurisé.


    Edit: nflowerpower

  11. #11
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    Pour un projet en php à l'heure actuelle ça me semble assez inconcevable de ne pas utiliser de framework.. Sauf cas particulier, ce serait prétentieux de vouloir monter le sien pour l'occasion (je parle bien d'aujourd'hui, y a 5 ans jdis pas)..

    C'est sur que c'est mieux de tailler son outil pour le besoin, mais y a des contraintes économiques qui entrent en jeu ; pour des projets web faut être préparé à de forts changements de specs qui font que l'outil super optimisé pour le besoin à un instant T risque de ne plus l'être par la suite.

  12. #12
    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
    Je suis d'accord avec l'impression de William Edwards.
    Mais cela ne viens pas d'un choix personnel du développeur (fainéantise, curiosité, ou autres) de travailler de cette facon.
    C'est la situation actuelle qui fait que on n'a pas beaucoup de temps pour développer un projet ou une partie d'un projet. Les délais souvent tres serrés font que l'on doit souvent piocher a droite ou gauche pour pouvoir tenir la cadence.

    Apres il ne faut pas non plus réinventer la roue, sinon en .Net pourquoi utiliser le Framework, en Java...
    Et un logiciel comprend beaucoup de spécialités différentes (données, performance, concurence, communication, matériel, intéraction avec d'autres services...), on ne peux pas etre performant partout, donc parfois se tourner vers une solution existante est peut etre la seule solution possible.

    On est souvent bien content d'utiliser les petites dll de ses collegues quand le travail a déja été fait, testé et éprouvé. Et bien content de partager aussi.

  13. #13
    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 Vimaire Voir le message
    a voir surtout la maintenabilité :

    un framework existant sera documenté,

    je n'ai jamais vu un développeur qui avait développé une brique maison pondre une documentation équivalente à celle de spring, pour comparer à une usine connue.

    En revanche, j'en ai vu un réinventer son framework Ioc pour son entreprise.
    Plus performant ? peut être, mais un gain de 100ms est cher payé en cout de développement quand son framework ne fonctionnait pas comme il devait (trop souvent).
    Perso au boulot on utilise des frameworks maisons (couplés au .Net framework), ils sont surement bien mieux documentés que beaucoup de grands Frameworks et font gagner énormément de temps.
    Je pense que dans beaucoup de sociétés dans lesquelles les devs sont des passionés ce ne doit pas etre tres rare. Meme pour mes usages perso j'ai le miens qui me suis partout, car tout logiciel est unique et les frameworks existants ne pourront jamais couvrir tous les cas de figure.

    Peut etre que ton application gagnera 100ms comme tu dis, mais le jours ou tu manipuleras des palanqués de données avec énormément d'acces simultanés alors tu pourra dire ouf.
    Par ailleurs le serveur pourrait etre content de ces 100ms, qui pour lui peut-etre que c'est 100ms x nb clients x nombre requetes + évite multiples acces ressources/réseau...
    Apres si ca ne fonctionne pas le dev doit au minimum capable de pondre un code potable, sinon qu'il se reconvertisse
    Ce n'est pas une dépense, mais un investissement.

  14. #14
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Premier point, je suis d'accord avec lui.

    Second point, ce n'est pas toujours possible de programme "de la bonne façon".

    Dans une société ou les développeurs se suivent (parce que les salaires ne sont pas suffisants, les cahiers des charges inconsistants, les horaires flexibles...etc, etc...) il est plus efficace d'avoir recours à des frameworks "connus" que sur du code interne.

    D'ailleurs on voit plus souvent des offres "Développeur Symfony" que "Developpeur PHP", ou "Développeur jQuery" qui "Développeur Javascript", etc...

    Tout simplement parce que le nouveau développeur n'aura pas besoin d'apprendre le framework interne pour bosser, il arrive avec un savoir externe immédiatement utilisable.

    L'autre tendance c'est l'architecture logicielle, on ne programme plus on travaille sur des concepts haut niveau. L'objectif est là encore la productivité, "ne pas réinventer la roue"...mais tout cela bien souvent au détriment des performances.

    Quelque part ça ne me dérangerais pas si les "nouveaux développeurs" ne connaissaient pas QUE ça ! Si on commençait par du haut niveau, du framework 2.0, et qu'ensuite on s'intéressait à l'optimisation quand c'est nécessaire en tapant dans les couches basses pour éviter les lourdeurs inhérentes à ces modèles de développement.

    Mais justement, le "nouveau développeur" ne sait pas ce qu'il se passe dans les couches basses, ou pire encore, il l'a oublié ! Il s'est fait sué pendant ses études à faire de l'algorithmique mais ne sais plus faire une recherche dichotomique et ne sais même plus ce que c'est...alors il serait bien en mal de faire mieux qu'un framework !

    En résumé ce qui me chagrine ce n'est pas l'évolution des méthodes de travail, c'est la perte de compétence qui va avec.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  15. #15
    Membre éprouvé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Points : 1 253
    Points
    1 253
    Par défaut
    « Il y a une nouvelle mentalité – un mouvement moderne – le développement d’une application revient à réfléchir sur comment relier une constellation de composants logiciels différents […] ils veulent utiliser tous les nouveaux outils qui brillent» conclut Edwards.
    Je suis assez d'accord. Et en même temps, comme dit précédemment, ce qui brille, c'est ce qui attire dans un CV... Le développeur moderne, confronté au monde moderne, change de SSII tous les 2 ans et a besoin d'un CV qui brille pour s'en sortir !

    Après je dois avouer que souvent les développeur préfèrent utiliser une solution externe plutôt que ce que leur fournit le langage, parfois de façon très simple et pratique.
    Pour ne citer qu'un exemple, combien de fois ai-je vu en Java toute l'API commons-lang tirée par un projet, qui au final n'utilise que StringUtils pour savoir si une chaine est vide. On se retorouve avec plétore de dépendances, qui alourdissent le projet, ajoutent une surcouche au JDK et in fine rendent le programme plus lourd.

    Alors soit je me fais vieux (damned!!!) soit il y a peut-être un juste milieu à trouver entre tout ré-écrire et utiliser une API tierce à tout prix...
    Si , et la ont échoué mais pas nous, pensez à dire et cliquez sur . Merci !

    Ici, c'est un forum, pas une foire. Il y a de respectables règles... à respecter !

  16. #16
    Membre actif
    Avatar de fmdao
    Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Points : 210
    Points
    210
    Par défaut
    Allez donc voir du côté de la formation.

    Par exemple pour avoir enseigné en BTS IG puis SIO, je peux vous dire que le niveau de 90 % des étudiants en examen est très faible. Hors plus de 70% obtiennent leur BTS !

    Ils comprennent à peu près les requêtes SQL simples mais pour le reste, c'est une catastrophe.

    Du coup, ils utilisent du copier/coller avec les librairies qui y sont associées. N'utilisent pas les fichiers locaux mais systèmatiquement une bdd en client/serveur. Ne savent pas ce qu'est un compilateur, un interpréteur, où s'exécute le programme php ou le js, ...

    Posez leur une question sur le fonctionnement d'un "if", sur ce qu'est un tableau et vous aurez des surprises.

    C'est de l'illétrisme Informatique !

    Et le passage au BTS SIO ne fait qu'entériner cette démarche...

    De toute façon, ce n'est pas grave puisque nous vivons à l'heure du developpeur jetable.

  17. #17
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1
    Points : 3
    Points
    3
    Par défaut
    @Paul TOTH je partage ton avis. Ce qui me fais peur aussi, c'est l'absence de curiosité, l'absence d'envie de comprendre "plus", d'approfondir, de soulever le capot et regarder un peu, juste comme ça, pas trop. Ca me tue.

  18. #18
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Points : 2 627
    Points
    2 627
    Par défaut
    Ca dépend quand même beaucoup du type de projet/produit.

    Pour lui, il serait presque toujours préférable d’utiliser une base de données locale (sqllite, levelDB, BDB etc.), un langage rapide reposant sur un runtime (et éviter les langages dynamiques), et utiliser le moins de machines possible pour effectuer une transaction (le premier ennemi de la performance serait le nombre de machines).
    Pour des questions de perfs, ça roule de source !!!
    Faire un "Core" en natif pour les perf ok. Mais faire une IHM en natif, euh .... Autant prendre un framework pour se simplifier la vie.
    Donc, dans ce cas, il ne serait pas illogique d'avoir 2 frameworks (Core et IHM).

    Je rejoins Paul. Après 10 ans d'expérience, je me rend compte qu'on est de plus en plus intégrateur.

  19. #19
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 80
    Points : 197
    Points
    197
    Par défaut
    @zePangolin le problème de la curiosité, c'est qu'il faut du temps pour la mettre en oeuvre...
    Dans toutes les boites que j'ai faites à l'exception de la première (mais les assurances, en même temps, ca compte qu'à moitié : ils avaient de l'argent à perdre ! -ou à investir, dépend du point de vue-), les plannings sont calculés serrés : 5J de dev = 1S dans le planning ! Aucun temps réservé pour de la veille, pour gratter un peu du vieux code, pour faire du refactoring,...
    Y a même un boite où ils s'étonnaient qu'on prenne du retard sur les dev alors qu'on croulait sous la maintenance (donc pression, donc codage à la va-vite -parce qu'on est humain quand même-, donc bugs, donc maintenance...).

    J'ai aussi fait une boite où on te demandait de coder en repompant d'un projet sur un autre, je cite "sans se poser de question"... Tout ça parce que les spec n'étaient pas signées mais que si on ne démarrait pas le dev, on serait dans les choux... Moralité : trois refontes du cahier des charges avant signature finale des spec par le client, et au moins autant de refonte du code, un projet à dégueuler sur place, conspué par un client mécontent et du résultat, et du temps pour en arriver là !!! (et les dev en ont pris plein la gueule, bien entendu ! -après, on s'étonne qu'on reste pas en place !-).

    Bref, en se posant des questions sur les dev et leur manière de faire les choses, regardons aussi l'ensemble de l'industrie logicielle : des clients qui croient que "y a qu'à, faut qu'on" à coup de baguettes magiques pour trois-francs-six-sous, des responsables qui croient dur comme fer au "copier-coller" du code décontextualisé ("y a juste à faire comme là" "ouais, mais là, c'est un script SQL qui prend des données extraites d'un tableau excel où une macro VB calcule ta clé cryptée..." "oui, c'est ce que je dis : faut juste refaire tout le truc dans la proc stock oracle, c'est exactement la même chose, doit pas y en avoir pour longtemps" "heu...), de dev qu'on pressurise à coup de "on pourrait déporter le plateau en Inde, vous savez",...

    J'adore mon taf, mais y a des jours où quand même, marcher sur la tête me sort par les yeux.......
    "Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live." (Code for the Maintainer)
    I usually maintain my own code, so the as-if is true!

  20. #20
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 218
    Points : 1 088
    Points
    1 088
    Par défaut
    Attention à ne pas faire de généralités. J'ai déjà connu tout un coeur d'une grosse appli fait en natif, parce que "ça sera sur mesure, plus rapide, plus optimisé", etc. Et au final, on a quelque chose de lourd, mal pensé, mal construit, pas maintenable, où seulement le gars qui l'a fait sait se relire (et encore), une grosse usine à gaz que personne ne veut toucher.

    Bref, pour moi, le sujet, c'est pas framework ou pas framework, mais c'est d'avoir du discernement ou pas. L'ennemi, dans tout ça (et c'est comme ça que j'ai compris l'auteur de l'article), ce sont les effets de modes qui conduisent à des choix immatures. (et en l’occurrence, comme le pointe l'article, certains choix de framework/lib sont des effets de mode).

    Choisir de faire le cœur de son appli en C++ natif parce que "le c++ c'est bien, c'est rapide", ou choisir du "spring-hibernate-maven-struts" parce que "c'est génial", c'est tout aussi dangereux quand on ne connait pas ses limites, ses compétences.

    Le discernement... C'est choisir ses outils (et ses employés) en fonction des objectifs de performance, maintenabilité, qualité, qui dépendent tellement du contexte de chaque projet que ça n'a rien à voir avec la question générale du "framework ou pas framework".

Discussions similaires

  1. Plusieurs URL pour une application Flex
    Par Mygush dans le forum Flex
    Réponses: 1
    Dernier message: 13/06/2012, 12h07
  2. Réponses: 1
    Dernier message: 06/03/2012, 17h43
  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, 15h31
  4. Réponses: 8
    Dernier message: 18/01/2007, 22h01

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