Opinion sobre los array en Python

Antonio Castro acastro en ciberdroide.com
Lun Abr 19 21:01:24 CEST 2004


On Mon, 19 Apr 2004, Chema Cortes wrote:

> Antonio Castro escribió:
>
> > Yo sigo pensando que la implementacion de array en el propio lenguaje es
> > posible y deseable. Es cierto que he subestimado la importancia del coste
> > de funcionamiento de python como interprete que es muy alto, pero ese es
> > un precio que tiene sentido pagar. Creo que aunque existan partes importantes
> > que no se pueden optimizar hay otras muchas que si. La discusión se centra
> > en si los arrays se pueden optimizar implementandolos en el propio
> > lenguaje.
>
> A ver si tengo claro el tema: lo que propones es que se pueda acceder a
> "chunks" de memoria con los que operar con una aritmética similar a la
> de los punteros de C ;-)

No. Eso quedaría totalmente oculto y pertenece a la implementación del
interprete y la forma en la que se generaría el código.

> > A la vista del alto coste que supone una simple llamada a función a mi me
> > parece que tiene incluso más sentido intentar implementarlo dentro del
> > lenguaje precisamente para evitar ese coste,  pero claro cada uno
> > exponemos argumentos que por el momento no pueden ser ni demostrados
> > ni rebatidos.
>
> Fíjate que lo que aquí estás proponiendo es romper con la orientación a
> objetos del lenguaje y salirte del sistema de intercepción de errores
> (try..except), y eso sin contar con los posibles fallos de seguridad
> frente a reboses ó fallos de direccionamiento de memoria dentro de la
> máquina virtual.

No creo que rompa la orientacion a objetos. Internamente todo interprete
o compilador ha de usar punteros. La diferencia es que en algunos
lenguajes los valores de los punteros son algo perfectamente accesible
al usuario y en otros queda perfectamente oculto que es lo que yo
sugería, pero tienes razón que la gestión de los errores quizás si que
sea un problema. Reconozco que no se me ocurre como compatibilizar la
gestión de los errores de desbordamiento del array, y quizás eso es lo
que ya hace el módulo array. Puede que en la gestión de esos errores esté
la clave de que resulte implosible según parece implementarlo en el propio
lenguaje en la forma que yo sugería.

> Pienso que el lenguaje python no precisa de arrays como parte del propio
> lenguaje. Es preferible contar con algún módulo como el numarray ó el
> struct con las que encargar las operaciones que interese optimizar a
> lenguajes de más bajo nivel, y para todo lo demás ya existe el módulo
> 'array'.

Afirmas que Python no necesita arrays como parte del propio lenguaje
porque no existe al parecer esa posibilidad, pero si esa posibilidad
existiera y funcionara de forma eficiente yo creo que se convertiría
en una parte importante de ese lenguaje.

Ahora veo las cosas de una forma distinta a como las veía al principio
de esta discusión. Agradezco todo este intercambio de información.

Al final se conforma uno con lo que tiene y el resto decimos que no
lo necesitamos lo cual quizás sea cierto despues de todo. ;-)


-- 
Un saludo
Antonio Castro

       /\     /\
         \\W//
        _|0 0|_
+-oOOO-(___o___)-OOOo---------------------+
| . . . . U U . Antonio Castro Snurmacher |
| . . . . . . . acastro en ciberdroide.com   |
+()()()---------()()()--------------------+




Más información sobre la lista de distribución Python-es