[pyar] [Semi-OT] Revisión de artículo (blog), con comentarios de Guido van Rossum incluídos.
Carlos Miguel FARIAS
carlosmiguelfarias en gmail.com
Lun Sep 7 20:20:50 ART 2015
El concepto de método es más genérico que el de procedimiento (y el de
función)
Un procedimiento, bien hecho, hace una serie de operaciones, que podrán ser
más o menos adaptadas por medio de parámetros, pero actúa sobre cosas
externas. Un procedimiento es una función que nos devuelve None o void,
La función es un procedimiento que nos devuelve algo.
Normalmente un procedimiento y/o función se olvidan de lo que hicieron
antes, salvo que tengan elementos static o algo así, pero esa "memoria" es
interna y para todo la aplicación.
Un método es el camino (o el modo "modus operandi").
Los métodos de un objeto, tienen memoria "colectiva", actúan sobre
elementos externos o sobre esa memoria colectiva compartida (propiedades),
o sea que son más potentes, por el concepto de clase. Y si pueden
reaprovechar-extender (herencia).
Lo genial de python es que, como es sabido que cualquier algoritmo, sea
lineal, procedural o oop (funcional?) necesita encapsular conjunto de
acciones para su re-utilización (operativa o conceptual), usa una palabrita
(def::definición) para definir la y te ahorras un montón de tipeo.
Al menos, así lo entiendo.
Saludos: Santa Rosa (LP)
El 7 de septiembre de 2015, 19:25, Fernando Pelliccioni <
fpelliccioni en gmail.com> escribió:
> Me olvidaba. Si tengo que elegir una terminología, me quedo con la de
> Eiffel (en este caso).
>
> Saludos,
>
>
> 2015-09-07 19:19 GMT-03:00 Fernando Pelliccioni <fpelliccioni en gmail.com>:
>
>> Hola Daniel,
>>
>> Gracias por tu respuesta.
>>
>> 2015-09-07 18:32 GMT-03:00 Daniel Moisset <dmoisset en machinalis.com>:
>>
>>> Hola,
>>> En la versión de Pascal hecha por Borland (Turbo Pascal) también se
>>> incluía la terminología de método. Yo usé TurboPascal 6 y 7, pero mirando
>>> rápido la parte de OOP la introdujeron en la versión 5.5, que de acuerdo a
>>> [1] salió en 1989. Si bien la sintaxis del lenguaje no usa el término
>>> método en ningún lado (habla de procedimientos y funciones), el manual
>>> oficial [2] se refiere específicamente a "fields" y "methods".
>>>
>>>
>> He usado Turbo Pascal (probablemente la versión 5), pero ni recordaba
>> sobre "método". Gracias por el dato.
>>
>>
>>> En ese sentido ahí tenes al menos un empate con python (que tampoco
>>> tiene keywords específicos para methods, pero en el runtime e
>>> implementación explícitamente salen), ambos siendo de 1989. Como nota, el
>>> diseñador de la parte OOP de Borland (Anders Hejlsberg) fue el que después
>>> paso a Microsoft para diseñar C#, asi que hay mucha influencia cruzada ahí.
>>>
>>
>> Me había olvidado que Hejlsberg estuvo involucrado en Turbo Pascal y
>> ahora también recuerdo que en Delphi. Así que probablemente Hejlsberg no se
>> basó en Java, sino en su experiencia anterior. Aquí quizás tenga una
>> corrección al artículo.
>>
>> Le escribí Hejlsberg y a Gosling, pero se ortibaron, no me dieron bola :)
>> Guido un groso, me contestó y al toque.
>>
>>
>>> Sospecho fuertemente que entre Smalltalk y Python debe haber habido
>>> influencia de Objective C. Sé que en ObjC ahora se usa la terminología de
>>> mensajes y métodos, y que el concepto se usa desde su origen (tiene
>>> influencia fuerte de Smalltalk). No sé si la terminología esa se usa desde
>>> siempre en ObjC, podrías investigar por ese lado.
>>>
>>
>> Menciono a ObjC en mi artículo pero lo hago brevemente ya que me interesa
>> analizar dos cosas:
>> 1. ¿"Quién" inventó de la palabra?
>> 2. ¿"Quién" la popularizó"?
>>
>> ObjC no califica para ninguna de las dos. Hasta ahora las respuestas que
>> tengo son Smalltalk y Java. Aunque ObjC pudo haber jugado un rol importante
>> influenciando a diseñadores de lenguajes. Es explícito que el modelo de
>> objetos de ObjC es basado en Smalltalk. Intenté investigar sobre ObjC pero
>> no pude encontrar buena documentación (Especificaciones, estándares, lo más
>> oficial posible) sólo encontré páginas web de Apple.
>>
>>
>>> Definitivamente me hace dudar de tu afirmación «Python es el primer
>>> lenguaje, después de Smalltalk, en usar la palabra “método”», sospecho que
>>> objective C le lleva 10 años.
>>>
>>>
>> Efectivamente ObjC es de principios de los 80's, aproximadamente misma
>> edad que C++.
>> En mi artículo original no tenía a Python, lo incluí hace poco cuando me
>> enteré que es anterior a Java y casi se me cae la "teoría".
>> Es cierto lo que decís esa afirmación que hago es incorrecta, gracias,
>> voy a corregir el artículo.
>>
>>
>>
>>> Después de lo acertado o no de la nomenclatura, no hay nada definido
>>> sino mas bien opiniones. podría discutir probablemente un rato largo, pero
>>> son discusiones para tener con una cerveza al medio y no por mail :)
>>>
>>>
>> Sí es cierto, es mi postura personal, pero creo que lo aclaré:
>> "Aunque, como dije antes, es muy difícil de juzgar si la decisión
>> de usar cierta nomenclatura es errónea."
>>
>> Con usas cervezas (ANTARES ejem!) se haría mucho más interesante la
>> charla!
>>
>> Muchas gracias por los aportes, son muy valiosos!
>>
>> Abrazo!
>> Fernando.
>>
>> Saludos,
>>> D.
>>>
>>>
>>>
>>> [1] https://es.wikipedia.org/wiki/Turbo_Pascal
>>> [2] http://edn.embarcadero.com/print/images/20803/TP_55_OOP_Guide.pdf
>>>
>>>
>>> 2015-09-07 17:52 GMT-03:00 Fernando Pelliccioni <fpelliccioni en gmail.com>
>>> :
>>>
>>>> Estimados colegas,
>>>>
>>>> Les comparto un artículo (de blog) que escribí hace unos días.
>>>> No trata específicamente sobre Python, pero sí hago mención a éste.
>>>> Incluyo también comentarios de Guido sobre una consulta que le hice.
>>>>
>>>> Espero que les guste y agradezco cualquier comentario, corrección,
>>>> sugerencia, etc...
>>>>
>>>> Aquí el link:
>>>> http://componentsprogramming.com/usando-la-terminologia-adecuada-metodo/
>>>>
>>>> Un agradecimiento especial a Manuel (Kaufmann) y Juan (Drucker) que me
>>>> enviaron varios links que me fueron de mucha utilidad. Si me autorizan, los
>>>> cito en el artículo.
>>>>
>>>> Gracias y saludos,
>>>> Fernando Pelliccioni
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>>
>>>
>>>
>>> --
>>> Daniel F. Moisset - Technical Leader
>>> www.machinalis.com
>>> Skype: @dmoisset
>>>
>>> _______________________________________________
>>> 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/20150907/74f35d76/attachment-0001.html>
More information about the pyar
mailing list