Pergunta

Qual é a melhor maneira de comparar a complexidade do código da linguagem funcional e da linguagem imperativa?

No meu caso, tenho que comparar a complexidade de certos programas escritos em F# e C ++. Por enquanto, como uma medida de qualidade de código, estou usando linhas de código -fonte.

Foi útil?

Solução

Não existe uma maneira "melhor". Não existe nem uma maneira remotamente aceitável.

  • SLOC (e medições relacionadas, como a contagem de caracteres) são totalmente sem sentido; Consulte a Wikipedia para obter um resumo das críticas mais comuns
  • Se você quer uma coisa mais abstrata para contar, como "elementos atômicos" do programa, você precisa decidir o que considera isso - e muitos discordam, com razão, porque esse assunto é principalmente indecidível
  • Além disso, essas comparações são Rarley Fair, porque a maioria deles usa problemas de exemplo que tendem a ser resolvidos mais naturalmente em um idioma ou outro. Todo tentou implementar um Fábrica de acumuladores em C ++? Agora lembre -se de que o problema foi proposto por um advogado LISP (Paul Graham) ...
  • Além disso, muitos argumentam que a solução realmente inteligente que usa muito poucas linhas/caracteres/"elementos atômicos" não é a melhor solução em qualquer outra maneira - veja o código Golf

Considerando tudo, a melhor solução pode estar tendo muitos problemas diferentes do mundo real, resolvendo-os idiomaticamente em diferentes idiomas e apenas olhando informalmente para a fonte e decidindo qual parece mais elegante.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top