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…![]()
Partager