Présentation
Le classement des soumissions sur Hacker News repose sur une formule publique qui combine le nombre de votes positifs et le temps écoulé depuis la soumission. Cette formule, souvent citée comme exacte, est en réalité complétée par plusieurs ajustements invisibles qui modifient le rang final des articles. L’analyse de Ken Shirriff, basée sur les 60 meilleures histoires pendant plusieurs jours, révèle que près de 20 % des articles en première page subissent une forme de pénalité. Ces pénalités concernent notamment les titres contenant « NSA », les domaines très répandus et les discussions jugées trop longues.
Fonctionnement du score
Le score brut d’un article s’obtient en divisant le nombre de votes (décrémenté de 1) par le temps depuis la soumission élevé à une puissance appelée gravity. Cette exponentiation rend le facteur temps plus influent que les votes, garantissant que le score tend vers zéro et qu’aucun article ne reste indéfiniment en première page. En pratique, les articles connaissent une montée rapide pendant les premières heures, puis une décroissance progressive, phénomène expliqué par la combinaison d’un afflux initial de votes et de la décélération du taux de vote.
Mécanismes de pénalités
Deux catégories de pénalités sont identifiées :
Penalités automatiques : tout titre contenant « NSA » reçoit un facteur de réduction de 0,4, ce qui équivaut à compter chaque vote comme 0,3 vote réel et à accélérer la chute du rang de 66 %. De même, plusieurs domaines (par exemple arstechnica.com, github.com, reddit.com) subissent des réductions comprises entre 0,25 et 0,8, probablement pour compenser les soumissions multiples provenant de sources populaires.
Penalités de controverse : lorsqu’un article possède plus de commentaires que de votes et dépasse 40 commentaires, le score est multiplié par le carré du rapport votes/commentaires :
if comments > upvotes and comments >= 40:
score *= (upvotes / comments) ** 2Cette règle, plus stricte que la version publiée (qui ne s’appliquait qu’à partir de 20 commentaires), entraîne une chute brutale du rang afin de limiter les « flame‑wars ».Conséquences observées
Les graphiques fournis par l’auteur montrent que le meilleur score brut n’est pas toujours celui qui occupe la première place. Des articles comme « Getting website registration completely wrong » ou « Apple Maps » ont brièvement atteint le sommet avant d’être pénalisés pour controverse, entraînant une descente rapide. D’autres, comme « Severing ties with the NSA », ont d’abord bénéficié d’un fort engouement avant de subir une pénalité supplémentaire, ce qui a limité leur durée en tête.
Le système de rafraîchissement du classement contribue également à des incohérences temporaires : chaque vote déclenche un reclassement immédiat, mais les autres articles ne sont réévalués que lorsqu’ils sont sélectionnés aléatoirement parmi les 50 premiers toutes les 30 secondes. Cette stratégie réduit la charge serveur mais peut laisser un article « mal classé » pendant plusieurs minutes, surtout si la page est mise en cache pendant 90 secondes.
En résumé, le classement de Hacker News n’est pas le simple produit d’une formule mathématique, mais le résultat d’un ensemble de mécanismes de pénalité et de rafraîchissement qui modifient la visibilité des contenus en fonction de leur sujet, de leur provenance et de leur niveau d’interaction.