Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Jeronimus Linuxius

Go To Statement Considered Harmful: A Retrospective

Recommended Posts

Jeronimus Linuxius

Ok. Eu sei que devia ir estudar monitores, mas tropecei nisto. Uma crítica construtiva à dogmatização que muitos programadores controem à volta de certos tópicos, sem saberem muito bem qual é a sua verdadeira substância.

http://david.tribble.com/text/goto.html

JJ

Share this post


Link to post
Share on other sites
Jeronimus Linuxius
It should also be realized that much of the terminology of programming that is taken for granted today had not yet been firmly established in 1968. There was much debate and discussion at the time about what terms to use for programming concepts, and most of the terms we use today took many years to be widely accepted.

Modestia à parte, eu acho que tenho bastante jeito para História! Tomar atenção ao que as pessoas achavam no passado é uma boa parte disso.

Dijkstra seems to imply that iterative looping (inductive) statements are intellectually harder to grasp than recursion, which is the kind of thing only a mathematician would say.

LOL!

Eu concordo com o Dijkstra. Em alguns sentidos, a recursão é intelectualmente mais fácil de raciocinar do que a iteração. O inconveniente é que temos que ser frios e deixar o nosso lado mais matemático tomar o controlo da situação. É a tal coisa: é mais difícil pensar sobre coisas dinâmicas do que sobre coisas estáticas. É claro que se já tivermos o algoritmo "empinado" (como por exemplo, o máximo de um vector), a iteração acaba por ser mais económica.

Independentemente disso, a iteração é mais elegante e mais verbal na maioria das situações (e isso é bom).

E acho que perguntarmo-nos a nós próprios qual é o invariante do loop é uma maneira bastante eficaz de conseguir escrever o loop mais facilmente, e de maximizar a probabilidade de acertarmos em cheio à primeira. Eu (pelo menos) sinto isso quando escrevo loops.

Boring computer science theory ftw.

JJ

Share this post


Link to post
Share on other sites
Warrior

Eu concordo que jumps são feios, no entanto, por vezes, são a solução ideal, e acabo por usá-los.

Em algumas situações, a alternativa a um break é extremamente feia..

Share this post


Link to post
Share on other sites
Jeronimus Linuxius

O problema é que nada se faz com radicalismos.

Especialmente em programação, quando temos uma teoria radical, o meu conselho é temos muito cuidado, porque há uma grande probabilidade de não termos razão...

Por outras palavras, devemos basear as nossas regras nos mesmos princípios que levaram ou outros às suas regras. No entanto, não devemos copiar directamente as regras dos outros.

JJ

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.