La «véracité» est-elle un terme de programmation légitime?


11

SO a plusieurs questions en utilisant le mot «véracité» pour désigner la valeur de vérité d'une expression, lorsqu'elle est évaluée comme un booléen, quel que soit son type d'origine. C'est très utile dans les langages dynamiques.

Donc ma question est, est-ce un vrai terme, et si oui, l'utilisions-nous avant que Stephen Colbert ne le rende populaire? Ou l'avons-nous adopté par la suite? Dans ce cas, quel est le terme correct avec la définition que j'ai donnée ci-dessus?


2
en.wikipedia.org/wiki/Truthiness Faites-en ce que vous voulez. ; ->
Jeff Grigg

1
Je pense que cela signifie généralement un peu péjorativement (certainement par Stephen Colbert) car il y a plus d'arbitraire et plus de chances que les choses tournent mal par rapport aux valeurs réellement vraies / fausses. Mais c'est assez courant pour qu'il soit utile d'avoir un mot pour cela, et la «véracité» fait passer l'idée de façon assez concise. Je le considérerais donc comme légitime, mais la légitimité est déterminée par l'usage populaire au fil du temps, donc à ce stade, il n'y a pas de réponse définitive ou faisant autorité à votre question.
psr

Réponses:


4

Il y a beaucoup de débat sur la véracité .

Merriam-Webster le définit comme:

  1. véracité (nom)
    1: «la vérité qui vient de l'intestin, pas des livres» (Stephen Colbert, «The Colbert Report» de Comedy Central, octobre 2005)
    2: «la qualité de préférer des concepts ou des faits que l'on souhaite être vrais, plutôt que concepts ou faits connus pour être vrais "(American Dialect Society, janvier 2006)

Oxford Dictionaries Online le définit comme:

nom
[ nom de masse ] informel
la qualité de paraître ou d'être ressenti comme vrai, même si ce n'est pas nécessairement vrai.

Origine :
début du 19e siècle (dans le sens de «véracité»): inventé au sens moderne par l'humoriste américain Stephen Colbert

Il a été utilisé un peu sur Usenet avant Stephen Colbert, mais généralement expliqué dès qu'il est utilisé, comme "la qualité de l'énoncé de concepts ou de faits que l'on souhaite ou croit être vrais, plutôt que des concepts ou des faits connus pour être vrais".

Retour à la programmation. Quelle que soit l'origine, ce sens moderne de la «vérité de l'intestin, même si elle n'est pas vraie» est clairement incorrect la plupart du temps lorsque l'on discute de la logique booléenne et des tables de vérité: cette ifaffirmation est définitivement vraie, et cette whileaffirmation est fausse jusqu'à (i > k). Mon intuition n'y entre pas.

Si vous utilisez la véracité dans la programmation, vous utilisez probablement le sens rare de la véracité du 19e siècle , et il serait à la fois plus clair (et sans doute plus correct) d'utiliser la véracité ou simplement la vérité .

Ngram :

Ngram

Bien sûr, l'anglais change au fur et à mesure que l'utilisation change, et certaines personnes ont commencé à utiliser la vérité pour dire la vérité dans la programmation. Cependant, je déconseille la véracité pour éviter toute ambiguïté de sens («vraie vérité absolue» contre «mon instinct de vérité, quels que soient les faits»).


2
Personnellement, j'ai toujours utilisé le mot véracité, quand je lis la véracité, je ne le considère même pas comme un vrai mot.
Ramhound

@Ramhound: Il n'existe pas de "pas un vrai mot". Si un mot peut être utilisé pour la communication entre les humains, c'est un vrai mot.
JacquesB

@Hugo: Merriam-Webster ne fait pas autorité en matière de jargon technique. Beaucoup de mots ont une signification différente en CS qu'en langage courant.
JacquesB

@JacquesB La question est de savoir si c'est "un vrai terme", et a-t-il été utilisé dans l'informatique avant ou après que Colbert l'a popularisé, donc les définitions des dictionnaires standard aident à y faire face.
Hugo

