Discuter:Programmation déclarative

Un article de Wikipédia, l'encyclopédie libre.

[modifier] Transfert remarque d'une IP

Remarque de l'IP transférée du corps d'article. Laurent N. [D] 7 juin 2007 à 23:58 (CEST)

ERREUR: LES PAGES HTML DECRIVENT AUSSI BIEN LE CONTENU QUE LA FORME...

[modifier] HTML,XML

Ce ne sont pas du tout de la programmation, mais plutôt une façon de représenter les données (et aussi la forme pour le HTML). Tout comme les .bmp et les .wav . Iluvalar (d) 16 mars 2008 à 17:24 (CET)

Intéressant ! D'ailleurs, écrire en Prolog, ce n'est pas de la programmation, mais plutôt une façon de représenter des faits et des règles. Et un fichier Python est un fichier de données qui est lu par une application, tout comme le sont les fichiers BMP et WAV qui sont généralement interprétés par un lecteur audio. Et quand on utilise XML pour écrire des documents XSLT, est-ce toujours de la simple représentation de données ?
Plus sérieusement... au risque de lancer un grand débat : Qu'appelle-t-on programmation ? --Kerflyn (d) 17 mars 2008 à 23:36 (CET)
Pour avoir essayer (que brièvement) Prolog, il s'agit de quelque chose de plus complexe que du xml, je suis tout à fait disposer à classer ça dans "programmation déclarative". Tu vient de m'apprendre l'existence même du XSLT ^^ . Ce que je cherche à expliquer, c'est que le html et surtout le XML ne sont que des moyens de représenter les données (Ça n'enlève rien du tout à leur utilité). Je respecte les 2 languages, mais ce n'est pas de la programmation. Additionner simplement 1 et 1 avec du XML ou du HTML pure est impossible ! Iluvalar (d) 18 mars 2008 à 02:45 (CET)
Je repose ma question : Qu'appelle-t-on programmation ?
  • S'agit-il de mettre en place un ensemble d'instructions et de les faire exécuter par une machine (voire une personne éventuellement) directement ou indirectement en passant par un compilateur ou un interpréteur ? Dans ce cas, ça fonctionne pour HTML qui contient des instructions du style : "je veux que cette partie apparaisse comme un titre de niveau 1", "je veux que ce mot soit mis en valeur", "je veux que tout ce texte apparaisse comme un paragraphe indépendant", etc., et qui utilise un interpréteur pour les exécuter. C'est vrai, quelle différence entre ces instructions et l'instruction "je veux mettre 1+1 dans la variable N" ou "je veux afficher 'hello world'" ?
 
D'où une seconde question importante : Qu'appelle-t-on instruction ?
  • Est-ce une simple opération en machine ?
  • Est-ce un ordre ?
  • Est-ce la plus petite forme de volonté du développeur dans un langage donné ? (là, je m'étonne moi-même)
 
--Kerflyn (d) 18 mars 2008 à 07:38 (CET)
Ma réponse ne risque pas d'être de nature encyclopédique, mais d'après moi ce qui fait de la création d'un fichier une programmation c'est le fait que le programmeur n'est pas au courant de la totalité des paramètre. Et que donc, il ne sais pas exactement ce que donneras le résultat final puisqu'il doit varier en fonction de ces paramètre. Ça ne veut pas dire qu'il est complètement ignare de ce qu'aura l'air le résultat final :) . Prend l'exemple simple d'un forum par exemple, le programmeur sais très bien le genre de mise en page qu'il veux faire, mais théoriquement il ne sais pas du tout le genre de commentaire qui s'y trouveras. Dans le cas de l'html pure, il n'y a aucun paramètre qui entre en ligne de compte, tout est prévisible. C'est la même chose pour le xml, quoique dans ce cas il est normalement généré par un programme qui, lui, tient compte de plusieurs paramètre pour créer le fichier xD . Iluvalar (d) 20 mars 2008 à 15:40 (CET)
Donc, si je comprends bien, pour toi, écrire (par exemple) un programme Python qui affiche 10 fois "hello world!" ce n'est pas de la programmation ?
D'un autre côté, si j'analyse ce que tu écris, ça marche d'une certaine manière pour le HTML pure. Je m'explique :
  • on peut voir le navigateur ou une imprimante comme un paramètre (on se pas lequel sera utilisé, donc on ne connaît la valeur du paramètre),
  • on ne sait pas exactement à quoi ressemblera l'affichage de la page HTML puisqu'elle dépend du navigateur ou de l'imprimante. Par exemple, la différence est flagrante lorsqu'il s'agit d'afficher une même page sous Firefox ou sous Lynx.
NB: je suis l'un des premiers que ça ennuie de voir le premier venu me dire qu'il fait de la programmation sous prétexte qu'il a écrit des pages HTML (pures), mais lorsque j'essaie de justifier où se trouve le problème je n'arrive pas à trouver les bons arguments...
--Kerflyn (d) 21 mars 2008 à 10:13 (CET)
Le "hello world" x10 est un test de programmation de base pour vérifier que le programme pourrais éventuellement imprimer à l'écran. Mais effectivement je ne parlerais pas de programmation dans un contexte aussi simple (même si c'est fait en python). D'ailleurs le mec qui se vante de faire de la programmation parcequ'il arrive à faire un "hello world" se ferais lapider par n'importe quel communauté de programmeur qui se tient xD. Par ailleurs, l'html peut être lu par plusieurs média, mais la musique aussi; Je peut l'écouter en surround ou dans me écouteur; Avec wimamp,mediaplayer ou quicktime. Est-ce que ca fait des musiciens des programmeurs ? Bien sûr que non ! Iluvalar (d) 21 mars 2008 à 16:27 (CET)
J'ai justement pris la liberté d'ajouter LATEX à la liste des exemples. Pour être plus complet, il faudrait parler de TEX. C'est à mon sens un bien meilleur exemple de programmation déclarative que le HTML/XML dans le sens où il y'a vraiment des possibilités d'automatisation et une véritable phase de compilation du document. D'autres processeurs de textes (tels que Lout, troff) pourraient donner des pistes intéressantes pour explorer plus en détails la notion de programmation déclarative/descriptive Vincentxavier (d) 24 avril 2008 à 01:55 (CEST) 24 avril 2008 à 01:52 (CEST)