Votre patron vous demande d’écrire un programme "hello world". Puisque vous êtes payé pour des lignes de code, vous voulez le rendre aussi complexe que possible. Toutefois, si vous ajoutez simplement des lignes absurdes, ou bien des éléments évidemment inutiles ou obscènes, vous ne l'obtiendrez jamais grâce à la révision du code. Le défi consiste donc à:
Ecrivez un programme "hello world" aussi complexe que possible, à condition que vous puissiez "justifier" chaque complexité du code.
Le comportement requis du programme consiste à ne générer qu'une seule ligne "Hello world" (sans les guillemets, mais avec une nouvelle ligne à la fin), puis à sortir correctement.
Les "justifications" comprennent:
- compatibilité de mots à la mode ("Le logiciel moderne est orienté objet!")
- Bonnes pratiques de programmation généralement acceptées ("Tout le monde sait qu'il faut séparer le modèle et la vue")
- maintenabilité ("si on le fait de cette façon, on pourra plus facilement faire XXX plus tard")
- et bien sûr, toute autre justification que vous pouvez imaginer utiliser (dans d'autres situations) pour du code réel.
De toute évidence, les justifications stupides ne seront pas acceptées.
En outre, vous devez "justifier" votre choix de langue (donc si vous choisissez une langue intrinsèquement verbeuse, vous devrez justifier pourquoi c'est le choix "correct"). Les langages amusants comme Unlambda ou Intercal ne sont pas acceptables (à moins que vous ne puissiez donner une très bonne justification pour les utiliser).
Le score des entrées qualifiantes est calculé comme suit:
- 1 point pour chaque déclaration (ou l'équivalent d'une déclaration dans la langue de votre choix).
- 1 point pour chaque définition d'une fonction, d'un type, d'une variable, etc. (à l'exception de la fonction principale, le cas échéant).
- 1 point pour chaque instruction d'utilisation de module, directive d'inclusion de fichier, espace de nom utilisant une instruction ou similaire.
- 1 point pour chaque fichier source.
- 1 point pour chaque déclaration préalable nécessaire (si vous pouviez vous en débarrasser en réarrangeant le code, vous devez "justifier" pourquoi l'arrangement que vous avez choisi est le "bon" choix).
- 1 point pour chaque structure de contrôle (si, tant que, pour, etc.)
Rappelez-vous que vous devez "justifier" chaque ligne.
Si la langue choisie est suffisamment différente pour que ce schéma ne puisse pas être appliqué (et que vous puissiez donner une bonne "justification" à son utilisation), veuillez suggérer une méthode de notation qui ressemble le plus à la méthode ci-dessus pour la langue de votre choix.
Les candidats sont invités à calculer le score de leur participation et à l'écrire dans la réponse.