• # Re: La programmation est un art

    Posté par . En réponse à la dépêche La programmation est un art. Évalué à 4.

    Personnellement, je fais la distinction entre l’ouvre fini et le cheminement aboutissant a celle-ci. Dans le monde du développement, très peux d’ouvres fini (des programmes) sont des œuvres que l’ont pourrais qualifier d’artistique. On peux citer par exemple les demo-makers ou certains jeux vidéos. La technique ici est support de l’art. Mais ces exemple ne constituent pas la majorité, a plus forte raison dans le petit monde du Libre/OpenSource.
    Il en ais autrement pour les moyens qui mènent aux logiciel. Quelqu’un un peu plus l’a très clairement exprimé, « apache n’est pas une œuvre d’art ». Bien sur il est possible d’apporter un jugement qualitatif sur un logiciel, mais ce jugement est conditionné par un besoin fonctionnel. En fait quand je parle de « moyens qui mènent aux logiciel » j’entend le code source, le design, l’architecture. Je trouve personnellement que designer un logiciel ( dans le sens design objet), a quelque chose de la démarche artistique. On retrouve d’ailleurs souvent dans la littérature informatique les termes « un design élégant », « une solution élégante ». En regardant un diagramme UML, il m’est déjà arrivé de trouver la structure esthétiquement belle. En regardant un code source, on est capable de dire que ce code est beau (ou élégant) ou s’il est moche, mal écrit ou maladroit. J’ai écrit un article récemment ou je comparais les design patterns aux figure de style. Il y a pas mal de point commun. Par exemple quand une jeune personne commence à faire des rédactions, elle emploi des figures de style sans s’en rendre compte, sans même savoir qu’elle existe, ni même le nom de celle-ci. Plus tard quand en français il les étudiera, apprendra à les reconnaître, comprendra les effets qu’elles produisent, elles améliorerons sa compréhension des textes ainsi que son style personnel. Il en va de même pour les design patterns : Quelqu’un qui apprend le Java et qui lit la Javadoc voit plein de chose intéressante et astucieuse comme les factory ou les écouteurs (je prend l’exemple de la Javadoc car elle est truffé de design patterns). Plus tard, il essaiera lui même «d’inventer » des méthodes astucieuse de ce genre. Et puis il étudiera les design patterns et apprendra à mettre un nom a ces « choses astucieuse ». Et comme pour les figures de styles, apprendra à les reconnaître et comprendra les intentions de l’auteur de ce code. Car finalement il y a une différence entre comprendre la syntaxe d’un code source ( apprendre a lire pour continuer la comparaison avec l’élève), et comprendre la finalité de celui-ci.
    Je ne suis pas sur, mais il me semble que c’est Alan Cox qui disait que la programmation était proche de la poésie car tout deux sont de la pensé pure.
    Je conçois que l’esthétisme soit présent dans la programmation, mais de la a considérer que c’est un art, je ne sais pas, je préfère dire « chacun son opinions »…De toutes façons c’est un faux débat, tout les films ne sont pas des œuvres d’art…Il ne suffit pas de faire (ou d’essayer de faire) de la musique pour être un artiste. Si vous n’êtes pas convaincu, il suffit de regarder TF1 vers 19H ;).