Blog de Javier Smaldone

Todos los días se aprende algo viejo

Comentarios recientes

20 comentarios

BOFH dijo:
13 de octubre de 2006 a las 15:59  

Juas. Pow1 y pow2 fueron parte de un examen de programación que hice… Nos daban pow2 y nos pedían que optimizaramos el programa, siendo pow1 la solución que pedían.

Buen articulo. ;)

Carlos dijo:
13 de octubre de 2006 a las 16:29  

Muy buen artículo Javier.

Yo me dedico a la informática desde hace ya bastantes años y siempre en grandes instalaciones por lo que el ‘performance’ es muy importante y sí, por desgracia hay gente que opina que el mejor programa es el mas corto.

Mi granito de arena es que otra cosa que hace que un programa sea bueno, es que sea legible por otra persona que no sea quién lo codificó!

Un saludo ;)

Damian dijo:
13 de octubre de 2006 a las 22:11  

Ilustrativo, y me gustaría agregar que cuando se analiza la complejidad de un algoritmo lo que se hace básicamente es contabilizar la operación “más gastadora” (ya sea en tiempo, memoria o ancho de banda) o el cojunto de “operaciones gastadoras” que se realizan cuando el programa recibe una entrada de tamaño “n” .

Y me sorprende bastante que haya gente que se dedique profesionalmente al desarrollo de software sin conocer este tema, es básico, en tercer semestre en ciencias de la computación se lleva todo esto junto con estructuras de datos y después en quinto semestre se lleva “análisis de algoritmos” a donde se analiza cuando un problema es NP completo, entonces es interesante porque podrías retar a un programador que alardee de ser muy bueno para que resuelva un problema NP completo con una entrada “n” grande en corto tiempo, y usen las herramientas que usen para optimizar código no podrá resolverlo en un tiempo razonable.

Creo que es un tema muy muy importante, porque no entiendo como es que alguien al que le paguen por programar entregue un programa que tenga complejidad exponencial, o sea, ¿como es posible que no se los avienten en la cara si el programa se tarda dos horas resolviendo algún problema?

14 de octubre de 2006 a las 1:15  

Interesante artículo, sobre todo porque el área de los algoritmos y la complejidad temporal es algo que no se ve habitualmente en muchos sitios.

También aprovecho para, si se me permite, expresar el desagrado que me causa ver el uso de ciertos anglicismos, como “la performance”, cuando existen términos adecuados y correctos en español, como “el rendimiento”.

Carlos dijo:
14 de octubre de 2006 a las 5:28  

En primer curso de Ingenieria Informatica se hace hincapie en este tema y se utilizan varias formulas y tecnicas para medir la complejidad temporal. Es un asunto que no debe tomarse a la ligera, sobretodo si pretendemos ser buenos programadores.

Buen articulo ( y yo que pense que lo de la complejidad no servia para nada¡).

chus dijo:
14 de octubre de 2006 a las 5:44  

Pena que a la hora de currar esto ni se mire ni se valore. El tiempo apremia y no quieren que lo dediques a pensar estas cosas :/

Oscar dijo:
14 de octubre de 2006 a las 6:04  

Un interesante artículo que resume toda una asignatura de informática. Enhorabuena por la sencillez y brevedad de la explicación. Tendrías que ser profesor.

Zalo dijo:
14 de octubre de 2006 a las 7:03  

Excelente artículo.
Hace ya bastantes años en los que me dedico a esto de programar y ciertamente he visto pasar delante mía a muchos programadores (y muchos jefes) para los cuales lo mejor es lo mas corto, sin llegar a comprender que lo mejor es lo más eficiente.

Yo creo que es un problema de pereza. Sí, sí, de pereza.

Un dia en la cafeteria de la empresa donde trabajo debatiamos un tema similar y como contrarreplica a mi interlocutor le hice el siguiente simil:
-”Vamos que para hacerte la tortilla ahora solo necesitas cascar un huevo, el resto te lo hace la cocina totalmente sola. ¿Genial no?”
-”Sí, si que lo es.”
-”¿Aunque te mueras de hambre antes de que acabe?”

Un saludo.

ZXC dijo:
14 de octubre de 2006 a las 14:22  

¿¿era imprescindible utilizar “performance” en lugar de rendimiento??

javier dijo:
14 de octubre de 2006 a las 18:52  

Antes que nada, agradezco todos los comentarios y el tiempo dedicado a la lectura de este artículo.

Con respecto a las críticas por el uso del anglicismo “performance”, tienen toda la razón.

Normalmente pongo especial cuidado en este tipo de errores (nuestro idioma es lo suficientemente rico como para tener que usar estos recursos), pero esta vez se me pasó. Ya está corregido.

Lauta dijo:
16 de octubre de 2006 a las 15:09  

sisiP!!

Ultimamente la programacion se ha convertido en uno de los sucesos mas grandes de la historia…
no se si eso esta bien o mal en este mundo.. pero con el correr de los años la informatica ha ido avanzando progresivamente….

Desde España Un saludo Muy Grande!!

=)

Adios y hasta la proxima!!!

YoP

aye dijo:
16 de octubre de 2006 a las 15:12  

no lo lei pero a mi punto de vista no me gusta nada
no te creas lo que no sos

Siilex dijo:
21 de octubre de 2006 a las 19:08  

Buen ejemplo.

Pero no creo que los informáticos sean tan tontos.

Sin ir más lejos, los mismos compiladores que usan tienen siempre una opción de “Optimizar por tamaño” y “Optimizar por velocidad”, y eso ya dá una idea de que algo pasa, no?

También hasta el más bruto sabe que si, en vez de hacer un bucle que se ejecute 3 veces, se copia 3 veces seguidas el código, será más largo, pero más rápido, no?

Salut.

Dexter dijo:
25 de octubre de 2006 a las 15:02  

Hola, comentas un articulo: “La perplejidad como recurso didáctico”, este tipo de textos me atraen mucho, cuando un profesor te impresiona es genial. Por casualidad no lo tendras contigo, lo he buscado por inet sin exito y quizas tu me lo puedas pasar.

Muchas gracias y un saludo.

ale dijo:
20 de abril de 2007 a las 13:13  

me parece bueno el ejemplo me gustaria mas infpormacion acerca del tema analisis de eficincia y comlpjidad de la solucion

a dijo:
18 de noviembre de 2007 a las 6:26  

“¡Cuando es mas corto!” Joder, ¿Y donde han aprendido a programar?; siendo yo de FP nunca diria tal chorrada

adverick dijo:
19 de mayo de 2008 a las 1:51  

Gracias por el artículo, fue divertido leerlo.

Isabel dijo:
23 de junio de 2009 a las 14:10  

Conclusión…

La eficiencia no es hacer más con menos es hacer lo mejor con lo que se requiere :D.

P.D.: No soy profesional en sistemas pero ando de metiche.

Pingback & Trackback
mygif
13 de octubre de 2006 a las 16:43  

La complejidad de los algoritmos…

Un interesante artícuo sobre la complejidad y eficiencia de los algoritmos….

mygif
22 de noviembre de 2008 a las 21:14  

Artículo al azar

Deja tu comentario: