[R-es] R <- POO

miguel.angel.rodriguez.muinos en sergas.es miguel.angel.rodriguez.muinos en sergas.es
Jue Mar 16 11:33:18 CET 2017


Sigo estando en desacuerdo contigo, Javier.

R es, claramente, un lenguaje de Programación Orientado a Objetos (POO, OOP, o como quieras llamarlo). Maneja clases (con sus propiedades, métodos, propiedades, estados, ...), herencia, polimorfismo, ....

Otra cosa es que quieras usar R de otra manera (programación estructurada, modular, funcional, ...)

Un saludo,
Miguel.


El 15/03/2017 a las 16:32, javier.ruben.marcuzzi en gmail.com<mailto:javier.ruben.marcuzzi en gmail.com> escribió:
Estimados

Yo me refería a esto:

https://stat.ethz.ch/R-manual/R-devel/library/base/html/class.html

Interpreto que la traducción dice algo como que es una función con un mecanismo simple y genérico que puede ser utilizado como un estilo de programación orientada a objetos.

Sin entrar en partes muy técnicas.

En un lenguaje orientado a objetos como c#, creo una clase con atributos, luego puedo crear una lista para estos, algo como List<autos> lista_de_autos.

Otra forma sería algo como List<T>, donde no coloco el objeto creado por la clase autos. T se daría cuenta.

R interpreto que tiene un mecanismo semejante a este último. Si realizo str(algo), por decirlo de alguna forma me trae los atributos de un objeto ya definido, pero altura <- 1.85 sería una variable, que R permite ser llamada como un objeto.

R tiene partes en C/C++ que tiene objetos, pero en Fortran no se utilizan objetos, yo nunca tuve que iniciar una instancia de una matriz en Fortran, en R tampoco tuve que iniciar una instancia de una matriz, ni colocar partes pública o privadas, hay partes distintas en los lenguajes, o herencia entre dos data.frame.

Comparo nuevamente con C#
Var altura = 1,85 es una variable.
Persona.altura = 1,85 es un valor dentro del objeto

En R altura <- 1,85 puede trabajarse como variable u objeto (porque tiene una función simple y genérica que puede ser utilizada como programación orientada a objetos, entiendo que por library/base/class).

Por eso escribí que no es orientado a objetos pero que hay formas de trabajarlo como objetos. Luego hay diferencias como función y método,  pero el efecto es lo mismo, las diferencias no nos complica la vida, salvo si por lo que yo nombre como cajas se confunda con crear clases para definir objetos, en R no necesitamos definir una clase para llenar un data.frame. Sin embargo permite crear objetos y ser trabajado como OOP, en R se pueden usar varias alternativas.
https://www.r-bloggers.com/oo-in-r/

R permite más de un estilo de programación.

Javier Rubén Marcuzzi

De: Carlos J. Gil Bellosta <mailto:cgb en datanalytics.com>
Enviado: miércoles, 15 de marzo de 2017 11:14
Para: miguel angel rodriguez muinos<mailto:miguel.angel.rodriguez.muinos en sergas.es>
CC: Javier Marcuzzi<mailto:javier.ruben.marcuzzi en gmail.com>; Mauricio Monsalvo<mailto:m.monsalvo en gmail.com>; r-help-es<mailto:r-help-es en r-project.org>
Asunto: Re: [R-es] R <- POO

De hecho, dos de los principios de diseño de R son:

1) Todo lo que existe es un objeto.
2) Todo lo que sucede es una llamada a una función.

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com

El 15 de marzo de 2017, 14:22, <miguel.angel.rodriguez.muinos en sergas.es<mailto:miguel.angel.rodriguez.muinos en sergas.es>> escribió:
Disiento, Javier.

R sí es un lenguaje orientado a objetos.

:-)


Un saludo,
Miguel.



El 15/03/2017 a las 13:43, javier.ruben.marcuzzi en gmail.com<mailto:javier.ruben.marcuzzi en gmail.com><mailto:javier.ruben.marcuzzi en gmail.com<mailto:javier.ruben.marcuzzi en gmail.com>> escribió:

R es un lenguaje medio complicado, no es orientado a objetos, aunque hay formas para un trabajo con objetos, por otro lado se puede definir una función o emplear 5 paquetes para lo mismo en dos líneas de código.



________________________________

Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada.

Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada.

See more languages: http://www.sergas.es/aviso-confidencialidad

	[[alternative HTML version deleted]]



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