viernes, mayo 21, 2010

Comparaciones entre algunos Lenguajes Orientados a Objetos


Comparaciones con respecto a:

Tipado estático: Mejorar la legibilidad y permite al compilador detectar errores, mucho antes de que puedan convertirse en un problema de tiempo de ejecución; esto ahorra tiempo de desarrollo, ahorra dinero y rendimiento al momento de producir código más confiable.

Tipado dinámico: Existe cuando una misma variable puede tomar valores de distinto tipo en distintos momentos.
 
  • C ++: Utiliza tipado estático, sin embargo soporta el estilo de C "casts"
  • Java: Utiliza tipado estático en la mayoria de los casos, aunque en algunas estructuras requiere de tipado dinámico.
  • Eiffel: Utiliza tipado estático en todo momento.
  • SmallTalk: Utiliza tipado dinámico.

Compilación de tecnología: La compilación es necesaria para la eficiencia en tiempo de ejecución, la interpretación de eficiencia y rendimiento.
  • C ++: Compilado generalmente sin problemas.
  • Java: No se puede decir que Java pueda compilar el código con un máximo de eficiencia, y aprovechar los beneficios en cuanto a velocidad de código máquina nativo. Aunque los compiladores cada vez son más avanzados, no todas las librerías de Java tienen asociado un código máquina equivalente que utilizar.
  • Eiffel: Combanición de interpretación y compilación en el mismo entorno.
  • SmallTalk: Históricamente intérprete basado, en la mezcla de interpretación y compilación.

 Eficiencia de código generado:
  • C++: Genera ejecutables rápido.
  • Java: Ampliamente informado de problemas de rendimiento.
  • Eiffel: Genera ejecutables rápido.
  • SmallTalk: Los ejecutables requieren una imagen de SmallTalk.

Manejo de excepciones: Es una estructua de control diseñada para manejar condiciones anormales que pueden ser tratadas por el mismo programa que se desarrolla.

  •  C++: Posee manejo de excepciones
  • Java: Posee manejo de excepciones
  • Eiffel: Posee manejo de excepciones
  • SmallTalk: Posee manejo de excepciones.
     

miércoles, marzo 24, 2010

ALGUNAS DIFERENCIAS ENTRE PROGRAMACION ORIENTADA A OBJETOS Y PROGRAMACION ESTRUCTURADA

Las principales diferencias entre la programación estructurada y la programación orientada a objetos son:
  • •La programación orientada a objetos es más moderna, es una evolución de la programación estructurada que plasma en el diseño de una familia de lenguajes conceptos que existían previamente con algunos nuevos.
  • • La programación orientada a objetos se basa en lenguajes que soportan sintáctica y semánticamente la unión entre los tipos abstractos de datos y sus operaciones.
  • •La programación orientada a objetos incorpora en su entorno de ejecución mecanismos tales como el polimorfismo y el envío de mensajes entre objetos.
  • La programación estructurada se basa en una metodología de desarrollo de programas llamda refinamiento sucesivos: Se plantea una operacion como un todo y se divide en segmentos más sencillos o de menor complejidad.
  • La representacion gráfica de la programación estructurada se realiza a través de diagramas de flujo o flow chart, el cual representa el programa con sus entradas, procesos y salidas.
  • La programación estructurada propone segregar los procesos en estructuras lo más simple posibles, las cuales se conocen como secuencia, selección e interacción.

martes, marzo 23, 2010

COMPARACION ENTRE POO Y ESTRUCTURADA

La programación orientada a objetos se basa en la idea de un objeto, que es una combinacion de variables locales y procedimientos llamados metodos que juntos conforman una entidad de programación. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo, y encapsulamiento.
Un objeto no es un dato simple, sino que contiene en su interior cierto número de componentes bien estructurados. Cada objeto no es un ente aislado, sino que forma parte de una organización jerárquica o de otro tipo.

Los objetos son entidades que combinan estado , comportamiento e identidad:
  • El estado está compuesto de datos, serán uno o varios atributos a los que se habrán asignado unos valores concretos (datos).
  • El comportamiento está definido por los procedimientos o métodos con que puede operar dicho objeto, es decir, qué operaciones se pueden realizar con él.
  • La identidad es una propiedad de un objeto que lo diferencia del resto, dicho con otras palabras, es su identificador.
La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar.

Mientras que la Programación estructurada es una forma de escribir programación de computadora de forma clara , para ello utiliza únicamente tres estructuras: secuencial, selectiva e iterativa; siendo innecesario y no permitiéndose el uso de la instrucción o instrucciones de transferencia incondicional ( GOTO ).

Programación Estructurada es una técnica en la cual la estructura de un programa, esto es, la interpelación de sus partes realiza tan claramente como es posible mediante el uso de tres estructuras lógicas de control:
  • Secuencia: Sucesión simple de dos o mas operaciones.
  • Selección: bifurcación condicional de una o mas operaciones.
  • Interacción: Repetición de una operación mientras se cumple una condición.

domingo, noviembre 22, 2009

COMUNIDAD DE PROGRAMACION TIOBE

Esta comunidad brinda las indicaciones de los lenguajes de programación mas populares. Este índice es actualizado cada mes. Los índices de audiencia están basados en los números de ingenieros capacitados alrededor del mundo. Los motores de búsqueda popular Google, MSN, Yahoo!, wikipedia y Youtube son usados para calcular la audiencia.

Estos índices pueden ser usados para comprobar si tu habilidad de programación está sin movimiento a la fecha o para tomar una decisión estratégica acerca de que lenguaje de programación debería ser adoptado cuando empiece a crear una nuevo sistema de software.