@Hugo: Vous déclarez qu'une utilisation d'un terme technique est "clairement incorrecte" en raison de sa définition dans un dictionnaire courant (non spécifique à l'informatique). Et votre suggestion d'utiliser le mot «vérité» à la place passe à côté de tout l'intérêt du terme «vérité», qui est appliqué aux valeurs non booléennes.
JacquesB

9

C'est un terme qui est connu et acceptable dans certains cercles (par exemple les comparaisons booléennes JavaScript). En tant que tel, il s'agit d'un «vrai» terme. En raison de son utilisation, il devient légitime.

Tous ces termes viennent de quelque part - ils n'apparaissent pas dans le monde complètement formés et avec une signification établie (par exemple - les bogues logiciels n'avaient pas le sens qu'ils ont maintenant quand les ordinateurs électroniques commencent à peine à exister).

Que ce soit académiquement accepté - c'est une autre affaire. Pour autant que je sache, il n'y a pas de terme formel pour cette signification floue des valeurs booléennes.


@Downvoter - vous voulez commenter?
Odé

3
En fait, les termes "bug" en tant que problème étaient utilisés avant les ordinateurs modernes. Edison a utilisé dans une lettre 1787. C'était des termes communs pour les problèmes d'ingénierie à l'époque. L'histoire de Grace Hopper comme un peu d'ironie que le bug qu'ils ont trouvé était vraiment un bug.
Jim C

@ JimC - D'accord, mais quand même, quand les gens disent "bug" aujourd'hui, ils ne signifient pas la même chose qu'au temps d'Edison.
Odé

4
Edison a écrit en 1878: It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that 'Bugs' — as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.Cela me semble très similaire aux bogues des logiciels modernes.
Hugo

8

Je considère la vérité comme un terme légitime utilisé par rapport à l'évaluation JavaScript. Le livre de Douglas Crockford sur JavaScript - «JavaScript the Good Parts» définit les termes que JavaScript «si» évalue comme vrais pour être «véridiques». De même, il définit les termes que JavaScript évalue à faux comme «fausses». Il utilise également le terme pour mettre en évidence le fonctionnement de l'évaluation '==' en JavaScript (qui est différent de la façon dont de nombreux utilisateurs de JavaScript semblent croire que cela fonctionne).

Extrait des éléments du style JavaScript de Crockford

L'opérateur == ne doit pas être utilisé pour comparer des valeurs avec true car il saisit la contrainte. Si notre intention est de déterminer si dwsv.checked est la valeur booléenne true, nous devons utiliser l'opérateur ===. Si nous nous soucions seulement qu'une valeur soit véridique (et non fausse), il est préférable de ne pas utiliser du tout d'opérateur d'égalité.

Par exemple, en raison du type coercition., 1 == true est vrai, mais 1 === true est faux. L'opérateur == peut masquer les erreurs de type.

Dans ce contexte, le terme est à la fois légitime et utile.

Comme illustration supplémentaire du vrai et du faux dans ce contexte, ces cas sont illustratifs.

'' == '0' // false    
0 == '' // true
0 == '0' // true

false == 'false' // false
false == '0' // true

false == undefined // false
false == null // false
null == undefined // true

' \t\r\n ' == 0 // true

+1, et Python fait la même chose. []est évalué à faux lorsqu'il est utilisé comme un booléen, etc.
Izkata

1
+1 Cela devrait être la réponse. Je me suis souvent retrouvé à parler de la «véracité» de diverses structures de données. Ou plus souvent, je me trouve en disant : « X est falsy » où X est des idées comme 0, None, []et ainsi de suite.

2

La véracité a été un mot bien avant que Stephen Colbert ne l'utilise. Je pourrais jurer que je l'ai vu dans des articles sur la logique / l'IA, et dans certains articles sur la physique aussi, mais je n'arrive pas à trouver une référence à celle qui est antérieure à l'émission de Stephen Colbert.


Le problème est que, maintenant que la définition de "Colbert" est devenue populaire, il sera beaucoup plus difficile de trouver des références obscures dans des œuvres plus anciennes :-)
Dean Harding

