>>>>> "Ulisses-IBIZ" == Ulisses-IBIZ  <ulis...@ibiz.com.br> writes:

    Ulisses-IBIZ> um cara de talento é um bom resolvedor de problemas: 
identifica-o, separa o joio do trigo e aplica a elegancia da simplicidade (ou a 
simplicidade da
    Ulisses-IBIZ> elegancia) para resolve-lo. Isso ele faz em Perl, Java, C, 
Python .... Claro, cada linguagem facilita mais a vida do programador (que 
prefiro charmar de
    Ulisses-IBIZ> designer). Perl é uma mão na roda que te permite, muitas 
vezes, desenvolver N vezes mais rápido que em outras linguagens, mas.... vai de 
gosto.
 
    Ulisses-IBIZ> primeiro o cara precisa ter fluencia de pensamento e depois 
na linguagem que escolheu para 'resolver' o problema que se apresenta.

Pois é, mas algumas linguagens aleijam até o melhor dos pensadores em
alguns aspectos. Por exemplo, em java uma simples equação de Bhaskhara
implementada com bignums vira isso:


--8<---------------cut here---------------start------------->8---
((b.pow(2) - (a.multiply(b)).multiply(4)).sqrt).divide(2)
--8<---------------cut here---------------end--------------->8---

porque java não tem sobrecarga de operadores, por design.

E como sempre, o caso do quicksort em haskell que eu sempre costumo usar
de forma ilustrativa:

--8<---------------cut here---------------start------------->8---
quicksort [] = []
quicksort (s:xs) = quicksort [x|x <- xs,x < s] ++ [s] ++ quicksort [x|x <- xs,x 
>= s]
--8<---------------cut here---------------end--------------->8---

Além de ser mais curta, objetiva e mais próximo do que se aprende na
escola do que qualquer outra função em qualquer outra linguagem
não-funcional, funciona com qualquer tipo de dado que implemente os
operadores '<' e '>='. O Java, logo de cara, não consegue fazer,
novamente porque falta a sobrecarga. Em C também não dá, em C++ você
consegue se (ab)usar de templates. Em alguma linguagem dinâmica como
perl ou python, você faz algo similar, mas nunca vai ser tão rápido
quanto a implementação em haskell (a propósito, essa implementação aí em
cima não é a melhor possível), porque compila direto pra binário, não é
interpretado.

Resumindo, a depender do problema, tem linguagens que vão ser bastante
melhores do que outras.

-- 
   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/
=begin disclaimer
   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
 SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
 L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer

Responder a