Un peu de développement web…

Récemment dans le cadre d’un projet professionnel, j’ai du me mettre à faire du développement web. C’est quelque chose d’un peu nouveau pour moi, surtout que bon c’est pas mon domaine de prédilection dans la mesure où je trouve le web toujours très limité par rapport à mon activité habituelle qui est d’écrire des jeux. J’ai du néanmoins me jeter dans la baignoire et me pencher plus sérieusement sur comment écrire de manière efficace une application web.

En fait j’obscurcis un peu la réalité ; ce n’est pas la première fois que j’écris une « application web » ou du moins quelque chose qui s’en rapproche. Il y a bien longtemps de ça j’avais même écrit des CGI en C. Sur ce point là j’en garde pas un souvenir très positif. Par la suite j’ai du bricoler un site pseudo dynamique en PERL et si l’approche me semblait bien plus intéressante que de pondre bêtement des pages statiques en HTML, on ne peut pas dire que cet environnement de développement soit vraiment ma tasse de thé non plus.

Depuis j’ai croisé la route de pas mal de développeurs web, on a même une société spécialisée dans le développement web juste à côté de chez nous. Et en discutant avec eux j’ai bien compris que c’est un champ en perpétuelle évolution et que normalement, si vous êtes réellement un ingénieur, il existe des frameworks bien plus avancé pour répondre à vos besoins de développement. Le mot est lâché : framework, alias le cadre applicatif qui vous permet de répondre spécifiquement à un problème de manière efficace.

J’avais fait une première mise en oeuvre d’un framework, en l’occurence Ruby on Rails. Il s’agissait d’écrire une simple application pour permettre l’emprunt de jeux vidéos et autres trucs du même genre au bureau. Les gens ayant une tendance naturelle à oublier ce qu’ils ont empruntés. J’avais donc utilisé rails pour faire cette petite application avec un camarade graphiste pour me faire rapidement un CSS qui fasse pas trop « bienvenue dans le web de 1995″. J’avais donc pu tester les façons d’écrire le code, et de mettre une application en production.

Récemment donc, lorsque s’est posé la question de cette application web j’ai du réfléchir à quelle technologie / framework employer pour arriver à mes fins. Je n’ai actuellement pas encore de gros investissements technologiques dans tel ou tel framework ce qui me permet d’abord la question avec la plus grande des ouvertures. J’ai de suite éliminé les technologies que je n’ais pas envie de fréquenter : l’ASP.NET parce que je trouve que Microsoft a toujours un train de retard sur le web, le PHP parce que c’est vraiment un outil idéal pour produire des choses laides et le Java, parce que « seriously WTF ?!? ». Là l’air de rien je venais quand même de supprimer une bonne partie des acteurs du web.

Je me suis alors penché sur Django, un framework de construction d’application web écrit en Python. J’ai toujours été intéressé par le Python car je trouve cela élégant et surtout j’ai toujours eu ce sentiment que les gens qui développent en python ont une tendance à être humble. Un côté anti rock star si vous voulez. J’ai donc commencé à me pencher sur cet outils et j’ai rapidement été séduit par la qualité de la documentation, le fait de pouvoir travailler facilement sous Windows et surtout j’obtenais des résultats en comprenant ce que je faisais.

Je suppose que là vous vous demandez pourquoi je n’ai pas réutilisé Rails vu que j’avais déjà de l’expérience avec ? C’est assez simple, mon expérience avec Rails n’a pas été plaisante. Que cela soit la qualité de la documentation qui est un peu du genre « on avait pas envie de l’écrire », l’aspect bien trop « magique » du langage, et le tout avec quelques pointes du syndrome du Nunchaku. Mais je crois que vraiment le truc qui m’a fait tiqué c’est l’aspect arrogant de la communauté Rails d’ailleurs renforcé par ma lecture récente de Rework écrit par les gens de 37 Signals. Si j’adhère à beaucoup de chose expliqué dans ce bouquin, dont certains passages qui font un peu « Captain Obvious », la partie concernant le succès et l’échec m’a simplement rappelé comment il est facile de juger en mal les gens à l’aune de sa propre réussite. Pour enfoncer le clou, chaque fois que je posais une question sur Rails les réponses étaient du genre « t’es vraiment trop con ».

Donc exit Rails… et finalement je me porte pas plus mal avec Django, chacun son truc !

  • http://blog.strasslab.net/ yannski

    En ce qui concerne la doc de Rails, un effort a vue le jour depuis ta dernière incursion dans ce monde là, et le résultat me semble plutôt pas mal : http://guides.rubyonrails.org

    Et ouais, il y a parfois un côté rock star dans la communauté Rails, mais la communauté Ruby n’est pas forcément dans ce ton là. Et le côté rock star, c’est ce que te renvoie les médias. Pour être dans cette communauté et pour avoir fréquenter plusieurs conférences différentes, je peux dire aussi que la plupart des gens qui font partie de cette communauté sont très contents d’y être, merci pour eux.

    Pour en revenir à une comparaison entre Django et Rails, je crois qu’aujourd’hui et depuis un certain temps déjà, la communauté Rails est devenu bien plus grosse et il s’y passe toujours quelque chose : un nouveau framework de test, une nouvelle façon de déployer, etc. Donc, on pourra dire ce qu’on veut de la communauté Rails, ça bouge, ça bouge vite, ça bouge fort, et, ça bouge dans le bon sens. La communauté Django est sans doute très bien, mais beaucoup plus petite sans trouver le dynamisme de la communauté Rails. Il n’y avaiy qu’à voir la dernière conférence MongoFR. La salle était remplie de Rubyiste, très peu de gens venant du monde Python (et je ne parle même pas de PHP ou de Java). Et de mon point de vue, l’apparition de MongoDB (ou de la vague NoSQL), n’est pas du tout anecdotique.

  • http://blog.strasslab.net/ yannski

    Ah oui tiens, il y a peut-être une autre raison au côté rock star : tu aimes bien troller et provoquer les gens, donc après, tu récoltes forcément un résultat qui ne reflète pas grand chose des choses réelles :)

  • http://www.bretzelsandgames.com Whirly

    Hmm quand j’ai demandé si c’était « ça » la doc en parlant du truc autogénéré où la documentation était du niveau « GetMachin : Retourne le Machin » et qu’on me réponds que j’ai qu’à me démerder avec ce qu’il y a que c’est bien suffisant c’est « troller » dans le monde ruby, ok pourquoi pas. Quand je demande pourquoi est ce que ActiveRecord fait les choses comme ça et qu’on me réponds que c’est de l’opiniated software et que si ça me plait pas j’ai qu’à changer de framework, ok je change de framework.

    Depuis que je fais du Django, des gens me proposent de l’aide et répondent à mes questions. Et pourtant j’ai pas changé ma façon de poser les questions. Ma conclusion est donc que cela ne vient sans doute pas de moi.

    Quand au côté Rockstar, je pense que ta deuxième réponse est symptomatique de ce que j’avance.

  • http://www.puupuu.org Mokona

    Tiens, j’ai choisi Django pour des raisons a peu près similaires.

    Pour l’instant, j’aime bien. En me disant de toute façon que d’ici 3-5 ans, tout aura changé dans le dev Web. Voire avant.

    Comme par le passé (à chaque fois que j’ai un truc web à faire, et c’est généralement tous les 2 ou 3 ans, tout a changé).