Los lenguajes de escript son lenguajes guays porque en general son fáciles de aprender y puedes hacer cosas grandes con ellos. El único inconveniente que tienen es que no son tan rápidos como uno compilado: C/C++, Pascal, Cobol... Sin embargo, lo ideal sería mezclar lenguajes de escripts con lenguajes compilados, pero con cabeza. Esto no quiere decir que no se puedan hacer juegos con los lenguajes de escript. Incluso he visto juegos completo 3D tan sólo hechos con lenguajes de escript. Eso sí, a costo de chupar mucha CPU :-P.
Voy a escribir de python, mi preferido, escribiendo un código que he hecho para este:
def recursiva(numero):
if numero > 0:
recursiva(numero - 1)
else:
print "Se acabó"
>>recursiva(4)
Se acabó
Sin embargo, hay una particularidad de python que es paranoico con la seguridad en cuanto a memoria.Tiene un límite de nivel de profunidad de recursión, dependiente de la plataforma, para evitar infinita recursión si se produce una sobrecarga de memoria en la pila de C, las recursiones, y python no pete.
Por ejemplo, en mi caso al hacer esto:
>>recursiva(1500)
(...)
RuntimeError: maximun recursion depth excedeed
La solución es bastante fácil: tenemos que importar el módulo del sistema, sys. Y usar estas dos funciones:
sys.getrecursionlimit() #Devuelve el número máximo de recursiones. Con esto sabremos el límite exacto.
sys.setrecursionlimit(límite) #Ponemos nosotros el número máximo del nivel de recursión.
Otra forma es hacer una captura de excepciones, pero a nosotros nos interesa aumentar el número máximo de recursiones para más libertad.
>>import sys
# Para los que critican python por la forma que tiene de importar y utilizar los módulos:
# Si queremos solamente justo lo necesario hacemos esto:
# >> from sys import getrecursionlimit, setrecursionlimit
#Y hacemos esto nada más
# >> setrecursionlimit(777)
# >> getrecursionlimit()
# 777
>>sys.getrecursionlimit()
1000
>>sys.setrecursionlimit(2000)
>>recursiva(1500)
Se acabó
Bueno, espero que os haya gustado mi sesión de programación con escripts. Si no conocéis ningún lenguaje de escript, deberías al menos de coger uno. ¡Elegid el que más os guste!
1 comentario:
Me tengo que poner con algún lenguaje script pero ya. Que siempre lo dejo para luego y al final no hago nada y la verdad es que tengo ganas :P
Un saludo
Publicar un comentario