[pyar] ¿Volvemos a empezar?

Alejandro J. Cura alecu en protocultura.net
Mie Abr 30 20:25:35 ART 2014


Me estoy agarrando la cabeza con este thread. Me siento asi:
https://xkcd.com/386/
---

Esta mal. Disculpas, pero todo este thread esta mal. No tienen sentido
los microbenchmarks que estan intentando hacer acá.


Python como lenguaje esta optimizado para el programador que *no
necesita* saber si la memoria de un string o una lista se copia o no.
En el noventa y pico porciento de los programas no necesitas saber
esto, porque como ya lo mencionaron, estan esperando a una base de
datos o a un disco o a una conexion de red, o a que el usuario haga un
click, y optimizar eso es al pedo.

Mismo, tu programa que haga calculos complejisimos y te permita freir
huevos sobre el cpu va a necesitar hablar con el disco o unos
webservices o una db para alimentarse de datos, y probablemente todas
esas interfaces compongan una gran parte de tu codigo. Y tus
algoritmos, siempre[1], van a ser la parte menor. Para todo eso,
Python es brillante, porque te deja escribir codigo rapidamente, sin
perder horas tratando de entender un typo escondido entre doscientas
lineas de error de templates de stl o de boost y sin detenerte a
pensar en las sutiles diferencias de los veinte tipos de smart
pointers de la stdlib y las bibliotecas que usas (c++11 se lee lindo,
pero pocas bibliotecas son c++11, ojo). Sin mencionar que tu ciclo de
compilar y probar es muchisimo mas rapido con Python.

Entonces, para la mayoria de tu codigo, usas Python. Para tus
algoritmos, usa Python tambien para tener una prueba de concepto lista
en poco tiempo, luego optimiza usando numpy, y si aun no te alcanza,
usa boost.python o fortran o algo asi. Ganas en que tu codigo (al
menos ese 90%) lo va a poder mantener cualquier programador novato.

[1] salvo que tu programa sea una biblioteca de algoritmos, pero aun
asi tenes que hacerle los tests :-)

saludos,
-- 
alecu


More information about the pyar mailing list