Entrada destacada

Ventajas y desventajas de .net , java y c++

.net VENTAJAS: * Posee una curva de aprendizaje muy rápida. * Integra el diseño e implementación de formularios de Windows. ...

jueves, 19 de febrero de 2015

Ventajas y desventajas de .net , java y c++


.net

VENTAJAS:
* Posee una curva de aprendizaje muy rápida.
* Integra el diseño e implementación de formularios de Windows.
* Permite usar con facilidad la plataforma de los sistemas Windows, dado que tiene acceso prácticamente total a la API de Windows, incluidas librerías actuales.
* Es uno de los lenguajes de uso más extendido, por lo que resulta fácil encontrar información, documentación y fuentes para los proyectos.
* Fácilmente extensible mediante librerías DLL y componentes ActiveX de otros lenguajes.
* Posibilita añadir soporte para ejecución de scripts, VBScript o JScript, en las aplicaciones mediante Microsoft Script Control.
* Tiene acceso a la API multimedia de DirectX (versiones 7 y 8). También está disponible, de forma no oficial, un componente para trabajar con OpenGL 1.1: [7]
* Existe una versión, VBA, integrada en las aplicaciones de Microsoft Office, tanto Windows como Mac, que permite programar macros para extender y automatizar funcionalidades en documentos, hojas de cálculo, bases de datos (access).
* Si bien permite desarrollar grandes y complejas aplicaciones, también provee un entorno adecuado para realizar pequeños prototipos rápidos.


DESVENTAJAS:
Las críticas hechas en las ediciones de Visual Basic anteriores a VB.NET son variadas,[8] se citan entre ellas:

* Problema de versionado asociado con varias librerías runtime DLL´s, conocido como DLL Hell
* Pobre soporte para programación orientada a objetos[9]
* Incapacidad para crear aplicaciones multihilo, sin tener que recurrir a llamadas de la API de Windows.
* Dependencia de complejas y frágiles entradas de registro COM 


c++

Ventajas
- Lenguaje de programación orientado a objetos.
- Lenguaje muy didáctico, gracias a este lenguaje puedes aprender muchos otros lenguajes con gran facilidad, como C#, Java, Visual Basic, Javascript, PHP, entre otros.
- Es muy potente en lo que se refiere a creación de sistemas complejos, un lenguaje muy robusto.
- Permite elaborar aplicaciones sencillas como un "Hello World!" hasta sistemas operativos y mucho más, todo eso dependiendo del manejo del lenguaje.
- Actualmente, puede compilar y ejecutar código de C, ya viene con librerías para realizar esta labor.
- Es un lenguaje muy empleado, existen muchos tutoriales en línea, libros, códigos fuentes abiertos... hay material de sobra y basta para aprender lo necesario y mucho más con este lenguaje.
- Existen muchos algoritmos cuyo pseudocódigo se encuentra ya desarrollado en C++, de manera que puedes tomarlo y amoldarlo a tu solución (porque el que veas un fragmento de código no asegura que sea correcto al 100%).

Desventajas:
- Uso de DLLs (librerías dinámicas) muy complejo. Java y .Net han evolucionado estos conceptos manipulando las DLLs mediante los frameworks que proveen. En cambio, en C++ el desarrollador debe encargarse de cargar y liberar de memoria estas librerías, y correr los riesgos por el manejo de esta memoria.
- Elaborar un sistema en C++ es como construir un rascacielos: tiene buen soporte y es robusto, pero si existen errores en los pisos inferiores toda la parte superior se viene abajo terriblemente.
- Manejo de punteros y memoria respecto a ello. Claro, esta también es una gran ventaja porque permite un mejor control de la memoria y una buena administración de recursos de computadora, pero la inexperiencia de los desarrolladores o la pérdida de costumbre con este tipo de variables (sobre todo cuando son dobles o triples punteros, inclusive de mayor orden) los lleva al desastre.
- No es recomendable para desarrollo de páginas Web.
- Existen muchos entornos de programación para C++. No existen estándares para ello. De manera que puedes encontrar C++ para Unix/Linux, C++ para Windows, C++ para MacOS, y asi indistintamente. Además, en cada SO encuentras diferentes IDEs de desarrollo, y también encuentras IDEs para desarrollo de aplicaciones gráficas como Anjuta, Qt para Unix/Linux, Borland C++ Builder y Visual Studio C++ para Windows...  


Java

Ventajas
*Manejo automático de la memoria. (para los que vienen de C/C++) " Si, no hay punteros! WOW!". El manejo de la memoria se hace automáticamente y utilizando el garbage collector. Esto ahorra SIGNIFICANTE tiempo de programación.
*Lenguaje Multi-plataforma: El código que escrito en java es leído por un interprete, por lo que su programa andará en cualquier plataforma.
*Programación Orientada a Objetos: Paradigma muy utilizado hoy en dia que facilita y organiza mucho la programación.
*Puede correr en el explorador y en dispositivos móviles.
*Sintaxis similar a C/C++, pero mas simple.
*Fácil de aprender.
*GRATIS

