[SP-pm] SaoPaulo-pm Digest, Vol 71, Issue 49

Eden Cardim edencardim at gmail.com
Fri Aug 20 10:21:04 PDT 2010


>>>>> "Pinguim" == Pinguim Azul <bluepenguin em gmail.com> writes:

    Pinguim> Assim você está dando mais força pro meu argumento ué. A
    Pinguim> norma gramatical que se ensina nas escolas *não é* uma
    Pinguim> linguagem natural.  Linguagem natural é aquilo que falamos
    Pinguim> nas ruas, com erros e ambiguidades, onde as pessoas falam
    Pinguim> seu ao invés de teu. A gramática formal que está nos livros
    Pinguim> de português é uma abstração que não reflete os que as
    Pinguim> pessoas falam (ou, de outra maneira, é uma construção
    Pinguim> artificial que tenta desambiguar a linguagem realmente
    Pinguim> falada pelos humanos).

Eu não fiz nenhuma pesquisa formal a respeito, mas eu acho que esse tipo
de erro só se propaga porque a compreensão é viável na maior parte dos
casos. A linguagem vai evoluindo por conta disso, quem usa a linguagem
vai refinando e eventualmente alguns termos novos entram em uso e outros
em desuso. O meu ponto é de que o teu exemplo não era ambíguo mas ter um
de um certo nível de compreensão da linguagem é requerido, tanto em
linguagens humanas quanto em linguagens de computador.

    Pinguim> Eu discordo disso também, via de regra não há compreensão
    Pinguim> não! Quando eu estou falando com alguém, eu sempre tenho
    Pinguim> que desambiguar a força o que está sendo falado. Por
    Pinguim> exemplo: "Quer ali comigo?" "Ali onde?". A primeira frase
    Pinguim> era ambígua, e você precisou fazer uma pergunta para poder
    Pinguim> entender qual era o significado de ali. Se você consegue
    Pinguim> falar com as pessoas sem nunca perguntar nada que não
    Pinguim> entendeu, então parabéns, eu não tenho essa manha não :)

Esse exemplo não procede, se você não tivesse entendido o significado,
você responderia "Ahn?!" e não "Ali onde?". Esse é um problema de
interface, não de linguagem.

    Pinguim> (E em outras linguas é ainda pior que no português. No
    Pinguim> japonês, por exemplo, a incidência de homonimos é tão
    Pinguim> grande que não tem jeito de escrever o que está sendo
    Pinguim> falado sem perder informação. Por isso que eles precisam de
    Pinguim> ideogramas, só assim pra diferenciar hashi=ponte de
    Pinguim> hashi=palitinhos, já que em kanji são dois símbolos
    Pinguim> diferentes).

    Pinguim> Agora, o problema de modelar linguas de computador em
    Pinguim> linguas humanas é que o computador não pode te perguntar o
    Pinguim> que você realmente queria dizer. Ou melhor, até pode,
    Pinguim> quando ele te dá um warning de compilação é um tipo de
    Pinguim> pergunta pra saber o que você realmente quis dizer. Pra
    Pinguim> mim, o ideal seria poder se expressar sem ter que ficar
    Pinguim> lidando com ambiguidade. Mas isso é IMHO é claro.

Na minha opinião, poder esquecer dos detalhes de sintaxe da linguagem
enquanto você pensa é muito mais produtivo do que ter que lidar com o
problema *e* a linguagem ao mesmo tempo, afinal de contas, um computador
consegue detectar ambiguidade com mais eficiência do que um humano. Em
perl acontece muito isso, você sai escrevendo código e a depender do
contexto, sua expressão pode ser ambigua ou não, e o analisador
sintático só vai reclamar nos lugares em que de fato ocorreu
ambiguidade. Enquanto que numa linguagem "menos humana" você teria que
corrigir a ambiguidade em todos os lugares. Mas a questão nem é tanto
essa da avaliação, é que quando você passa a enxergar programação como
uma coisa humana e a linguagem te fornece artifícios para trabalhar
dessa forma, algumas expressõs que seriam "estranhas" se interpretadas
formalmente, passam a ser naturais:

# "E aí gata, tá afim?"
my $content = do { local( @ARGV, $/ ) = $file ; <> }

# "Dulcíssima dama, poderias, por gentileza, me conceder a honra de
#  copular contigo?"

sub BLOCK_SIZE { 1024 }
open(my($fh), '<', $file) or die "Couldn't open file: $!";
my $content;
1 while $fh->read($content, BLOCK_SIZE) == BLOCK_SIZE;

Morando no Brasil, falando português e tendo mais de 12 anos de idade,
você não deveria ter problema algum para compreender as duas
construções acima.

-- 
   Eden Cardim       Need help with your Catalyst or DBIx::Class project?
  Code Monkey                    http://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?
http://blog.edencardim.com/            http://www.shadowcat.co.uk/servers/


More information about the SaoPaulo-pm mailing list