Ваш босс просит вас написать программу «Привет, мир!». Поскольку вам платят за строки кода, вы хотите сделать его как можно более сложным. Однако, если вы просто добавите бессмысленные строки, или, очевидно, бесполезные или запутывающие вещи, вы никогда не получите это через обзор кода. Поэтому проблема заключается в следующем:
Напишите программу «hello world», которая настолько сложна, насколько это возможно, при условии, что вы можете дать «обоснование» для каждой сложности в коде.
Требуемое поведение программы - просто вывести единственную строку «Hello world» (без кавычек, но с новой строкой в конце) и затем успешно завершиться.
«Оправдания» включают в себя:
- Совместимость модного слова («Современное программное обеспечение является объектно-ориентированным!»)
- общепринятые хорошие практики программирования («Все знают, что вы должны разделить модель и представление»)
- ремонтопригодность («Если мы сделаем это таким образом, мы можем легче сделать XXX позже»)
- и, конечно, любое другое оправдание, которое вы можете себе представить, используя (в других ситуациях) для реального кода.
Очевидно, глупые оправдания не будут приняты.
Кроме того, вы должны «обосновать» свой выбор языка (поэтому, если вы выбираете по своей сути многословный язык, вы должны будете обосновать, почему это «правильный» выбор). Забавные языки, такие как Unlambda или Intercal, неприемлемы (если только вы не можете дать очень хорошее обоснование их использования).
Оценка квалификационных заявок рассчитывается следующим образом:
- 1 балл за каждое утверждение (или любой другой эквивалент утверждения на выбранном вами языке).
- 1 балл за каждое определение функции, типа, переменной и т. Д. (За исключением основной функции, где это применимо).
- 1 балл за каждый оператор использования модуля, директива включения файла, оператор использования пространства имен или аналогичный.
- 1 балл за каждый исходный файл.
- 1 балл за каждое необходимое предварительное объявление (если вы можете избавиться от него путем перестановки кода, вы должны «обосновать», почему выбранное вами соглашение является «правильным»).
- 1 балл за каждую контрольную структуру (если, пока, для и т. Д.)
Помните, что вы должны «оправдать» каждую строку.
Если выбранный язык отличается настолько, что эта схема не может быть применена (и вы можете дать хорошее «обоснование» для его использования), пожалуйста, предложите метод оценки, который наиболее похож на приведенный выше для вашего языка по вашему выбору.
Участников просят подсчитать балл за участие и записать его в ответ.