Le piège des Frameworks.

Tout d'abord veuillez tolérer peut être mon manque de vision mais c'est mon premier post et c'est aussi mon premier blog, je vais en profiter car depuis quelques mois j'essai de repasser ma carrière professionnelle et de mettre le point sur mes visions futur concernant le développement en général.

Si je devais présenter ma carrière je dirais que je suis de formation .net j'ai manipulé pas mal de temps l'asp.net le vb.net et le C# en gros le "méchant" Microsoft, j'ai fais aussi quelques petits projets en Java, objective C (Iphone), C++, et depuis plus d'un an j'ai découvert le Django et surtout le monde du python. Bon là la question que vous vous poser sans doute c'est quel est le rapport avec le titre de l'article? Et où je veux revenir avec tout ça?

Je me souviens quand j'ai commencé ma première année de développement et que j'ai fait la transition vers le .net je me suis dit woooow ce Framework c'est le top. Ce qui sûr c'est que maintenant je ne répondrai pas du tt de la même façon. Mais qu'est ce qui a changé depuis? Je dirai que c'est à 100% ma vision de voir les choses qui a changé et qui changera encore d'ailleurs, je suis vraiment ouvert pour le moment à de nouvelles idées et de nouvelles perspectives.

Pour en revenir sur .net personnellement je le définirai comme une boite noire qui te masque la vrai réalité, une réalité à laquelle un jour ou l'autre tu seras amené à confronter, je vais prendre l'exemple concret de l'asp.net vu que j'ai pas mal d'amis qui bossent dessus. Alors quand on ajoute un treeview ou un datagridview par exemple avec une source de données on ne sait absolument pas quel sera résultat html de l'objet en question est-ce un tableau, des divs, des ul...? Là ce n'est qu'un simple exemple et il en a vraiment beaucoup. Pire encore et ce que je considère comme le plus dangereux avec Microsoft c’est qu’elle te pousse à utiliser les outils de la famille (Crystal Report, sqlServer ...) et heureusement que le capitalisme a toujours une fin car le monde évolue et on peut jamais faire tout soit même d'ailleurs à ce propos j'ai lu un truc qui m'a vraiment marqué et dont la traduction est :

Aussi stupide que ça sonne, c'est la brutale vérité: Quel que soit intelligente, créative et innovatrice que votre organisation est Il y a beaucoup de personnes plus intelligentes, plus créatives et plus innovatrices à l'extérieur de votre organisation qu'à l'intérieur.

Je pense que ça résume pas mal le sujet. Le plus rigolo dans tout ça c'est que après 2ans asp.net j'ai découvert que je ne maitrise même pas les bases du JavaScript ni même de l'html, "l'expérience qui ne sert à rien quoi". et depuis un an j'ai eu la chance de passer vers un autre Framework open source basé sur python qui d'ailleurs avec lequel j'ai fait ce blog : Django, alors le Django et d'après ma vision c'est l'outil qui te rend le beaucoup code plus élégant, réutilisable et ouvert "le Framework pour des perfectionnistes" (sympa d'ailleurs le slogan, très attirant je trouve), sans parler de l'API qui te facilite vraiment la vie avec le mapping objet, l’interaction avec la base de données, le system de templates intégrée, les templatetags, les filtres ... . Bref tout ce qui peut rendre ton code le plus simple possible car après tout comme j'ai pu entendre :) " Un programme informatique est fait pour être lu par des personnes et accidentellement exécuté par des machines ". en gros le bonheur parfait jusqu'au jour ou j'ai décidé avec mon boss après mainte réflexion de passer aux base de données orienté document et aux architecture REST distribué pour plus de rapidité et pour éviter le bricolage SGBDR ---> POO.

C'est la que je me suis rendu compte que je suis tombé pour la 2ème fois dans le même piège des Framework et que vu que le Django ne supportait pas ce genre de base de données je devais trouver des librairies qui me permettent de faire le mapping objet et par conséquent je perdais toute la réutilisabilité du Django.

Heureusement la communauté python est fascinante avec énormément d'expérience, et après quelques minutes de discussion sur Freenode que je me suis enfin rendu compte que les Framework sont le piège des développeurs et du développement en général et que dans le réalité il n'y a pas une chose qui fait tout "le Framework" mais beaucoup de librairies et d'outils ouvert qui collaborent, et le développeur ne doit pas être lié à une technologie mais il doit avoir le choix entre les outils qu'il va utiliser selon son projet.

