<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: O monge e o macaco</title>
	<atom:link href="http://blog.blabos.org/2009/02/o-monge-e-o-macaco/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.blabos.org/2009/02/o-monge-e-o-macaco/</link>
	<description>Perl, tecnologia e algum blá blá blá</description>
	<lastBuildDate>Sat, 17 Dec 2011 17:19:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Eliana</title>
		<link>http://blog.blabos.org/2009/02/o-monge-e-o-macaco/#comment-2046</link>
		<dc:creator>Eliana</dc:creator>
		<pubDate>Wed, 09 Feb 2011 22:38:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.blabos.org/?p=380#comment-2046</guid>
		<description>muito bom!</description>
		<content:encoded><![CDATA[<p>muito bom!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thiago F Macedo</title>
		<link>http://blog.blabos.org/2009/02/o-monge-e-o-macaco/#comment-2035</link>
		<dc:creator>Thiago F Macedo</dc:creator>
		<pubDate>Sun, 14 Nov 2010 09:15:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.blabos.org/?p=380#comment-2035</guid>
		<description>Você é um bom pregador, Jesus precisa de vc! hauhauhau
WWW/Mechanize parece bom :-o
E o Perl tb.. interessante conhecer o pai do PHP. Preciso estudar origem das linguagens.. encorajador.
Valeu!</description>
		<content:encoded><![CDATA[<p>Você é um bom pregador, Jesus precisa de vc! hauhauhau<br />
WWW/Mechanize parece bom <img src='http://blog.blabos.org/wp-includes/images/smilies/icon_surprised.gif' alt=':-o' class='wp-smiley' /><br />
E o Perl tb.. interessante conhecer o pai do PHP. Preciso estudar origem das linguagens.. encorajador.<br />
Valeu!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eden Cardim</title>
		<link>http://blog.blabos.org/2009/02/o-monge-e-o-macaco/#comment-2032</link>
		<dc:creator>Eden Cardim</dc:creator>
		<pubDate>Mon, 27 Sep 2010 01:42:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.blabos.org/?p=380#comment-2032</guid>
		<description>&quot;Não são escravas da linguagem que acaba por fazer a maior parte do trabalho por elas?&quot;

Não, na definição que eu conheço, &quot;escravo&quot; é sempre quem faz a maior parte do trabalho.

A questão é que uma coisa é saber como funcionam as coisas por dentro, chegar a executar a implementação é outra coisa completamente diferente. Se eu te der 100g de silício, os demais ingrediantes, e o equipamento necessário, você consegue montar um processador &quot;perfeito&quot; sozinha? Você consegue escrever um sistema operacional &quot;perfeito&quot; sozinha, com uma linguagem qualquer? Você consegue projetar uma linguagem &quot;perfeita&quot; e escrever um compilador/interpretador &quot;perfeito&quot; pra ela sozinha? Caso tenha respondido &quot;sim&quot; para qualquer pergunta dessas, você entraria num avião autônomo que utilizasse as soluções anteriores? Você é escrava por ter respondido &quot;não&quot;? O que é mais &quot;libertador&quot;, usar um processador pronto pra abrir a porta da garagem pra você, ou usar o mesmo tempo pra montar um processador &quot;perfeito&quot; que ainda não faz nada?</description>
		<content:encoded><![CDATA[<p>&#8220;Não são escravas da linguagem que acaba por fazer a maior parte do trabalho por elas?&#8221;</p>
<p>Não, na definição que eu conheço, &#8220;escravo&#8221; é sempre quem faz a maior parte do trabalho.</p>
<p>A questão é que uma coisa é saber como funcionam as coisas por dentro, chegar a executar a implementação é outra coisa completamente diferente. Se eu te der 100g de silício, os demais ingrediantes, e o equipamento necessário, você consegue montar um processador &#8220;perfeito&#8221; sozinha? Você consegue escrever um sistema operacional &#8220;perfeito&#8221; sozinha, com uma linguagem qualquer? Você consegue projetar uma linguagem &#8220;perfeita&#8221; e escrever um compilador/interpretador &#8220;perfeito&#8221; pra ela sozinha? Caso tenha respondido &#8220;sim&#8221; para qualquer pergunta dessas, você entraria num avião autônomo que utilizasse as soluções anteriores? Você é escrava por ter respondido &#8220;não&#8221;? O que é mais &#8220;libertador&#8221;, usar um processador pronto pra abrir a porta da garagem pra você, ou usar o mesmo tempo pra montar um processador &#8220;perfeito&#8221; que ainda não faz nada?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eden Cardim</title>
		<link>http://blog.blabos.org/2009/02/o-monge-e-o-macaco/#comment-2031</link>
		<dc:creator>Eden Cardim</dc:creator>
		<pubDate>Mon, 27 Sep 2010 01:29:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.blabos.org/?p=380#comment-2031</guid>
		<description>Repetindo, &quot;libertar mentes&quot; significa não ficar preso em problemas que já tem solução, e usar a mente para resolver novos problemas. As novas soluções acabam obsoletando as soluções antigas naturalmente. Um bom exemplo disso é o surgimento de armazenamento SSD, onde a fragmentação da memória não causa impacto de performance. Se invés de procurar uma nova tecnologia, ficássemos tentando inventar novas formas de minimizar/otimizar a fragmentação, é possível que demoraria mais para surgir a tecnologia SSD. Ficar preso tentando otimizar soluções já conhecidas em busca de termos como &quot;perfeição máxima&quot; e &quot;compreensão completa&quot; é um grande exercício em futilidade e coisa com a qual só pessoas sem experiência perdem seu tempo.</description>
		<content:encoded><![CDATA[<p>Repetindo, &#8220;libertar mentes&#8221; significa não ficar preso em problemas que já tem solução, e usar a mente para resolver novos problemas. As novas soluções acabam obsoletando as soluções antigas naturalmente. Um bom exemplo disso é o surgimento de armazenamento SSD, onde a fragmentação da memória não causa impacto de performance. Se invés de procurar uma nova tecnologia, ficássemos tentando inventar novas formas de minimizar/otimizar a fragmentação, é possível que demoraria mais para surgir a tecnologia SSD. Ficar preso tentando otimizar soluções já conhecidas em busca de termos como &#8220;perfeição máxima&#8221; e &#8220;compreensão completa&#8221; é um grande exercício em futilidade e coisa com a qual só pessoas sem experiência perdem seu tempo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Blabos de Blebe</title>
		<link>http://blog.blabos.org/2009/02/o-monge-e-o-macaco/#comment-2030</link>
		<dc:creator>Blabos de Blebe</dc:creator>
		<pubDate>Mon, 27 Sep 2010 00:13:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.blabos.org/?p=380#comment-2030</guid>
		<description>É para entender um conto precisa ter um pouco de tato mesmo...

Pelo que você diz, você não entendeu *do que* eu estou falando, não procurou entender e quer uma resposta 1+1 que te dê uma justificativa técnica para a opinião que eu ponho num conto. Caríssima, não há nada que eu fale aqui que vá ser suficiente, você não está disposta a entender que eu estou falando de coisas num outro aspecto.

Quanto aos motivos técnicos, você não respondeu à minha pergunta, o que me faz acreditar que ou você nem olhou para o código, ou não sabe porque acontece essa anomalia. Em ambos os casos não há sentido em continuar nem com a argumentação técnica, nem com a filosófica, já que você ficou me devendo, certo?

Você parece se esquecer que um sistema computacional é muito mais complexo que simplesmente código. Algumas técnicas tiram vantagens de determinados recursos enquanto outras técnicas tiram vantagens de outros. É assim com as linguagens de programação também.

É besteira dizer que algo é mais ou menos eficiente só por causa de um &quot;degrau&quot;. Os dois loops do exemplo acima estão matematicamente corretos, não há código porco ali, no entanto apresentam comportamentos distintos e resultados *iguais*. Isso porque um deles utiliza propriedades especiais do sistema computacional e o outro não. Simples assim. Não há erro de algoritmo, se é essa a justificativa para ineficiências, E aí?

É besteira afirmar que uma determinada linguagem não é capaz de gerar código mais eficiente que um código em C. Até parece que o compilador C é o deus da performance! Sem nem entrar no mérito de produtividade, custo-benefício, etc.

Pra finalizar, deixo mais dois links para serem ignorados também:

http://en.wikipedia.org/wiki/Lisp_machine
http://en.wikipedia.org/wiki/Java_processor</description>
		<content:encoded><![CDATA[<p>É para entender um conto precisa ter um pouco de tato mesmo&#8230;</p>
<p>Pelo que você diz, você não entendeu *do que* eu estou falando, não procurou entender e quer uma resposta 1+1 que te dê uma justificativa técnica para a opinião que eu ponho num conto. Caríssima, não há nada que eu fale aqui que vá ser suficiente, você não está disposta a entender que eu estou falando de coisas num outro aspecto.</p>
<p>Quanto aos motivos técnicos, você não respondeu à minha pergunta, o que me faz acreditar que ou você nem olhou para o código, ou não sabe porque acontece essa anomalia. Em ambos os casos não há sentido em continuar nem com a argumentação técnica, nem com a filosófica, já que você ficou me devendo, certo?</p>
<p>Você parece se esquecer que um sistema computacional é muito mais complexo que simplesmente código. Algumas técnicas tiram vantagens de determinados recursos enquanto outras técnicas tiram vantagens de outros. É assim com as linguagens de programação também.</p>
<p>É besteira dizer que algo é mais ou menos eficiente só por causa de um &#8220;degrau&#8221;. Os dois loops do exemplo acima estão matematicamente corretos, não há código porco ali, no entanto apresentam comportamentos distintos e resultados *iguais*. Isso porque um deles utiliza propriedades especiais do sistema computacional e o outro não. Simples assim. Não há erro de algoritmo, se é essa a justificativa para ineficiências, E aí?</p>
<p>É besteira afirmar que uma determinada linguagem não é capaz de gerar código mais eficiente que um código em C. Até parece que o compilador C é o deus da performance! Sem nem entrar no mérito de produtividade, custo-benefício, etc.</p>
<p>Pra finalizar, deixo mais dois links para serem ignorados também:</p>
<p><a href="http://en.wikipedia.org/wiki/Lisp_machine" rel="nofollow">http://en.wikipedia.org/wiki/Lisp_machine</a><br />
<a href="http://en.wikipedia.org/wiki/Java_processor" rel="nofollow">http://en.wikipedia.org/wiki/Java_processor</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ♣♦ Cheshire Hime ♥♠</title>
		<link>http://blog.blabos.org/2009/02/o-monge-e-o-macaco/#comment-2029</link>
		<dc:creator>♣♦ Cheshire Hime ♥♠</dc:creator>
		<pubDate>Fri, 24 Sep 2010 14:54:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.blabos.org/?p=380#comment-2029</guid>
		<description>Acredito ter entendido sua visão do texto. Mas, neste sentido, &quot;Libertar mentes&quot; é torná-las livres da dificuldade de implementação? 

Mas, elas não tornam-se escravas da sua limitação, já que não são capazes de compreender o que está sendo feito por baixo dos panos? 

Não são escravas da linguagem que acaba por fazer a maior parte do trabalho por elas? Se elas precisarem fazer algo que a linguagem não cubra (algo inusitado, novo e diferente), elas saberão como fazê-lo? 

Quando ele fala no texto &quot;Ele percebeu que sua mente estava escravizada por mecanismos que a obrigavam a não pensar&quot;; os &quot;mecanismos que a obrigavam a não pensar&quot; não seriam justamente as bibliotecas e funções &quot;já prontas&quot;? 

Eu entendo que em Perl possa haver mais liberdade que em Java, por exemplo, que eu considero bastante restrito. Mas, a liberdade por si própria no sentido de &quot;dar a possibilidade de criar&quot;, na minha opinião, é tanto maior quanto mais baixo o nível da linguagem; já que, se todas as outras foram escritas na linguagem de máquina, o que se pode fazer com as outras, se pode fazer com a linguagem de máquina. </description>
		<content:encoded><![CDATA[<p>Acredito ter entendido sua visão do texto. Mas, neste sentido, &#8220;Libertar mentes&#8221; é torná-las livres da dificuldade de implementação? </p>
<p>Mas, elas não tornam-se escravas da sua limitação, já que não são capazes de compreender o que está sendo feito por baixo dos panos? </p>
<p>Não são escravas da linguagem que acaba por fazer a maior parte do trabalho por elas? Se elas precisarem fazer algo que a linguagem não cubra (algo inusitado, novo e diferente), elas saberão como fazê-lo? </p>
<p>Quando ele fala no texto &#8220;Ele percebeu que sua mente estava escravizada por mecanismos que a obrigavam a não pensar&#8221;; os &#8220;mecanismos que a obrigavam a não pensar&#8221; não seriam justamente as bibliotecas e funções &#8220;já prontas&#8221;? </p>
<p>Eu entendo que em Perl possa haver mais liberdade que em Java, por exemplo, que eu considero bastante restrito. Mas, a liberdade por si própria no sentido de &#8220;dar a possibilidade de criar&#8221;, na minha opinião, é tanto maior quanto mais baixo o nível da linguagem; já que, se todas as outras foram escritas na linguagem de máquina, o que se pode fazer com as outras, se pode fazer com a linguagem de máquina.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ♣♦ Cheshire Hime ♥♠</title>
		<link>http://blog.blabos.org/2009/02/o-monge-e-o-macaco/#comment-2028</link>
		<dc:creator>♣♦ Cheshire Hime ♥♠</dc:creator>
		<pubDate>Fri, 24 Sep 2010 14:43:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.blabos.org/?p=380#comment-2028</guid>
		<description>Realmente, se cultura eu mesma tenho que sentir, qual o sentido em ler o texto se eu não irei entender de qualquer forma?

Sobre o código em Perl ser mais rápido que em C, claro que pode ocorrer, o pior programa pode ser escrito em qualquer linguagem (basta ficar criando loops ou ifs inúteis indefinidamente). Mas, o programa mais eficiente do mundo fica mais eficiente a cada degrau descido na escala de linguagens.</description>
		<content:encoded><![CDATA[<p>Realmente, se cultura eu mesma tenho que sentir, qual o sentido em ler o texto se eu não irei entender de qualquer forma?</p>
<p>Sobre o código em Perl ser mais rápido que em C, claro que pode ocorrer, o pior programa pode ser escrito em qualquer linguagem (basta ficar criando loops ou ifs inúteis indefinidamente). Mas, o programa mais eficiente do mundo fica mais eficiente a cada degrau descido na escala de linguagens.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ♣♦ Cheshire Hime ♥♠</title>
		<link>http://blog.blabos.org/2009/02/o-monge-e-o-macaco/#comment-2027</link>
		<dc:creator>♣♦ Cheshire Hime ♥♠</dc:creator>
		<pubDate>Fri, 24 Sep 2010 14:40:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.blabos.org/?p=380#comment-2027</guid>
		<description>Quando eu falei da impossibilidade de C ser mais eficiente que o próprio C, referi-me à linguagem (nosso atual objeto de discussão) e não aos programas (já que eu posso fazer o programa mais ineficiente do mundo em qualquer linguagem; mas, não posso fazer o mais eficiente em qualquer uma).

Pressupondo que Perl tenha o código mais possivel eficiente em C, ele ainda é generalizado (já que toda linguagem precisa generalizar para ter um número aceitável de funções), por exemplo, se eu tenho uma função que troca o primeiro parâmetro pelo segundo numa cadeia de caracteres e, apenas, preciso trocar todos os &quot;(&quot; por &quot;[&quot;, eu consigo ser mais eficiente se usar diretamente a linguagem C; já que eu evitaria chamadas em cadeia de função (uma função chamando outra e outra e outra), execução de código interpretado (que, por definição, influencia na eficiência).

Quando você fala &quot;Por exemplo, quando você invoca uma função como sort() em perl, isso vai invocar um merge sort escrito em C, que para boa parte dos casos, é o algoritmo mais eficiente que existe.&quot;. Mesmo que seja o algoritmo mais eficiente para &quot;boa parte dos casos&quot;, programar em C me dá possibilidade de usá-lo, mas também, de usar outros métodos caso eles sejam mais eficientes em determiando caso. 

Não conhecer o algoritmo mais eficiente na hora apenas nos eleva e nos &quot;abre os olhos&quot; para que tentemos criá-lo sozinhos, não? Eu considero isto o maior avanço possível do programador (embora, isto estenda o prazo para criação do programa). 

Sobre  o ser humano ser sempre mais eficiente que a máquina, eu também não concordo... Já que &quot;sempre&quot; é um absurdo, considerando que existem seres humanos que não aproveitam suas capacidades mentais da melhor forma ou mesmo que não têm tempo para programar a melhor solução sempre. Mas, o ser humano tem capacidade de ser melhor que a máquina, já que a máquina não pode tomar decisões sozinha e não pode negar o que lhe foi dito conforme sua vontade (já que ela não tem vontade).

Criar grandes sistemas em linguagem baixa é realmente uma tarefa árdua, senão impossível. Mas, se o objetivo é &quot;libertar mentes&quot;, nós não deveríamos caminhar para isto? Para a compreensão completa do código, exibindo a perfeição máxima do programa valorizando a grande capacidade intelectual da nossa espécie?

Acreditar que é difícil apenas nos coloca num mundo assim... onde programas e websites são escritos usando ferramentas de terceiros, geradores de código e onde os computadores precisam ter 1GB de memória RAM e/ou 2 núcleos de processamento para rodar qualquer coisa de forma decente... Coisa que, o melhor computador da época onde o fortran ou o assembly eram utilizados não sonharia em ter.</description>
		<content:encoded><![CDATA[<p>Quando eu falei da impossibilidade de C ser mais eficiente que o próprio C, referi-me à linguagem (nosso atual objeto de discussão) e não aos programas (já que eu posso fazer o programa mais ineficiente do mundo em qualquer linguagem; mas, não posso fazer o mais eficiente em qualquer uma).</p>
<p>Pressupondo que Perl tenha o código mais possivel eficiente em C, ele ainda é generalizado (já que toda linguagem precisa generalizar para ter um número aceitável de funções), por exemplo, se eu tenho uma função que troca o primeiro parâmetro pelo segundo numa cadeia de caracteres e, apenas, preciso trocar todos os &#8220;(&#8221; por &#8220;[&#8220;, eu consigo ser mais eficiente se usar diretamente a linguagem C; já que eu evitaria chamadas em cadeia de função (uma função chamando outra e outra e outra), execução de código interpretado (que, por definição, influencia na eficiência).</p>
<p>Quando você fala &#8220;Por exemplo, quando você invoca uma função como sort() em perl, isso vai invocar um merge sort escrito em C, que para boa parte dos casos, é o algoritmo mais eficiente que existe.&#8221;. Mesmo que seja o algoritmo mais eficiente para &#8220;boa parte dos casos&#8221;, programar em C me dá possibilidade de usá-lo, mas também, de usar outros métodos caso eles sejam mais eficientes em determiando caso. </p>
<p>Não conhecer o algoritmo mais eficiente na hora apenas nos eleva e nos &#8220;abre os olhos&#8221; para que tentemos criá-lo sozinhos, não? Eu considero isto o maior avanço possível do programador (embora, isto estenda o prazo para criação do programa). </p>
<p>Sobre  o ser humano ser sempre mais eficiente que a máquina, eu também não concordo&#8230; Já que &#8220;sempre&#8221; é um absurdo, considerando que existem seres humanos que não aproveitam suas capacidades mentais da melhor forma ou mesmo que não têm tempo para programar a melhor solução sempre. Mas, o ser humano tem capacidade de ser melhor que a máquina, já que a máquina não pode tomar decisões sozinha e não pode negar o que lhe foi dito conforme sua vontade (já que ela não tem vontade).</p>
<p>Criar grandes sistemas em linguagem baixa é realmente uma tarefa árdua, senão impossível. Mas, se o objetivo é &#8220;libertar mentes&#8221;, nós não deveríamos caminhar para isto? Para a compreensão completa do código, exibindo a perfeição máxima do programa valorizando a grande capacidade intelectual da nossa espécie?</p>
<p>Acreditar que é difícil apenas nos coloca num mundo assim&#8230; onde programas e websites são escritos usando ferramentas de terceiros, geradores de código e onde os computadores precisam ter 1GB de memória RAM e/ou 2 núcleos de processamento para rodar qualquer coisa de forma decente&#8230; Coisa que, o melhor computador da época onde o fortran ou o assembly eram utilizados não sonharia em ter.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eden Cardim</title>
		<link>http://blog.blabos.org/2009/02/o-monge-e-o-macaco/#comment-2026</link>
		<dc:creator>Eden Cardim</dc:creator>
		<pubDate>Wed, 22 Sep 2010 03:04:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.blabos.org/?p=380#comment-2026</guid>
		<description>É possível sim que um programa em C seja mais eficiente que outro programa também escrito em C, basta você utilizar algoritmos menos eficientes. Decorre disso que, pressupondo que todos estejam nivelados em termos de conhecimento, quando você tem uma implementação em que várias pessoas estão trabalhando a vários anos, como é o caso de Perl e qualquer biblioteca implementada numa linguagem qualquer, é pouco provável que você consiga implementar algo significativamente mais eficiente por conta própria num espaço de tempo aceitável, mesmo que seja na mesma linguagem. Em várias linguagens, as rotinas built-in são implementadas e otimizadas em low-level com C, assembly ou qualquer outra coisa. Por exemplo, quando você invoca uma função como sort() em perl, isso vai invocar um merge sort escrito em C, que para boa parte dos casos, é o algoritmo mais eficiente que existe. Se você re-escrever e invocar esse mesmo algoritmo em C, a diferença de eficiência vai ser mínima e não justifica o re-trabalho. Isso sem contar as ocasiões onde você *não* conhece o algoritmo mais eficiente e além de ter que re-escrever, vai ter que pesquisar antes.
Outro ponto onde eu discordo de você é que um humano é sempre mas eficiente que uma máquina. Um caso onde isso é notável é nos compiladores, dado um programa grande o suficiente, a alta complexidade envolvida no mapeamento desse programa para linguagem de máquina inviabiliza a atuação eficiente de um ser humano. Seres humanos se estressam, se confundem, erram, sentem sono e morrem, e é justamente por isso que existem compiladores, porque colocar uma equipe de seres humanos para compilar manualmente algo como o kernel do linux é uma tarefa que provavelmente nunca terminaria e se terminasse a quantidade de erros humanos no processo provavelmente fariam com que o software resultante fosse mais lento do que um software compilado por uma máquina.</description>
		<content:encoded><![CDATA[<p>É possível sim que um programa em C seja mais eficiente que outro programa também escrito em C, basta você utilizar algoritmos menos eficientes. Decorre disso que, pressupondo que todos estejam nivelados em termos de conhecimento, quando você tem uma implementação em que várias pessoas estão trabalhando a vários anos, como é o caso de Perl e qualquer biblioteca implementada numa linguagem qualquer, é pouco provável que você consiga implementar algo significativamente mais eficiente por conta própria num espaço de tempo aceitável, mesmo que seja na mesma linguagem. Em várias linguagens, as rotinas built-in são implementadas e otimizadas em low-level com C, assembly ou qualquer outra coisa. Por exemplo, quando você invoca uma função como sort() em perl, isso vai invocar um merge sort escrito em C, que para boa parte dos casos, é o algoritmo mais eficiente que existe. Se você re-escrever e invocar esse mesmo algoritmo em C, a diferença de eficiência vai ser mínima e não justifica o re-trabalho. Isso sem contar as ocasiões onde você *não* conhece o algoritmo mais eficiente e além de ter que re-escrever, vai ter que pesquisar antes.<br />
Outro ponto onde eu discordo de você é que um humano é sempre mas eficiente que uma máquina. Um caso onde isso é notável é nos compiladores, dado um programa grande o suficiente, a alta complexidade envolvida no mapeamento desse programa para linguagem de máquina inviabiliza a atuação eficiente de um ser humano. Seres humanos se estressam, se confundem, erram, sentem sono e morrem, e é justamente por isso que existem compiladores, porque colocar uma equipe de seres humanos para compilar manualmente algo como o kernel do linux é uma tarefa que provavelmente nunca terminaria e se terminasse a quantidade de erros humanos no processo provavelmente fariam com que o software resultante fosse mais lento do que um software compilado por uma máquina.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eden Cardim</title>
		<link>http://blog.blabos.org/2009/02/o-monge-e-o-macaco/#comment-2025</link>
		<dc:creator>Eden Cardim</dc:creator>
		<pubDate>Wed, 22 Sep 2010 02:15:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.blabos.org/?p=380#comment-2025</guid>
		<description>Depende, talvez um algoritmo individual sim, mas um *sistema* não irá rodar &quot;toda vida&quot;. O ciclo de vida de um sistema de software envolve atualização, manutenção, homologação e implantação. Na maior parte dos projetos com relevância econômica/científica o ciclo se repete em intervalos bem pequenos e se o software for otimizado excessivamente, perde-se o poder de fazer modificações com agilidade (você leu o artigo que eu citei anteriormente?). &quot;Libertar mente&quot; nesse contexto significa facilitar o processo de atualização invés de ter que lembrar como funcionam as otimizações low-level para todos os casos onde houver atualização. Parafraseando Knuth: &quot;We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil&quot;. O que se faz com perl geralmente envolve programação a nível de sistema, não de algoritmo então as ineficiências são toleradas em favor da flexibilidade. Quando se precisa desse tipo de eficiência minuciosa da qual você fala, pode-se usar a interface com C que se chama XS. Tipicamente, isso se faz nos gargalos do sistema depois que você já sabe onde estão. C oferece esse mesmo tipo de acesso low-level, mas em termos de linguagem de máquina.
Além disso, a grande vantagem de perl em relação às outras linguagens é o CPAN, que é o maior (em termos de número de bibliotecas) e, na minha opinião, o mais bem-gerenciado repositório de bibliotecas open-source em existência na atualidade. Então desenvolver sistemas com perl na maior parte dos casos se trata meramente de integrar soluções que já estão prontas de forma a aplicá-las ao domínio de atuação do sistema em questão. A linguagem de certa forma evoluiu em torno desse repositório e oferece muitos recursos de integração. Assim, você não precisa se preocupar em reimplementar problemas que já tem soluções conhecidas e a sua mente fica livre para pensar sobre o problema novo que o sistema irá resolver.
A respeito de &quot;Por que Perl e não Oz?&quot;, gosto bastante desse tipo de pergunta, mas infelizmente não tenho informação suficiente para responder, pois não tenho informação suficiente sobre Oz. Mas, desde já eu acho que se tiver uma gama boa de bibliotecas disponíveis, portáveis, homologadas, e uma comunidade ativa para dar suporte às mesmas, além do que você citou anteriormente, não vejo porque não qualificá-la como uma boa linguagem também.</description>
		<content:encoded><![CDATA[<p>Depende, talvez um algoritmo individual sim, mas um *sistema* não irá rodar &#8220;toda vida&#8221;. O ciclo de vida de um sistema de software envolve atualização, manutenção, homologação e implantação. Na maior parte dos projetos com relevância econômica/científica o ciclo se repete em intervalos bem pequenos e se o software for otimizado excessivamente, perde-se o poder de fazer modificações com agilidade (você leu o artigo que eu citei anteriormente?). &#8220;Libertar mente&#8221; nesse contexto significa facilitar o processo de atualização invés de ter que lembrar como funcionam as otimizações low-level para todos os casos onde houver atualização. Parafraseando Knuth: &#8220;We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil&#8221;. O que se faz com perl geralmente envolve programação a nível de sistema, não de algoritmo então as ineficiências são toleradas em favor da flexibilidade. Quando se precisa desse tipo de eficiência minuciosa da qual você fala, pode-se usar a interface com C que se chama XS. Tipicamente, isso se faz nos gargalos do sistema depois que você já sabe onde estão. C oferece esse mesmo tipo de acesso low-level, mas em termos de linguagem de máquina.<br />
Além disso, a grande vantagem de perl em relação às outras linguagens é o CPAN, que é o maior (em termos de número de bibliotecas) e, na minha opinião, o mais bem-gerenciado repositório de bibliotecas open-source em existência na atualidade. Então desenvolver sistemas com perl na maior parte dos casos se trata meramente de integrar soluções que já estão prontas de forma a aplicá-las ao domínio de atuação do sistema em questão. A linguagem de certa forma evoluiu em torno desse repositório e oferece muitos recursos de integração. Assim, você não precisa se preocupar em reimplementar problemas que já tem soluções conhecidas e a sua mente fica livre para pensar sobre o problema novo que o sistema irá resolver.<br />
A respeito de &#8220;Por que Perl e não Oz?&#8221;, gosto bastante desse tipo de pergunta, mas infelizmente não tenho informação suficiente para responder, pois não tenho informação suficiente sobre Oz. Mas, desde já eu acho que se tiver uma gama boa de bibliotecas disponíveis, portáveis, homologadas, e uma comunidade ativa para dar suporte às mesmas, além do que você citou anteriormente, não vejo porque não qualificá-la como uma boa linguagem também.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