Je n'ai rien trouvé d' ACM ou d' IEEE avant 2006.
Hugo

@DeanHarding Il existe des moyens de rechercher des mots avant une date donnée, par exemple en utilisant Google Livres et dans Usenet .
Hugo

2

La véracité est un terme légitime et bien défini dans Clojure, où il fait référence à la propriété d'une valeur considérée comme vraie dans une déclaration conditionnelle.

Ainsi, la fonction conditionnelle ci-dessous ne sera appelée que si elle valueest "véridique"

  (if value
    (some-conditional-function))

Les seules valeurs non véridiques sont falseet nil, tout le reste est considéré comme véridique.

Je crois que la justification philosophique de cela est que l' nilon peut considérer que "n'existe pas", de sorte que l'énoncé conditionnel est en mesure de tester l'existence d'une valeur.

De nombreuses autres langues ont également un concept similaire de valeurs qui seront considérées comme vraies dans un contexte conditionnel, donc en conclusion, je dirais que oui, la véracité devrait être considérée comme un terme de programmation légitime lorsqu'elle est utilisée de cette manière.


1

La «vérité» est quelque chose que je m'assure de comprendre lorsque je prends une nouvelle langue, car ils la traitent tous différemment. Dans ma langue maternelle de Perl, la chaîne "0" est fausse. Dans de nombreuses langues, c'est une chaîne qui a du contenu et est donc vraie. Dans certaines langues, la chaîne vide "" est fausse, et dans certains, c'est vrai.

Comprendre les choix que les concepteurs de langage ont faits sur la véracité vous en dit long sur leur réflexion et commence à vous plonger dans l'univers conceptuel de la langue.

Que nous l'ayons épelé «véracité» ou que nous ayons utilisé un autre terme (je pense que l'en-tête de ce chapitre du livre sur les chameaux est «Qu'est-ce que la vérité?»), Les programmeurs avaient une emprise sur différentes valeurs de l'absolu appelé «vrai et faux» bien avant que Colbert ne vienne et ne fasse remarquer le recourbement du «vrai» dans le discours public.


0

Permettez-moi de vous demander en retour: qu'est-ce qu'un "vrai terme"?

Tout mot que les humains utilisent est «réel» lorsqu'il est utilisé par plusieurs personnes, ce qui signifie (plus ou moins) la même chose. Toutes les langues évoluent constamment, tout comme le langage du programmeur.

Par exemple, dans Ruby, le framework de test rspec préfère de nos jours xyz.should be_truthyau lieu de xyz.should be_true. Ou xyz.should be_falseyau lieu de xyz.should be_false. Bien sûr, au lieu de ce dernier, ils auraient pu choisir xyz.should be_wrong. Mais ils ne l'ont pas fait, nous pouvons donc également demander si «fausse» est un terme.

C'est maintenant. Aimez. Au moins dans les communautés qui utilisent ces termes. Ne demandez pas à votre avocat ou à votre médecin. :)

Si vous êtes censé demander "le grand public sait-il intuitivement ce qu'est la Vérité", alors la réponse est probablement "non".


1
Comme (presque) tout le monde le sait, quelque chose est réel si et seulement si sa partie imaginaire est falsey .
Ben Voigt

-3

J'ai écrit un système qui déterminerait la probabilité (mathématique) qu'une déclaration booléenne soit vraie, étant donné des données partielles. C'est-à-dire que nous pourrions déterminer qu'il y avait 73% de chances d' Xêtre vrai, si nous n'avions pas encore suffisamment de données pour établir fermement que X était vrai. La «vérité» serait un moyen parfaitement valable pour décrire un tel pourcentage de croyance en X.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.