Si quieres ir a ver que lenguaje esta de primero segun TIOBE entra AQUI.

También los invito a que participen de la encuesta que se encuentra al final de este blog y que dejen su comentario o duda que tengan al respecto del tema.

Muchas Gracias.

domingo, noviembre 08, 2009

POSTER


Este fue el póster del proyecto que mostramos en el III seminario de investigación formativa en ingeniería de sistemas realizado en la Universidad Santiago de Cali - Colombia.

viernes, octubre 30, 2009

VENTAJAS DEL DISEÑO ORIENTADO A OBJETOS


• Una mejor organización de la complejidad inherente: Gracias al uso de la herencia, pueden definirse de una forma más eficiente los conceptos afines, los recursos y otros objetos. Por medio del uso de la contención, pueden construirse estructuras de datos arbitrarias, que reflejan la tarea básica disponible.
Los lenguajes de programación orientados a objetos y las estructuras de datos permiten a los diseñadores describir funciones y recursos del sistema operativo de forma que reflejen la visión que tiene el diseñador de esas funciones y recursos.
• Reducción del esfuerzo de desarrollo mediante la reutilización: La reutilización de clases de objetos que ya están escritas, probadas y mantenidas por otros reduce el tiempo de desarrollo, prueba y mantenimiento.
• Sistemas más ampliables y mantenibles: El mantenimiento, incluidas las reparaciones y mejoras del producto, han consumido tradicionalmente cerca del 65% del coste de cualquier ciclo de vida de un producto. El diseño orientado a objetos reduce este porcentaje. El uso de ayudas de software basadas en objetos limita el número potencial de interacciones de las diferentes partes del software, garantizando que los cambios en la implementación de una clase pueden hacerse con poco impacto en el resto del sistema. Estas ventajas están encaminando el diseño de los sistemas operativos en la dirección de los sistemas orientados a objetos. Los objetos permiten a los programadores configurar a medida un sistema operativo para cumplir nuevos requisitos, sin alterar la integridad del sistema. Los objetos también permiten allanar el camino al proceso distribuido. Puesto que los objetos se comunican con mensajes, no importa si dos objetos que se comuniquen están en el mismo sistema o en sistemas diferentes de una red. Los datos, funciones e hilos pueden asignarse dinámicamente a estaciones de trabajo y servidores según sea necesario. Por consiguiente, la mayoría de los nuevos sistemas operativos para PC y estaciones de trabajo están adaptando un método de diseño orientado a objetos.

miércoles, octubre 28, 2009

LA IMPORTANCIA DE LA ENSEÑANZA DE VARIOS LENGUAJES DE PROGRAMACION PARA EL CAMPO LABORAL

En la actualidad con los diferentes lenguajes de programación y con la distinta forma que tiene cada persona para pensar y aprender es necesario conocer cada detalle o diferencia que existen entre estos lenguajes, sus ventajas y desventajas, la sintaxis de cada uno y la formar de realizar software.

Por lo cual la enseñanza de los lenguajes de programación es muy importante sobre todo si tenemos conocimientos de varios lenguajes.

Ya que dicha enseñanza se centra en los lenguajes Java o .Net, (tomando como ejemplo la USC) por lo cual el estudiante solo posee conocimiento máximo de un lenguaje de programación.

Por eso es importante indagar a nivel nacional que lenguaje esta siendo usado actualmente, con esta información se preocuparía por fortalecer los conocimientos en este lenguaje, así el estudiante esta preparado para enfrentar el entorno en el cual va a trabajar.

Por lo anterior si el estudiante no se encuentra preparado para asumir un cargo en el cual tenga que manejar otro lenguaje del que aprendió, se le dificultara poder obtener un cargo en cualquier empresa ya que su perfil como programador no cumple con la expectativa que buscan actualmente las empresas desarrolladoras de software o grupos para los cuales se valla a desempeñar.


O si quiere lograr el empleo le tocaría especializarse en el lenguaje y esto le costaría mas tiempo, además mucho dinero y con esto otra persona mas preparada o con mas experiencia le quitaría el cargo, mientras que si aprende los conocimientos básicos y lograr un buen manejo de un entorno especifico de los lenguajes orientados a objetos en la Universidad (en este caso la USC) no tendrá problemas a la hora de obtener el cargo, además si posee los conocimientos básicos, clasificación, diferencias, propiedades y funcionamiento de los lenguajes de programación los cuales son elemental para cualquier estudiante o profesional dedicado a la programación, pues de esa manera se logra tener una perspectiva global y mucho más amplia que tendrá mucho peso al estar bien documentados y al conocer qué son, cómo se clasifican y de qué manera trabajan los lenguajes de programación.

Por tan motivo este proyecto pretende tener las suficientes razones para poder implementar un segundo lenguaje de programación o mejor una materia electiva en la cual preparen al estudiante para que sus conocimientos en lenguajes de programación sean lo bastante fuertes para que no tenga ningún problema en desempeñar un cargo.

Este estudio también permite desarrollar un sentido crítico de los lenguajes de programación, de forma que el programador no seleccione ni emita un juicio respecto a determinado lenguaje basado simplemente en su limitado conocimiento ni basado en la popularidad de la que goza cierto lenguaje, sino que el programador esté capacitado para dar razones contundentes y certeras del por qué un lenguaje es mejor que otro para determinada tarea, qué ventajas tiene uno respecto del otro, y que así también el programador sea capaz de seleccionar el lenguaje que más le convenga para la resolución de un problema determinado.