Seu chefe pede que você escreva um programa "olá mundo". Como você é pago por linhas de código, deseja torná-lo o mais complexo possível. No entanto, se você apenas adicionar linhas sem sentido, ou coisas obviamente inúteis ou ofuscantes, você nunca conseguirá isso através da revisão de código. Portanto, o desafio é:
Escreva um programa "olá mundo", o mais complexo possível, sob a condição de que você possa fornecer uma "justificativa" para toda complexidade do código.
O comportamento necessário do programa é apenas gerar uma única linha "Hello world" (sem as aspas, mas com uma nova linha no final) e sair com êxito.
"Justificativas" incluem:
- compatibilidade com buzzword ("O software moderno é orientado a objetos!")
- boas práticas de programação geralmente aceitas ("Todo mundo sabe que você deve separar modelo e visualização")
- manutenibilidade ("Se fizermos dessa maneira, poderemos fazer XXX mais facilmente depois")
- e, é claro, qualquer outra justificativa que você possa imaginar usando (em outras situações) para código real.
Obviamente, justificativas tolas não serão aceitas.
Além disso, você deve "justificar" sua escolha de idioma (por isso, se você escolher um idioma inerentemente detalhado, precisará justificar por que é a escolha "correta"). Línguas divertidas como unlambda ou INTERCAL não são aceitáveis (a menos que você pode dar uma muito boa justificativa para usá-los).
A pontuação das entradas qualificadas é calculada da seguinte forma:
- 1 ponto para cada afirmação (ou qualquer que seja o equivalente a uma afirmação no seu idioma preferido).
- 1 ponto para cada definição de função, tipo, variável etc (com exceção da função principal, quando aplicável).
- 1 ponto para cada instrução de uso do módulo, diretiva de inclusão do arquivo, espaço para nome usando a instrução ou similar.
- 1 ponto para cada arquivo de origem.
- 1 ponto para cada declaração encaminhada necessária (se você pode se livrar dela reorganizando o código, você deve "justificar" por que o arranjo que você escolheu é o "certo").
- 1 ponto para cada estrutura de controle (se, enquanto, para etc.)
Lembre-se de que você precisa "justificar" cada linha.
Se o idioma escolhido for diferente o suficiente para que esse esquema não possa ser aplicado (e você possa fornecer uma boa "justificativa" para o seu uso), sugira um método de pontuação que mais se assemelhe ao descrito acima para o seu idioma de escolha.
Solicita-se aos participantes que calculem a pontuação de sua inscrição e a escrevam na resposta.