Ihr Chef bittet Sie, ein "Hallo Welt" -Programm zu schreiben. Da Sie für Codezeilen bezahlt werden, möchten Sie diese so komplex wie möglich gestalten. Allerdings , wenn Sie nur Unsinn Linien hinzufügen oder offensichtlich nutzlos oder Verschleiern von Sachen, werden Sie nie es durch Code - Review bekommen. Daher ist die Herausforderung:
Schreiben Sie ein "Hallo Welt" -Programm, das so komplex wie möglich ist, unter der Bedingung, dass Sie für jede Komplexität im Code eine "Rechtfertigung" angeben können.
Das erforderliche Verhalten des Programms besteht darin, nur eine einzelne Zeile "Hallo Welt" (ohne die Anführungszeichen, aber mit einem Zeilenumbruch am Ende) auszugeben und dann erfolgreich zu beenden.
"Begründungen" umfassen:
- Schlagwortkompatibilität ("Moderne Software ist objektorientiert!")
- allgemein anerkannte gute Programmierpraktiken ("Jeder weiß, dass Sie Modell und Ansicht trennen sollten")
- Wartbarkeit ("Wenn wir es so machen, können wir es später einfacher machen XXX")
- und natürlich jede andere Rechtfertigung, die Sie sich vorstellen können, (in anderen Situationen) für echten Code zu verwenden.
Offensichtlich dumme Begründungen werden nicht akzeptiert.
Außerdem müssen Sie Ihre Wahl der Sprache "begründen" (wenn Sie also eine von Natur aus wörtliche Sprache wählen, müssen Sie begründen, warum dies die "richtige" Wahl ist). Unterhaltsame Sprachen wie Unlambda oder Intercal sind nicht akzeptabel (es sei denn, Sie können eine sehr gute Begründung für ihre Verwendung angeben ).
Die Punktzahl der qualifizierenden Einträge wird wie folgt berechnet:
- 1 Punkt für jede Aussage (oder was auch immer das Äquivalent zu einer Aussage in der Sprache Ihrer Wahl ist).
- 1 Punkt für jede Definition einer Funktion, eines Typs, einer Variablen usw. (mit Ausnahme der Hauptfunktion, sofern zutreffend).
- 1 Punkt für jede Modulverwendungsanweisung, Datei-Include-Anweisung, Namespace-Using-Anweisung oder ähnliches.
- 1 Punkt für jede Quelldatei.
- 1 Punkt für jede erforderliche Vorwärtsdeklaration (wenn Sie sie durch Umstellen des Codes beseitigen könnten, müssen Sie "begründen", warum die von Ihnen gewählte Vereinbarung die "richtige" ist).
- 1 Punkt für jede Kontrollstruktur (wenn, während, für usw.)
Denken Sie daran, dass Sie jede einzelne Zeile "begründen" müssen.
Wenn die gewählte Sprache so unterschiedlich ist, dass dieses Schema nicht angewendet werden kann (und Sie eine gute "Begründung" für seine Verwendung angeben können), schlagen Sie bitte eine Bewertungsmethode vor, die der oben für Ihre gewählte Sprache am nächsten kommt.
Die Teilnehmer werden gebeten, die Punktzahl ihres Beitrags zu berechnen und in die Antwort einzutragen.