Lenguaje de Programacion
Lenguaje de Programacion
Lenguaje de Programacion
Los lenguajes de programacin orientados a objetos tratan a los programas como conjuntos de objetos que se
ayudan entre ellos para realizar acciones. Entendiendo como objeto al entidades que contienen datos.
Permitiendo que los programas sean ms fciles de escribir, mantener y reutilizar.
Los lenguajes de programacin orientadas a objetos son lenguajes dinmicos en los que estos objetos se
pueden crear y modificar sobre la marcha.
Las principales lenguajes de programacin orientados a objetos son:
Ada, C++, C#, VB.NET, Clarion, Delphi, Eiffel, Java, Lexico (en castellano), Objective-C, Ocaml, Oz, PHP,
PowerBuilder, Python, Ruby y Smalltalk.
Hay un cierto desacuerdo sobre exactamente qu caractersticas de un mtodo de programacin o lenguaje le
definen como "orientado a objetos", pero hay un consenso general en que las caractersticas siguientes son las
ms importantes (para ms informacin, seguir los enlaces respectivos):
CARACTRISITCA
Abstraccin: Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar
trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cmo se
implementan estas caractersticas. Los procesos, las funciones o los mtodos pueden tambin ser abstrados y
cuando lo estn, una variedad de tcnicas son requeridas para ampliar una abstraccin.
Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma
entidad, al mismo nivel de abstraccin. Esto permite aumentar la cohesin de los componentes del sistema.
Algunos autores confunden este concepto con el principio de ocultacin, principalmente porque se suelen
emplear conjuntamente.
Principio de ocultacin: Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de objeto
expone una interfaz a otros objetos que especfica cmo pueden interactuar con los objetos de la clase. El
aislamiento protege a las propiedades de un objeto contra su modificacin por quien no tenga derecho a
acceder a ellas, solamente los propios mtodos internos del objeto pueden acceder a su estado. Esto asegura
que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando
efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso
directo a los datos internos del objeto de una manera controlada y limitando el grado de abstraccin. La
aplicacin entera se reduce a un agregado o rompecabezas de objetos.
Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo
nombre, al llamarlos por ese nombre se utilizar el comportamiento correspondiente al objeto que se est
usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de
diferentes tipos, y la invocacin de un comportamiento en una referencia producir el comportamiento
correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecucin", esta ltima
caracterstica se llama asignacin tarda o asignacin dinmica. Algunos lenguajes proporcionan medios ms
estticos (en "tiempo de compilacin") de polimorfismo, tales como las plantillas y la sobrecarga de
operadores de C++.
Herencia: las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de clasificacin.
Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La
herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y
creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su
comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los
objetos en clases y estas en rboles o enrejados que reflejan un comportamiento comn. Cuando un objeto
hereda de ms de una clase se dice que hay herencia mltiple.
VENTAJA
Los lenguajes orientados a objetos presenta las siguientes ventajas:
Fomenta la reutilizacin y extensin del cdigo.
Permite crear sistemas ms complejos.
Relacionar el sistema al mundo real.
Facilita la creacin de programas visuales.
Construccin de prototipos
Agiliza el desarrollo de software
Facilita el trabajo en equipo
Facilita el mantenimiento del software
Lo interesante de la POO es que proporciona conceptos y herramientas con las cuales se modela y representa
el mundo real tan fielmente como sea posible.
Flexibilidad: Si partimos del hecho que mediante la definicin de clases establecemos mdulos
independientes, a partir de los cuales podemos definir nuevas clases, entonces podemos pensar en estos
mdulos como bloques con los cuales podemos construir diferentes programas.
Reusabilidad: Una vez que hemos definido a la entidad persona para utilizarla en una aplicacin de negocios,
por mencionar un ejemplo, y deseamos construir a continuacin una aplicacin, digamos de deportes, en
donde requerimos definir a la misma entidad persona, no es deseable volver a escribir la definicin para la
entidad persona. Por medio de la reusabilidad podemos utilizar una clase definida previamente en las
aplicaciones que nos sea conveniente. Es claro que la flexibilidad con la que se defini la clase va a ser
fundamental para su reutilizacin.
Mantenibilidad: Las clases que conforman una aplicacin, vistas como mdulos independientes entre s, son
fciles de mantener sin afectar a los dems componentes de la aplicacin.
Extensibilidad: Gracias a la modularidad y a la herencia una aplicacin diseada bajo el paradigma de la
orientacin a objetos puede ser fcilmente extensible para cubrir necesidades de crecimiento de la aplicacin.
Vamos a ver las ventajas ms importantes de la programacin orientada a objetos:
Reusabilidad. Cuando hemos diseado adecuadamente las clases, se pueden usar en distintas partes
del programa y en numerosos proyectos.
Mantenibilidad. Debido a las sencillez para abstraer el problema, los programas orientados a objetos
son ms sencillos de leer y comprender, pues nos permiten ocultar detalles de implementacin dejando
visibles slo aquellos detalles ms relevantes.
Modificabilidad. La facilidad de aadir, suprimir o modificar nuevos objetos nos permite hacer
modificaciones de una forma muy sencilla.
Fiabilidad. Al dividir el problema en partes ms pequeas podemos probarlas de manera
independiente y aislar mucho ms fcilmente los posibles errores que puedan surgir.
DESVENTAJAS
Cambio en la forma de pensar de la programacin tradicional a la orientada a objetos.
La ejecucin de programas orientados a objetos es ms lenta.
La necesidad de utilizar bibliotecas de clases obliga a su aprendizaje y entrenamiento.
A pesar de que las ventajas de la programacin orientada a objetos superan a las limitaciones de la misma,
podemos encontrar algunas caractersticas no deseables en sta.
Limitaciones para el programador. No obstante que la tecnologa orientada a objetos no es nueva, un gran
porcentaje de programadores no estn familiarizados con los conceptos de dicha tecnologa. En otras palabras,
la lgica de la programacin estructurada sigue siendo predominante en la mayora de los desarrolladores de
software, despus de haber revisado de forma breve los principios de la programacin orientada a objetos,
nos es claro que en sta se requiere una lgica de pensamiento totalmente diferente a la lgica comnmente
utilizada para la programacin estructurada.
Tamao excesivo en las aplicaciones resultantes. La gran mayora de los equipos de cmputo cuentan con
capacidades tanto de almacenamiento como de memoria lo suficientemente buena como para ejecutar la
mayora de las aplicaciones que puedan desarrollarse con la tecnologa orientada a objetos, sin embargo
existen casos en los que lo anterior no se cumple. Una de las desventajas de la programacin orientada a
objetos es que cuando se heredan clases a partir de clases existentes se heredan de forma implcita todos los
miembros de dicha clase aun cuando no todos se necesiten, lo que produce aplicaciones muy grandes que no
siempre encajan en los sistemas con los que se disponga.
Velocidad de ejecucin: Esto tiene que ver, en cierto modo, con el punto anterior, una aplicacin
innecesariamente pesada en muchas ocasiones es ms lenta de ejecutar que una aplicacin conformada
nicamente por los mdulos necesarios.
CONCLUSIONES
Podemos decir que los lenguajes de programacin orientados a objetos tratan a los programas como
conjuntos de objetos que se ayudan entre ellos para realizar acciones, entendiendo como objeto a las
entidades que contienen datos y permitiendo que los programas sean ms fciles de escribir, mantener y
reutilizar.
Por otra parte la POO ( programacin orientada a objetos) representa un gran avance en la programacin,
entre sus ventajas ms importante se encuentran un notable aumento de la productividad del programador y
de la robustez de los programas, personalmente el lenguaje orientado a objetos que ms me agrada es Eiffel
(adems de sus caractersticas de orientacin a objetos, soporta la metodologa de diseo por contratos). Otro
lenguaje muy bien diseado (y de uso creciente) es Ruby. Tambin es recomendable, y muy simple para
comenzar, el lenguaje Python.
REFERENCIAS
http://www.monografias.com/trabajos38/tipos-lenguajes-programacion/tipos-lenguajes-programacion2.shtml
http://www.ciberaula.com/articulo/lista_programas_que_usan_poo/
file:///C:/Users/katizita/Downloads/19990206-Caracteristicas-de-los-lenguajes-de-programacion.pdf