Pour les personnes intéressées il y a des projets pythons qui essaient de faire la glue comme le Turbogear ou le Pylons et ça fait d'ailleurs partie :) de l’essentiel mes projets d'avenir.

Commentaires (9):

Par khamlichi reda
bonjour amine, je félicites ton initiative et ton esprit d'analyse, ça serrai bien que tu met un forum sur ton blog comme ça il y aura plus d'interactivité, Bonne continuation,
Par Moncif Aissaoui
Une bonne analyse, je suis tout à fait d'accord avec toi amine. bonne continuation
Par Fatima-Zahra KARAMI
Salut, le sujet est très intéressant aussi qu'il est ton esprit d'analyse. je suis d'accord avec toi et j'avoue que c'est pas évident de se rendre compte du piège des framework.
Par SEMOUD Ahmed
Salam, Félicitat° Amine,trés bonne initiative et trés bon départ. Inchallah un bon commencement pour une meilleure contuniation. Par rapport au sujet de cet article, et même aprés cette analyse convaincante j'ai une question , et je me vé commencer de ta fameuse définion du .Net que japprécie é je suis daccord avec : "Pour en revenir sur .net personnellement je le définirai comme une boite noire qui te masque la vrai réalité". Malgré ce MASQUE, qu'est ce qui pousse les gens à contunier à travailler avec, surtt kon constate que de trés grande structures (dc de trés grands projets) le font.Est-ce que c'est grâce au grand travail de marketing, de services de garantie kofffre MS OU (é moi je suis avec ce dernier ou) c'est parcke les gens ne sinteresent pas bcp à ce que cache ce masque, à ce qui se passe dérriére, lessentiel c"est le résultat offert au client. Enfin un grand merci amine é bonne contuniation.
Par Amine Chouki

Un grand merci pour vos encouragement.

@reda: Je sais que tu aimes le débat, et ça m'interesserais toute idée qui pourrait améliorer ce blog.

@moncif: merci pour ton commentaire, je sais que tu es interessé par le jquery moncif et j'essairai de faire des articles interessants sur ses nouvelles fonctionnalités surtout avec le CSS3.

@Fatima-Zahra: J'aurai pas grand chose concernant l'EDI :), par contre peut être quelques tutoriaux pour passer vers de nouvelles technologies. Merci pour le commentaire je sais que tu seras une fidèle lectrice.

@Ahmed: alors pour toi Samoud je répondrai que oui les gens ne se pose jamais la question quand ils ont le résultat qu'ils cherchent, mais ce que je cherche à faire passer dans l'article c'est que le monde évolu plus vite qu'une grande structure.

Par kassid youssef

Bonjour Amine; Tu a tellement raison, merci pour cette analyse que trouve très réaliste, et j'espère que le changement que tu as entamé t’apporte beaucoup de réussite dans ta carrière. Bon courage

Par Amine Chouki

@Youssef : Merci youssef, vraiment très gentil de ta part, je te souhaite également toute la réussite.

Par Sidi Mohamed
Trèsheureux de lire ton blog, il y a beaucoup de passion :) En fait pour ce qui du sujet je ne partage pas tout .. L'idée derrière les framework ou leurs raison d'être est surtout d'industrialiser le développement sur un type donné de projet, la réalité d'une SSII n'est pas la même qu'une banque. Mais là ou je te rejoint c'est que le développeur ne doit pas se laisser en fermé dans une cellule aussi jolie qu'elle soit elle Django, ou Seaside ou autre... celui qui n'a que le marteau comme outil concidere tout problème comme un clou :) Mais sinon Django est un solid framework pour les applications web qui gère du contenu d'ailleurs à la base c'était extrait d'un CMS ;)
Par Amine Chouki
Merci de nous avoir partagé vos idées Mohamed, Effectivement il faut choisir les bons outils pour le bon projet :), ce que je voulais faire passer dans ma réflection c que les composants de django et de tout les frameworks "lourd" en général (ORM, systeme de templates, plugins ...) sont fortement couplé avec le framework lui même ce qui laisse un champs d'utilisation assez limité ex: Django ORM, Django Form, le système de templates ... tout ne marche que sur un projet django, par contre sur Pylons ou turbogears (Framework leger), tu peux utiliser sqlalchemy, jinja, mako sur n'importe qu'elle projet que ça soit pylons ou autres je pense qu'à long terme les framework léger ont plus d'avenir, mais sinon je suis tjrs un fan de Django et je l'utilise sur beaucoup de mes projets :)

Ajouter un commentaire

Nom :*
Email :*
Site perso :
Commentaire :*
chargement