[pyar] [video] En Python tenemos nombres, no variables.

Angel Java Lopez ajlopez2000 en gmail.com
Vie Jun 6 11:50:55 ART 2014


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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140606/535616d2/attachment.html>


More information about the pyar mailing list