>>>>> "Ulisses-IBIZ" == Ulisses-IBIZ <[email protected]> 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: [email protected]
L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer