<?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>Comentarios en: Un error común en programación</title>
	<atom:link href="http://www.codigomanso.com/es/2008/11/un-error-comun-en-programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codigomanso.com/es/2008/11/un-error-comun-en-programacion/</link>
	<description>Programación, informática y tecnología</description>
	<lastBuildDate>Mon, 08 Mar 2010 11:57:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Por: dev.enekoalonso.com : Unnecessary function calls inside loops</title>
		<link>http://www.codigomanso.com/es/2008/11/un-error-comun-en-programacion/comment-page-1/#comment-11</link>
		<dc:creator>dev.enekoalonso.com : Unnecessary function calls inside loops</dc:creator>
		<pubDate>Fri, 28 Nov 2008 19:49:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.codigomanso.com/?p=156#comment-11</guid>
		<description>[...] Calling to functions that return the same value over and over to test the exit condition on a loop is a very novel error or mistake, but I have seen it multiple times in different programming languages. At the end, the problem is the programmer relying on the compiler optimization, which I think is a bad practice. Write efficient code and let the compiler do its job. But don&#8217;t rely on it to optimize your inefficient code. Not to say than there is no compiler optimization at all when writing interpreted code like Python or Javascript. [...]</description>
		<content:encoded><![CDATA[<p>[...] Calling to functions that return the same value over and over to test the exit condition on a loop is a very novel error or mistake, but I have seen it multiple times in different programming languages. At the end, the problem is the programmer relying on the compiler optimization, which I think is a bad practice. Write efficient code and let the compiler do its job. But don&#8217;t rely on it to optimize your inefficient code. Not to say than there is no compiler optimization at all when writing interpreted code like Python or Javascript. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: maeghith</title>
		<link>http://www.codigomanso.com/es/2008/11/un-error-comun-en-programacion/comment-page-1/#comment-9</link>
		<dc:creator>maeghith</dc:creator>
		<pubDate>Thu, 27 Nov 2008 17:12:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.codigomanso.com/?p=156#comment-9</guid>
		<description>Sí, claro hay que ser consciente de lo que se hace.

PD: no fue difícil: compartiste 2 posts de este blog con el g.reader :)</description>
		<content:encoded><![CDATA[<p>Sí, claro hay que ser consciente de lo que se hace.</p>
<p>PD: no fue difícil: compartiste 2 posts de este blog con el g.reader <img src='http://www.codigomanso.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Pau Sanchez</title>
		<link>http://www.codigomanso.com/es/2008/11/un-error-comun-en-programacion/comment-page-1/#comment-8</link>
		<dc:creator>Pau Sanchez</dc:creator>
		<pubDate>Thu, 27 Nov 2008 09:58:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.codigomanso.com/?p=156#comment-8</guid>
		<description>@maeghith: me he centrado en la función strlen en PHP para ejemplificar, pero me referia al concepto en si de meter una llamada a una función en un bucle.

Efectivamente en Pascal no pasa, y en Java, aunque no he hecho la prueba, seguramente al llamar a length probablemente tampoco (y seguramente que usando la clase string de C++ - una de las clases más mal diseñadas en la historia de la humanidad -  esto tampoco pase), pero repito que si no sabes como está diseñada una función, y que es capaz o no de optimizar el compilador o interprete, por lo general es mejor idea no ponerlo en el bucle, si bien es verdad que al final tampoco va a afectar mucho a los tiempos de ejecución, toda gota cuenta para llenar un vaso.

En cualquier caso, la idea es que la gente tome conciencia, no dictar una norma. Si sabes lo que haces, eres libre de hacer lo que quieras ;)

PD: @maeghith tio no se te esapa un blog, eres un crack :D</description>
		<content:encoded><![CDATA[<p>@maeghith: me he centrado en la función strlen en PHP para ejemplificar, pero me referia al concepto en si de meter una llamada a una función en un bucle.</p>
<p>Efectivamente en Pascal no pasa, y en Java, aunque no he hecho la prueba, seguramente al llamar a length probablemente tampoco (y seguramente que usando la clase string de C++ &#8211; una de las clases más mal diseñadas en la historia de la humanidad &#8211;  esto tampoco pase), pero repito que si no sabes como está diseñada una función, y que es capaz o no de optimizar el compilador o interprete, por lo general es mejor idea no ponerlo en el bucle, si bien es verdad que al final tampoco va a afectar mucho a los tiempos de ejecución, toda gota cuenta para llenar un vaso.</p>
<p>En cualquier caso, la idea es que la gente tome conciencia, no dictar una norma. Si sabes lo que haces, eres libre de hacer lo que quieras <img src='http://www.codigomanso.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>PD: @maeghith tio no se te esapa un blog, eres un crack <img src='http://www.codigomanso.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: maeghith</title>
		<link>http://www.codigomanso.com/es/2008/11/un-error-comun-en-programacion/comment-page-1/#comment-7</link>
		<dc:creator>maeghith</dc:creator>
		<pubDate>Wed, 26 Nov 2008 18:58:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.codigomanso.com/?p=156#comment-7</guid>
		<description>No, en pascal no pasa ya que pascal no usa el &#039;&#039; para las cadenas y arrays sino que guarda el tamaño en el 1º elemento.

En la wikipedia lo explican: http://en.wikipedia.org/wiki/String_(computer_science)#Representations (inglés)

Creo que esta es una de las cosas por las que Pascal se ha usado bastante en la demoscene: &lt;strong&gt;parecía&lt;/strong&gt; que iba más rápido en los bucles.</description>
		<content:encoded><![CDATA[<p>No, en pascal no pasa ya que pascal no usa el &#8221; para las cadenas y arrays sino que guarda el tamaño en el 1º elemento.</p>
<p>En la wikipedia lo explican: <a href="http://en.wikipedia.org/wiki/String_(computer_science)#Representations" rel="nofollow">http://en.wikipedia.org/wiki/String_(computer_science)#Representations</a> (inglés)</p>
<p>Creo que esta es una de las cosas por las que Pascal se ha usado bastante en la demoscene: <strong>parecía</strong> que iba más rápido en los bucles.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Pau Sanchez</title>
		<link>http://www.codigomanso.com/es/2008/11/un-error-comun-en-programacion/comment-page-1/#comment-6</link>
		<dc:creator>Pau Sanchez</dc:creator>
		<pubDate>Wed, 26 Nov 2008 18:42:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.codigomanso.com/?p=156#comment-6</guid>
		<description>La respuesta corta a esa pregunta es:
Efectivamente el g++ con -O3 optimiza el &lt;em&gt;strlen&lt;/em&gt;, pero no es capaz de optimizar ninguna función que hayas creado tú, por lo que la línea entre lo que es capaz de optimizar en un bucle, y lo que no, no está clara.

Parece que optimiza el strlen porque conoce &lt;em&gt;strlen&lt;/em&gt; (aunque en lo que tengo de experiencia en linkers y compiladores, esto no debería ser así, y seguro que hay una explicación mejor a que tiene hardcodeadas optimizaciones para strlen y otras funciones de la CRT).

Para más información, y un análisis completo, &lt;a href=&quot;http://www.codigomanso.com/2008/11/un-error-comun-en-programacion-lenguajes-compilados/&quot; rel=&quot;nofollow&quot;&gt;mira la segunda parte&lt;/a&gt; :)</description>
		<content:encoded><![CDATA[<p>La respuesta corta a esa pregunta es:<br />
Efectivamente el g++ con -O3 optimiza el <em>strlen</em>, pero no es capaz de optimizar ninguna función que hayas creado tú, por lo que la línea entre lo que es capaz de optimizar en un bucle, y lo que no, no está clara.</p>
<p>Parece que optimiza el strlen porque conoce <em>strlen</em> (aunque en lo que tengo de experiencia en linkers y compiladores, esto no debería ser así, y seguro que hay una explicación mejor a que tiene hardcodeadas optimizaciones para strlen y otras funciones de la CRT).</p>
<p>Para más información, y un análisis completo, <a href="http://www.codigomanso.com/2008/11/un-error-comun-en-programacion-lenguajes-compilados/" rel="nofollow">mira la segunda parte</a> <img src='http://www.codigomanso.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Un error común en programación: Lenguajes compilados &#187; Codigo Manso</title>
		<link>http://www.codigomanso.com/es/2008/11/un-error-comun-en-programacion/comment-page-1/#comment-5</link>
		<dc:creator>Un error común en programación: Lenguajes compilados &#187; Codigo Manso</dc:creator>
		<pubDate>Wed, 26 Nov 2008 18:42:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.codigomanso.com/?p=156#comment-5</guid>
		<description>[...] ha apuntado que muy probablemente esto que yo comentaba como un típico error que la gente comete cuando programa, se optimiza en los lenguajes compilados (vease [...]</description>
		<content:encoded><![CDATA[<p>[...] ha apuntado que muy probablemente esto que yo comentaba como un típico error que la gente comete cuando programa, se optimiza en los lenguajes compilados (vease [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Juanjo</title>
		<link>http://www.codigomanso.com/es/2008/11/un-error-comun-en-programacion/comment-page-1/#comment-4</link>
		<dc:creator>Juanjo</dc:creator>
		<pubDate>Wed, 26 Nov 2008 10:31:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.codigomanso.com/?p=156#comment-4</guid>
		<description>No estoy seguro, pero en lenguajes compilados (y no interpretados -incluyendo código intermedio-) se realizan optimizaciones que detectan esto que describes.

Igual puede ser interesante probarlo y compilar con gcc con el flag -O :)</description>
		<content:encoded><![CDATA[<p>No estoy seguro, pero en lenguajes compilados (y no interpretados -incluyendo código intermedio-) se realizan optimizaciones que detectan esto que describes.</p>
<p>Igual puede ser interesante probarlo y compilar con gcc con el flag -O <img src='http://www.codigomanso.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
