F. U. D.
Fear, Uncertainty and Doubt : peur, incertitude et doute.
Besoin
Décrédibiliser une solution.
Le besoin de FUD nait souvent :
- d'une impossibilité à concurrencer la solution
- d'une impossibilité de reproduire la solution (implémenter une spécification
par exemple)
Analyse
Les actes de FUD consistent à déclarer qu'une n'est pas
perenne (qu'elle n'a pas d'avenir) parce que :
- elle est trop isolée : pas assez supportée par les principaux
acteurs du marché
- elle n'est pas efficace : technologiquement mal pensée (en cas de spécification)
ou mal implémentée (en cas de produit)
- elle ne couvre pas le besoin : elle ne répond pas à tous les besoins
- elle est inadaptée : trop lourde (avec perte de performance) pour le besoin
Des propos de FUD peuvent être :
- faux (intentionnellement ou par
méconnaissance de la solution)
- vrai, mais innapropriés, comme
reprocher à la solution :
- de
ne pas faire quelque chose pour laquelle elle n'est pas conçue (i.e.
un problème auquel répond une solution d'un autre domaine)
- de ne pas faire quelque chose qui n'est pas un réel besoin
Conception
Les actes de FUD sont diffusées via :
- la presse : articles aux titres tapageurs, déclarations négatives d'acteurs
importants
- "sondages" : tel pourcentage d'acteurs du marché ou d'utilisateurs ne
croient pas en la solution
- benchmarks : la solution produit des résultats
inférieurs à une solution concurrente dans tel comparatif
Exemples
Des actes de FUD ont été connus contre :
- La programmation OO
- SQL
- SQL est lent : il est interprété, mieux vaut utiliser
directement des API des SGBDR : Aujourd'hui SQL est le langage
utilisé partout pour accéder aux SGBDR
- JDO
- JDO est trop jeune
- le code SQL sera toujours plus rapide : le code JDBC/SQL
moyen est généralement plus médiocre que le code exécuté par une implémentation
JDO (pooling, curseurs, batchs, spécificité de tel SGBD, etc.)
- Java
- Java ne vise que le côté client
: il n'est bon qu'à faire des applets et on ne peut l'utilisateur des
applications côté serveur : aujourd'hui Java est
plus utilisé côté serveur que côté client.
- Java est lent : le code compilé nativement sera toujours
plus rapide : aujourd'hui Java est
utilisé dans des applications serveurs critiques de grande échelle. Ses
JVM HotSpot permettent des optimisations impossibles à réaliser pour du
code nativement compilé.
- les EJB
- les EJB sont lents : les EJB ne sont pas faits pour une
persistance à fine granularité, mais pour réaliser des composants réutilisables.