Re: Programacion en capas ERa: Recomendación LibroProgramación

Horst von Brand vonbrand en inf.utfsm.cl
Lun Mar 8 17:51:38 CLST 2004


=?iso-8859-1?B?THVpcyBFZHVhcmRvIFZpdmVybyBQZfFh ?= 
 	<luisviveropenna en linuxmail.org> dijo:
Horst von Brand <vonbrand en inf.utfsm.cl> dijo:

> [...]
> 
> >> Digo, porque como se incrusta codigo de Perl o PHP en un modulo que este
> >> de alguna forma 'escondido' o que sea seguro?
> 
> >Escondido de que? Seguro contra que? Como implementas el "escondido" y el
> >"seguro"? 

> Pasando la password y el string de conexion a un modulo/objeto sin que se
> puede ver desde el browser.

Si esta en el codigo PHP o Perl en el servidor, jamas lo veras en el
browser... salvo que la seguridad de los archivos del caso sea como las
carabinas.

> > En el caso de Java, como tiene objetos y clases, esa tarea debe estar
> > implementada de forma mas natural, me imagino...despues de todo Perl no
> > es un lenguaje orientado a objetos, aunque si es modular...mmm...no veo
> > la luz...
> 
> [...]
> 
> >Perl _es_ orientado a objetos. El modelo de objetos que tiene es
> >...hummmm... un tanto /curioso/, pero funcional. Pero que el lenguaje sea
> >"orientado a objetos" no da garantias de ninguna clase: Es simplemente
> >(mejor) soporte para una manera particular de organizar un programa.

> Pese a que www.perl.org dice que:
> 
> 'Perl supports both procedural and object-oriented programming.'

Exacto. Y puedes hacer "procedural programming" en Java o Smalltalk si
quieres. O programacion orientada a objetos en C (o incluso en assembler,
busca HAL por alli... es _muy_ instructivo).

> he leido varias veces que Perl no es un lenguaje orientado a objetos
> propiamente tal, pero que cumple una funcion muy similar a traves de los
> modulos. Alguien ha escuchado de esto?

El problema es que que exactamente se considera "orientado a objetos" es
bastante vago... lo mas cercano a un consenso es que hayan objetos (==
paquetes de datos + codigo que los manipulan) y herencia (si, hay sistemas
orientados a objetos que _no_ tienen clases, como Self). Le tenimos
sistemas con herencia multiple (C++) y simple (Smalltalk), y cosas mixtas
muy raras (Java, con sus "interfases", que son una manera truculenta de
tener herencia multiple sin herencia multiple); le traen sistemas con un
objeto/clase raiz (Smalltalk, Objective C, Java) y los hay con multiples
raices (C++), los hay con datos objetos unicamente (Smalltalk) y otros que
manejan objetos y datos tradicionales (C++, Java). Los hay basados en
lenguajes procedurales (casi todos ;-) y funcionales (CLOOS en Common
LISP). Hay lenguajes que sin ser propiamente OO hacen que programacion OO
sea casi natural (Scheme). Y Smalltalk muestra que OO puro es bastante
incomodo (no hay como tener precedencias de operadores...).

> >La mayor parte de los "programas orientados a objetos" que he visto son C (o
> >algo muy cercano) compilado con un compilador C++

> Perooooo...que 'C' no es orientado a objetos??? Y si lo es C++???

C es el ejemplo clasico de lenguaje procedural, C++ es una extension OO
(bastante mal lograda) a C.

Recuerdo un delicioso paper que se llamaba algo de "My Cat is Object
Oriented", donde uno de los proceres del movimiento OO se quejaba de sus
experiencias para encontrar una nueva casa para su gato. Nada resulto,
hasta que anuncio que regalaba un gato OO... en resumen, OO ha perdido su
significado tecnico para transformarse en una caracteristica mas que "hay
que tener a toda costa, como sea".
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513


Más información sobre la lista de distribución Linux