Desventajas
*Menos Eficiente, comparado a C/C++.
*Requiere un interprete.
*Algunas implementaciones y librerías pueden tener código rebuscado.
*Una mala implementación de un programa en java, puede resultar en algo muy lento.
*Algunas herramientas tienen un costo adicional.

 

viernes, 6 de febrero de 2015

Actividad 1 de grupo 451 Galindo G. German A

Galindo Guzmán German Ascary                                                              Grupo:451

¿Qué entiendes por programación orientada a objetos?
Es la programación que usa los objetos para poder diseñar aplicaciones o problemas informáticos

Dentro de P.O.O. define:
Herencia: el mecanismo más utilizado para alcanzar algunos de los objetivos más preciados en el desarrollo de software como lo son la reutilización y la extensibilidad. A través de ella los diseñadores pueden crear nuevas clases partiendo de una clase o de una jerarquía de clases preexistente (ya comprobadas y verificadas) evitando con ello el rediseño, la modificación y verificación de la parte ya implementada. La herencia facilita la creación de objetos a partir de otros ya existentes e implica que una subclase obtiene todo el comportamiento (métodos) y eventualmente los atributos (variables) de su superclase.
Polimorfismos: se refiere a la propiedad por la que es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos. El único requisito que deben cumplir los objetos que se utilizan de manera polimórfica es saber responder al mensaje que se les envía.
Clases: una clase es una plantilla para la creación de objetos de datos según un modelo predefinido. Las clases se utilizan para representar entidades o conceptos, como los sustantivos en el lenguaje.
Sub clase: El concepto de herencia conduce a una estructura jerárquica de clases o estructura de árbol, lo cual significa que en la OOP todas las relaciones entre clases deben ajustarse a dicha estructura. En esta estructura jerárquica, cada clase tiene sólo una clase padre. La clase padre de cualquier clase es conocida como su superclase. La clase hija de una superclase es llamada una subclase. 
Una superclase: puede tener cualquier número de subclases. 
Una subclase: puede tener sólo una superclase
IDE (Integrated Drive Electronics): sistema informático usado principalmente en discos duros y unidades ópticas (por ejemplo, CD, DVD); Un entorno de desarrollo integrado, llamado también IDE (sigla en inglés de integrated development environment), es un programa informático compuesto por un conjunto de herramientas de programación. Puede dedicarse en exclusiva a un solo lenguaje de programación o bien puede utilizarse para varios.
Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación; es decir, que consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes.
SQl (Structured Query Language): entendida en español como Lenguaje de Consulta Estructurado), la cual identifica a un tipo de lenguaje vinculado con la gestión de bases de datos de carácter relacional que permite la especificación de distintas clases de operaciones entre éstas.

MYSQL: (My Structured Query Language o Lenguaje de Consulta Estructurado) :  es un sistema de gestión de bases de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones

SQL Server: Microsoft SQL Server es un sistema de gestión de base de datos relacional desarrollado por Microsoft. Como base de datos, se trata de un producto de software cuya principal función es la de almacenar y recuperar datos según lo solicitado por las aplicaciones de software demás, ya sea en el Sami Aquellos oro Aquellos ordenador encendido sobre las revisiones de otro ordenador a través de una red (incluido Internet). Hay por lo menos una docena de ediciones diferentes de vocación Microsoft SQL Server a diferentes audiencias y para cargas de trabajo que van desde pequeñas aplicaciones de un solo ordenador para aplicaciones de Internet de cara al frente con muchos usuarios concurrentes.

Eclipse: es un IDE muy completo y adaptable, ya que permite configurar el ambiente de desarrollo con base a nuestras necesidades, podemos vincular a esta herramienta gran cantidad de plugins como módulos independientes que brindan un enfoque mucho mas robusto para desarrollos JEE, sin dejar a un lado las posibilidades para aplicaciones de escritorio.
Dispone de un editor de texto con resaltador de sintaxis.
La compilación es en tiempo real
Tiene pruebas unitarias con (JUnit).
Control de versiones con (CVS).
Integración con (Ant),
Asistentes (wizards) para creación de proyectos
Clases, test, etc...

Netbeans: las posiblidades de este IDE son tantas como Eclipse, además según muchas opiniones brinda un entorno mas agradable e intuitivo, adicionalmente a diferencia de Eclipse donde debemos instalar plugins para varias cosas, netbeans ya viene con plugins y módulos integrados, evitandonos tener que configurar nuestro ambiente, dándonos todo el entorno listo para trabajar.
soporte JavaScript
mejora en el desempeño
soporte en estructuras sprint
Nuevo soporte MySQL en la exploración de bases de datos
Soporte en Java Beans
Generador JSF CRUD
Soporte Ruby/JRuby

Jcreator
Enorme cantidad de plantillas para trabajos rápidos.
Administrador de proyectos guiados.