Ontem enviaram para o br-linux um link para um artigo que mostra uma comparação da versão em C com a versão em Python de Peter Norvig de um programa que faz correção ortográfica (parecido com aquele usado no google).
Ao vê-lo, lembrei de outro artigo de Peter Norvig, o “Solving Every Sudoku Puzzle” (Resolvendo todos os sudoku), em que ele mostra um programa em Python, capaz de resolver até mesmo os jogos mais difíceis, em apenas 100 linhas. Antes que alguém venha falar que Python é lento, ele diz no final do artigo que ele poderia ter escrito o código visando a eficiência, de forma que ele executasse 10 vezes mais rápido, mas que o código seria 5 vezes maior.
Eu me lembrei que eu tinha visto uma versão em Javascript, que é uma tradução da versão em Python. Porém, mais interessante que essa versão, é a postada por Brendan Eich em https://bugzilla.mozilla.org/attachment.cgi?id=266577, citada por John Resig em http://ejohn.org/blog/javascript-18-progress/ .
Essa versão usa coisas do JavaScript 1.8 (que será usado no Firefox 3) e traz algumas coisas de Python e de programação funcional, como Generator Expressions e reduce. É interessante comparar as 3 versões do código, a original em Python, a em Javascript comum e em Javascript 1.8 e ver como a versão em Javascript 1.8 fica muito parecida com a versão Python. Bacana não?