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 :

La POO tout le temps et partout, vraiment ? [Débat]


Sujet :

Langages de programmation

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut La POO tout le temps et partout, vraiment ?
    Bonjour,

    Voilà plusieurs jours que j’ai décidé de vraiment « rentrer » dans le dur, et que j’accumule les heures de lecture passionnée à parcourir les différents topics de ce forum génialissime. Ne trouvant pas vraiment de topic attaquant le problème de la programmation web tel que je l’entends, j’ai l’outrecuidance de penser que cela peut pourtant présenter un intérêt et engendrer une discussion qui peut apporter quelque chose (en tout cas déjà m’aider dans ma tentative de raisonnement sur la chose…). Je tente donc ma chance…

    Passé par la fac un court moment, j’ai été initié à la POO « comme tout le monde » je dirais, pour peu qu’on ait touché un cursus scientifique ou mathématique. A l’époque (y’a plus de 12 ans déjà… ), j’ai rien foutu et ça me gonflait. C’est rentré par une oreille…
    Bref, j’ai un peu joué avec HTML quand le web est apparu, posé quelques sites, mais on ne peut évidemment à l’époque pas parler de dev, le HTML n’étant pas un language de programmation.
    Ensuite, vient Javascript, mais aussi java, les scripts CGI, Perl… Bref, le net se complexifie, et le code, le vrai le dur, vient y faire sa place par tous les moyens possibles. Et il a raison : le net est devenu riche, foisonnant, dynamique…
    Aujourd’hui, on dispose de plusieurs dizaines de languages, au moins 3 plate-formes serveurs, et plusieurs « environnements de développements » ultra méchants, genre .NET qui permettent de quasiment tout faire, du wap au web classique, en passant par du dev monoposte hors net,etc...

    Alors apparaissent sur un excellent forum comme celui-ci des tas de débats du genre :
    - quel language est le meilleur ? PHP tiendra-t-il le coup face à .NET et consors ?
    - par quel language pour commencer ?
    - avantages et inconvénients de l’architecture client-serveur…

    Alors on peut lire ça et là qu’à l’évidence, le rêve de la communauté des codeurs serait un language qui « ferait tout », permettant du dev universel côté client comme java, un monstrueux en potentiel graphique comme actionscript, ouvert et rapide à mettre en œuvre côté serveur comme php, le tout avec de la POO mais pas QUE ça, avec un environnement de dev à la dreamweaver mais en mieux (optimisation du code notamment) et le tout GRAUIT mais avec une hotline permanente gratuite elle aussi pour les entreprises et l’aspect pro de la chose, sans oublier un type riche et faible au bout de la chaîne à qui on peut faire des procès si le compilateur présente un bug…

    Ok.

    Là, dessus, je reviens sur moi. Avec un partenaire, nous avons fait développer un certain nombre d’idées de sites, dans l’espoir secret de pouvoir quitter nos jobs respectifs, et se retrouver à administrer une petite galaxie d’une dizaine de sites de moyenne envergure, basés sur le service (un d’entre eux en e-commerce quand même..), pilotés de quelque part dans le monde, nous permettant une vie de nomades rentiers non pas d’un capital financier, mais d’une galaxie de sites internet qui crachent du revenu régulier…
    En 3 ans, on a ouvert une vingtaine de sites. Certains ont marché, marchent toujours, d’autres pas, la vie du net quoi. Mais l’essentiel n’est pas là.

    Quand je reviens sur la manière, quand j’analyse où nous avons merdé (on ne peut toujours pas en vivre, loin de là…), quand j’essaie de tirer des leçons de ce qui s’est passé et que je tente de modéliser un système efficace basé sur les erreurs et succès accumulés jusqu’ici, j’arrive à plusieurs remarques, listées ci-dessous et au terme desquelles, je promets, il y a les quelques questions qui motivent ce post !

    J’ai lu ici un propos sur les « bidouilleurs » et les « pros »
    Le pro, on parle bien ici de codeur, c’est celui qui fait ce que le client lui demande, et rend un projet qui fonctionne en temps voulu. Si le client n’a pas demandé de dev ultérieur basé sur le site dans sa version 1, si l’architecture du site n’est pas très complexe, si le client n’a que peu de moyens, alors y’a-t-il un intérêt à se ruiner sur un super top codeur qui ne jure que par de la POO top niveau ? Soyons clairs : à résultat final pour l’internaute EGAL, développer en POO est plus long, donc plus coûteux que développer « à l’arrache ». Ne me faites pas le topo sur le futur, la réutilisation des classes etc, ce n’est pas le propos.

    Je ne suis ni pro ni bidouilleur, moi je suis dans la position du client.
    Avec le budget nécessaire pour payer un « pro », je lance 10 petits sites développés à l’arrache et en bordel par un « bidouilleur ». Et alors ? Et alors ça va me permettre de tenter plein de trucs, de donner vie à plein d’idées, et donc, de multiplier les chances de « lever » un concept de site qui a du potentiel.
    Qu’il soit développé en php, en jps, en asp.net, mon internaute, il s’en tape les noix, mais alors complètement. Lui, ce qu’il veut, c’est que ça marche, et que ça soit rapide. Lui, ce qu’il veut, c’est qu’éditorialement ça lui apporte quelque chose. Point.
    Après ça, que derrière le code soit calé au micron en POO ou que ce soit un bordel PHP, y’a finalement que le codeur perfectionniste que ça intéresse. Le codeur perfectionniste, et la très très grosse structure éventuellement, déjà capable de dire que le site est un futur MONSTRE (genre www.sncf.com ) et que donc, une approche objet est nécessaire et pertinente pour les développements futurs.

    En tant que petit client, mon approche, qui n’est sans doute que celle de 99% de ceux qui tentent le net aujourd’hui, c’est la suivante :

    J’ai plein d’idées, mais pour leur donner une chance, il faut leur donner « vie » sur le toile à chacune pendant un temps minimum. Mais pour leur donner « vie », il faut développer. Là se produit une scission : désolé de le dire, mais les quelques dizaines de codeurs usés jusqu’ici n’ont jamais JAMAIS apporté la moindre idée aux différents concepts de sites initiés jusqu’ici avec mon partenaire. Le codeur il code très exactement ce que tu lui dis, il suit le cahier des charges au micron, et tant mieux c’est ce qu’on lui demande.
    De fait, je vois mal comment le codeur serait crédible à savoir affirmer que oui, tel ou tel site DOIT être développé cher et en POO top niveau parce que la stratégie de développements futurs machin tout ça…

    Au quotidien, je travaille dans une société cotée à la Bourse de Londres, qui pèse 1.5 milliards d’euros de C.A. Même à ce niveau là, désolé de vous le dire, mais en l’an 2005, notre prospective s’arrête à… 6 mois maximum ! Les budgets et Business Plan à 5 ans, c’est pour faire joli vis-à-vis de l’actionnaire, mais dans le dur du quotidien, les décisions et stratégies d’investissement, c’est à 6 mois.
    Du point de vue du net, ça donne : je sens et je raisonne, arrivant à la conclusion qu’il faut tenter un dev de site sur tel ou tel contenu. Mais le monde est flou et changeant, les clients très, très lunatiques. Je ne PEUX PAS affirmer que mon site va marcher, qu’il sera rentable et si oui au bout de combien de temps. Et bien en tant que membre du comité de Direction de la boîte, vous allez hurler, mais ma décision est claire :
    Développer un petit truc bordel en php ou ce qu’on veut de pas cher et rapide (permettant d’utiliser dans un premier temps du kiki stagiaire de 18-22 ans doué). Ce que je veux à ce stade, c’est voir un site qui tourne. Point. La clarté, la propreté, le potentiel de développement ultérieur de la structure de programmation qui est derrière, rien à foutre.

    Ensuite, j’ai un truc qui existe, donc j’ai un truc à faire vendre pour mes équipes de commerciaux. Qui ne sont ni managers, ni codeurs. Pour vendre, eux, il faut qu’ils « voient » le concept une fois matérialisé.

    Ensuite, je commence à avoir un retour précis : je commence à avoir du chiffré me permettant d’affirmer (enfin !) que le site VAUT quelque chose, que le concept peut être poussé plus loin, et là, ok, on débloque un budget moyen.
    C’est à ce stade uniquement, que je dis au revoir au stagiaire qui a d’ailleurs terminé son stage entre temps, et que je cherche un vrai codeur. Que bien sûr (fin des hurlements donc…) je suis disposé à payer correctement (2500 euros brut/mois environ en première embauche). C’est à ce stade qu’on établit le cahier des charges fonctionnel, mais aussi le cahier des charges stratégique. C’est à ce stade que se pose la question de la plate forme, du langage, du type de programmation (POO évidemment à ce stade).
    Quand à « récupérer » la plus grosse partie du site dans sa version 1.0, ce qui pourrait éventuellement justifier de l’avoir développé dès le départ en super propre et POO « lourde », c’est de la foutaise : rien de mieux que de repartir d’une feuille blanche, on en profite pour utiliser la petite expérience du lancement et modifier tout un tas de trucs en profondeur (puis qu’on redéveloppe de zéro !).

    DE FAIT,

    Quand je mélange l’expérience acquise par mon job régulier, et l’utopie après laquelle nous courrons avec mon partenaire, je me dis :

    - je ne serais jamais un vrai codeur pro. Donc à partir d’un certain niveau de dev, j’oublie de faire le taff à la place d’un vrai pro, qu’on paye cher et qui est indispensable.

    - La POO ultra clean, lourde, c’est très beau, mais il faut savoir que sans doute 80% des sites qui sont économiquement viables à ce jour (je parle en volume C.A. global là, toute activité net confondue, porno inclus…) sont programmés en bordel php comme au premier jour… Et ça marche très bien, et l’internaute s’en fout complètement du moment que ça marche…

    - j’en ai marre de gérer du kiki pas pro ingérable et caractériel, qui se croit codeur alors qu’il ne l’est pas encore, loin de là. Je voudrais savoir faire par moi-même un minimum, juste de quoi « poser » les versions béta de mes concepts. Cela me permettrait de dev rapido mes idées afin de pouvoir les présenter rapido aux conseils et clients potentiels.

    - l’aspect du code, du langage, de la structure de programmation : tout cela envisagé par des codeurs dans des discussions de codeurs pour des codeurs, c’est pas très pertinent. Pour faire sens, et c’est d’ailleurs comme cela que Macromédias et consors établissent leurs stratégies et prennent les décisions qui « feront » le futur de leurs différentes plate-formes, il faut raisonner du point de vue du client d’une part (celui qui va investir de l’argent pour créer du net), du point de vue de l’internaute d’autre part (celui qui va dépenser de la thune sur les sites créés par le client… vous suivez ?).

    CONCLUSION

    De tout ce que je viens d’essayer d’expliquer, ne peut-on affirmer que c’est précisément là le sens d’un langage comme php, et de trucs un peu batards comme flash ?

    A mon niveau (je peux apprendre à coder mais je n’en ferais absolument pas mon métier et je n’ai donc pas que ça à faire, j’en ai besoin en tant qu’outil me permettant de donner corps à mes idées), un ensemble PHP+MySQL+Flash ne constitue-t-il pas la panacée ?

    Quitte, une fois qu’un de mes projets « explose », à investir alors conséquemment, et faire développer des v2 qui elles, seront codées top niveau POO avec un langage ultra évolué ultra propre type C# dans un environnement qui payant ou pas, sera choisi pour son efficacité et sa fiabilité pas pour son prix uniquement ?

    Le futur de PHP, et plus avant, du net, ne serait-ce pas 2 catégories d’outils ?

    - outils dits « de premier niveau », dédiés à du développement rapide et pas cher pour permettre à tout un tas d’entrepreneurs du net de voir les v1.0 de leurs idées de voir le jour.

    - des outils dits « de second niveau » ou « complexes », réservés à ceux qui codent en continu, dont c’est le métier, la compétence, et qui servent à poser du code ultra léché, pro, lourd, réutilisable dans le cadre de projets d’envergure à moyens conséquents.


    Cela, tout en sachant que tout un tas de projets continueront d’être non seulement créés, mais entretenus avec des outils de premier niveau, simplement parce que du point de vue de l’entrepreneur : tant que c’est rentable comme ça…

    Dans ce cadre, un codeur moyen comme moi, doit-il plonger dans l’objet ? Coder systématiquement TOUT ce qu’il veut faire sur le net en POO ultra nikel ? Les projets sont si différents les uns des autres, que la réutilisation semble (je dis bien « semble » car je ne suis pas affirmatif ne maîtrisant pas assez pour répondre de manière sûre) illusoire. La POO est-elle en train de devenir, comme mon prof me l’avait vendu il y a 12 ans, la nouvelle norme ABSOLUE de la programmation, qui va non pas se poser en alternative haut niveau, mais en nouvelle, seule et unique technique de programmation pertinente ?
    Question de newbie, mais pas si évidente à mon sens :
    Est-il juste d’affirmer qu’il n’est pas plus lourd de coder en POO par rapport à du code « classique » QUEL QUE SOIT LE BESOIN ?

    Merci d’avoir été jusqu’ici, j’attends avec impatience vos avis, vos réponses…

  2. #2
    Membre éprouvé Avatar de trattos
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 000
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 000
    Points : 1 080
    Points
    1 080
    Par défaut
    Dans le cas d'un site internet, la POO serai pas applicable partout n'importe quand, je pense qu'il est parfois mieux de coder de deux façon différentes selon le contexte!
    Un site web classique ne mériterai pas d'objet du moins pas plus d'une ou 2 classes!

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2003
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    Depuis la naissance de la programmation, on a cherché à structurer les langages. La POO est issue de ces recherches.
    Quel est l'intérèt de structurer ? Malgré ce que tu as l'air de penser, on ce n'est pas juste pour faire bander les ingénieurs informaticiens, mais bel et bien pour programmer plus vite et plus surement. Il est illusoire de penser que programmer à l'arrache est un gain de temps, au contraire, tout doit constament être réécrit à chaque imprévu rencontré. La structuration stricte tu code permet la division des difficultés, et donc de programmer plus simplement (et donc plus rapidement). Un code structuré est tout sauf un code lourd, c'est bien au contraire un code simple, compréhensible et maléable. La réutilisation de certains modules n'est pas le seul objectif de la programmation structurée.
    Je suis cependant d'accord avec toi sur un point: tant que ça marche, on s'en fiche de savoir comment ça marche. Le problème, c'est quand ça ne marche pas. Et bien souvent en programmation, avant de marcher, ça ne marche pas.


    Alors on peut lire ça et là qu’à l’évidence, le rêve de la communauté des codeurs serait un language qui « ferait tout », permettant du dev universel côté client comme java, un monstrueux en potentiel graphique comme actionscript, ouvert et rapide à mettre en œuvre côté serveur comme php, le tout avec de la POO mais pas QUE ça, avec un environnement de dev à la dreamweaver mais en mieux (optimisation du code notamment) et le tout GRAUIT mais avec une hotline permanente gratuite elle aussi pour les entreprises et l’aspect pro de la chose, sans oublier un type riche et faible au bout de la chaîne à qui on peut faire des procès si le compilateur présente un bug…
    C'est le rêve de celui qui n'a pas compris grand chose au développement.



    PS: Pourrais-tu nous indiquer les coordonnées de quelques unes des étoiles de ta galaxies ?

  4. #4
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Hummm.
    La POO, c'est un des quelques paradigmes qui va dans le sens de la capitalisation des acquis. Dans les buts, on trouve : bien séparer les choses pour accroitre simplicité de mise en oeuvre et surtout maintenabilité (quand il y a un bug, pouvoir le résoudre simplement et rapidement est mieux, c'est (la maintenabilité ) mime de rien un gage de qualité qui peut inciter les clients à revenir et à se multiplier, avoir de très bons épiciers est un autre moyen).

    Le principe majeur pour moi est plus abstraction que POO. Et par extension, dégament des points communs et des points de variations des diverses choses qui doivent être mises en oeuvre afin de fournir le produit final qui respecte les spécs. (Il y a un livre intéressant de Coplien qui vise le C++ et quelques part pas vraiment le monde du web).

    Pour en revenir à ton domaine des sites internet, la POO ne me parait pas forcément nécessaire. Il faut dire que j'ai une vision très restreinte du domaine (sites au contenu statique et non générés à la volée sans passer par un CMS). Sorti des divers métiers pouvant intervenir : IHM, BD, réseau (pour les pools de serveurs, ...) pour lesquels ils existe déjà quantité d'outils, le reste de l'appli me parait bien plus simple.

    Mon avis, utilise les outils avec lesquels tes webmestres et autres sites designeurs sont le plus à l'aise. Si dans 5-10 ans ils ne savent que procéder avec des objets, et bien permets leur de procéder de la sorte.

    Perso, j'ai l'impression d'avoir atteint un point de non retour, et très vite j'introduis des objets là où ils me paraissent naturels -- en simplifiant, je fais du temps réel "sol" orienté supervision et contrôle, soit des applis classiques nullement orientées web. Le genre de domaine pour lequel la POO a été vendue.

    Maintenant, il faut vraiment voir quel genre de dev web tu réalises. Entre un n-ième site marchand, et un site qui sert en fait d'interface "légère" à une appli plus complexe (voir des trucs comme emule qui propose une interface web pour piloter l'appli à distance, ou les clients web pour accéder à des comptes IMAP ou à USENET), les besoins et composants prêt-à-l'emploi-disponibles ne sont pas les mêmes.

    Il me parait difficile de généraliser.

    Être pro, c'est aussi savoir choisir la solution la plus adaptée au regard du cahier des charges et des attentes pas toujours clairement exprimée du client (on y gagne à intégrer rapidement dans la Vx.x.x+1 une fonctionnalité non demandée pour la Vx.x.x - je ne dis pas de l'implémentée, juste d'être un minimum ouvert aux trucs qui semblent évidents), et bien sûr la mettre en oeuvre proprement.

    (Autrement, je mitouille avec les autres avis exprimés)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 36
    Points : 45
    Points
    45
    Par défaut
    Juste un point de vue en forme de généralisation (donc non didactique):

    Dans "POO", il y a "objet".
    Si tu observes un "système" où tu penses pouvoir identifier différents objets, c'est presque déjà de la POO.
    Je pense qu'il y a en effet plusieurs "niveaux de pureté" pour le terme de POO.

    Un site Web (même si les pages sont statiques) est, du point de vue de l'utilisateur, déjà orienté objet: 1 page = 1 objet et 1 lien = 1 référence entre 2 objets.

    En ce qui concerne le coté création de sites: tu es déjà obligé de "penser OO" en planifiant le site !
    - quelles pages présenter réellement (contenu)?
    - quels menus / sous-menus proposer?
    - quelles fonctions (chat, formulaire de contact, Newsletter...) intégrer?
    - quels modules de sécurité / contrôle utiliser?
    - quelles pages générer dynamiquement ou statiques?
    - etc...
    (presque) rien que des objets qui se retrouveront en partie dans la prog.

    La POO n'est de fait qu'une spécialisation du language de prog utilisé pour réaliser cette ROO (réalité OO :))).

    Maintenant, le degré de facilité avec lequel le language de prog te permet de modelliser tes rêves n'est plus qu'un facteur dans le calcul des efforts à fournir: c'est en celà que les différents languages se différencient.

    Je suis moi-même un Delphianeur (progant aussi du XHTML strict conforme à la lecture par des personnes à handicap), donc un POO-freak par def.

    Il me serait assez simple de programmer en Delphi pur (D6) un module unique pour Apache avec une interface permettant à l'admin de créer/changer le site ainsi que toutes ses fonctions en entrant du pur code Delphi:
    - une BDD
    - un interprèteur DelphiScript (dans le module)
    - une page publique (dans ce cas dynamique, vu que créée par le DelphiScript)
    - une page de maintenance (elle peut même rester "statique" et se trouve p.ex. dans le module) ou tu rentres les scripts qui seront enregistrés dans la BDD.
    - un serveur Apache.
    Avec celà, tu pars à la Gaudeloupe avec ton portable et tu créé ton site en utilisant Firefox depuis ta chaise longue :).
    Pas besoin de PHP ni de DotNet ni de JavaScript ni de Java ni de Perl ni de ....
    1 seul fichier + 1 BDD suffisent et hop, POO !!!

    Mon exemple veut seulement montrer une chose:
    - tu peux faire tout avec tout, si tu connais la méthode ou si tu l'inventes.
    - la POO, c'est dans la tête et pas dans l'outil qu'elle se planque !


    Mis-à-part celà, les explications de Luc Hermitte me semblent très très probantes!!!

    Bonne prog!

    Loïs
    Prof.Y

Discussions similaires

  1. popup qui s'ouvre tout le temps par rapprot à une checkbox
    Par atomik29 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/06/2006, 10h34
  2. random donnant tout le temps la même valeur
    Par belzeluc dans le forum C++
    Réponses: 4
    Dernier message: 09/06/2006, 17h51
  3. [Debutant] image,texte qui reste tout le temps a l'ecran
    Par mariogarcia dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/03/2006, 13h12
  4. [winxp] le sablier clignote tout le temps
    Par goma771 dans le forum Windows XP
    Réponses: 4
    Dernier message: 01/12/2005, 21h02
  5. [TextField] taper des chiffres...tout le temps...
    Par Piolet dans le forum Composants
    Réponses: 5
    Dernier message: 12/04/2005, 10h12

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