[pyar] [video] En Python tenemos nombres, no variables.
Claudio Omar Melendrez Baeza
claudio.melendrez en gmail.com
Vie Jun 6 12:01:08 ART 2014
Creo que se hace para eliminar costumbres de uso que surgen de usar
"variables convencionales", como un atajo.
No es raro que programadores que vienen de otros languajes al usar Python
hagan "cosas raras", al imponerse limitaciones de uso que no existen en
realidad. Pasa si ven a la variables como contenedores de datos en lugar de
referencias a objetos (aliases), por ejemplo. Algo que no es tan raro si
consideramos las definiciones de "variable" que se dan en otros entornos.
2014-06-06 11:50 GMT-03:00 Angel Java Lopez <ajlopez2000 en gmail.com>:
> Me sigue confundiendo que alguien diga "tenemos nombres en vez de
> variables". Vean que, ya que nombraron Smalltalk, ahi, en Smalltalk, desde
> siempre hay cosas como instance variables, class variables, local variables
> y demas, que tienen el mismo comportamiento que en este hilo le quieren
> adosar a "nombre".
>
> Lo que parece mas interesante es distinguir que las variables tienen
> valor, y este puede ser un valor "directo", o una referencia a algo mas, en
> general un objeto. Ahi aparece el fenomeno del alias. En los tipos de valor
> que manejan las variables.
>
> Y que recuerde, todas las variables (incluso los "nombres") ocupan lugar
> en la memoria para guardar su valor. De nuevo, insisto, me parece mas
> alineado con la historia, y los conceptos, llamar a muchas cosas variables
> (en vez de separar en variable y nombre) y luego, percatarse de valores
> referencia vs valores directos, digamos, o simplemente valores.
>
> Pero bueno, sobre gustos no hay nada escrito, decia alguien, y le ponia
> dulce de leche a la grande de muzarella ;-) Puede que alguien vea algun
> beneficio en la separacion "nombre" y "variable".
>
> Ah! Y "metodo" viene por lo menos de Smalltalk 80. Es la pieza que atiende
> el envio de un mensaje al objeto, y Smalltalk lo localiza por el selector
> (digamos, el nombre del mensaje). Recuerdo ahora a Ian Piumarta (estuvo en
> Argentina, para Smalltalks 2012 en la Universidad de Quilmes) y su trabajo
> para simplificar todo, y dejar la base de lo que seria un lenguaje de
> objetos: envio de mensajes, y resolucion de como atenderlos. Puede que cada
> objeto resuelva quien lo atiende, puede que apele a un objeto prototipo,
> puede que busque ayuda en una clase, etc. Pero creo que hacia apuntaba Alan
> Kay: lo importante es el messaging, la unica forma de comunicarse con un
> objeto. Luego hay variantes en como el mensaje que llega se atiende
> (jeje... me diverti mucho preparando algo de ese tema para la JS Uruguay
> que paso, me diviegto como logco ;-)
>
> Nos leemos!
>
> Angel "Java" Lopez
> @ajlopez
>
>
>
> 2014-06-06 11:22 GMT-03:00 Gustavo Ibarra <ibarrags en gmail.com>:
>
>> On Thu, Jun 5, 2014 at 10:21 AM, Roberto Alsina
>> <ralsina en netmanagers.com.ar> wrote:
>> >
>> > On 05/06/14 10:12, Alejandro Santos wrote:
>> >
>> > 2014-06-05 15:01 GMT+02:00 Roberto Alsina <ralsina en netmanagers.com.ar>:
>> >
>> > On 05/06/14 09:06, Alejandro Santos wrote:
>> >
>> > 2014-06-04 21:52 GMT+02:00 Roberto Alsina <ralsina en netmanagers.com.ar>:
>> >
>> > Python 3 si. Bueno, mas o menos. Depende de como definís objeto :-)
>> >
>> > Tal cual, decir que "todo" es un objeto significa que un Int es un
>> > array de Booleans, donde cada bit es un objeto.
>> >
>> > Mi opinión personal es que siempre me pareció innecesaria esa
>> > motivación que algunas personas tienen del "purismo de objetos", o en
>> > general "purismo de X" donde X es algún concepto abstracto. Whatever.
>> >
>> > Por ejemplo la "teoría de objetos" dice que "todo es un objeto y todo
>> > objeto tiene una clase",
>> >
>> > Ehhhh no? :-)
>> > Hay sistemas de objetos sin clases, como los sistemas basados en
>> prototipos,
>> > no?
>> >
>> > Pero eso no es un sistema de objetos puro! Me estás cambiando de
>> > paradigma, Roberto :P
>> >
>> >
>> > Ningún lenguaje excepto (tal vez) Smalltalk es orientado a objetos
>> segun la definicion original de Kay, que encima no la escribió nunca en
>> ningún lado, por lo cual hay dos versiones:
>> >
>> > 1. EverythingIsAnObject.
>> > 2. Objects communicate by sending and receiving messages (in terms of
>> objects).
>> > 3. Objects have their own memory (in terms of objects).
>> > 4. Every object is an instance of a class (which must be an object).
>> > 5. The class holds the shared behavior for its instances (in the form
>> of objects in a program list)
>> > 6. To eval a program list, control is passed to the first object and
>> the remainder is treated as its message.
>> >
>> > o
>> >
>> > 1. EverythingIsAnObject.
>> > 2. Communication is performed by objects communicating with each other,
>> requesting that objects perform actions. Objects communicate by sending and
>> receiving messages. A message is a request for action, bundled with
>> whatever objects may be necessary to complete the task.
>> > 3. Objects have their own memory, which consists of other objects.
>> > 4. Every object is an instance of a class. A class simply represents a
>> grouping of similar objects, such as integers or lists.
>> > 5. The class is the repository for behavior associated with an object.
>> That is, all objects that are instances of the same class can perform the
>> same actions.
>> > 6. Classes are organized into a singly-rooted tree structure, called
>> the inheritance hierarchy. Memory and behavior associated with instances of
>> a class are available to any class associated with a descendent in this
>> tree structure.
>> >
>> >
>> > Y encima cuando le preguntaron en persona en 2003 simplemente dijo
>> >
>> > " OOP to me means only messaging, local retention and protection and
>> hiding of state-process, and extreme late binding of all things."
>> >
>> > Asi que de acuerdo a Kay en 2003, se puede ser OOP sin clases, pero de
>> acuerdo a Kay en 1974 no ;-)
>> >
>> Hola. Un comentario al margen:
>> Pasa que AK es un genio, como a todo genio, nosotros, los comunes, no
>> le tenemos que dar mucha bola con lo que dice(si con lo que hace!),
>> por que entre otras cosas siempre están mirando para otros rumbos.
>> De todas maneras, en Smalltalk existió desde un principio una clase
>> llamada "MetaClass". Por tal motivo existe un atributo llamado "class
>> instance variables". En Smalltalk todo se reduce a que existen clases,
>> objetos y mensajes (y bytecodes). Un objeto no puede existir sin una
>> clase, todo objeto es una instancia de una clases, y una clase tiene
>> que ser una instancia de una metaclase. La metaclase es una clase mas
>> "como cualquier otra", pero ubicada en otro lado del árbol de clases
>> (algo así Object>>Class>>MetaClass). ¿Que fuente da esta explicación?.
>> El mismo Smalltalk.
>> Saludos!
>> http://www.wheels.org/spacewar/stone/rolling_stone.html
>>
>> >
>> >
>> > _______________________________________________
>> > pyar mailing list pyar en python.org.ar
>> > http://listas.python.org.ar/listinfo/pyar
>> >
>> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>> >
>> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140606/719c508a/attachment.html>
More information about the pyar
mailing list