● Java es un lenguaje multiplataforma con
el cual se pueden desarrollar programas que se ejecuten sin problemas en
sistemas operativos como Windows, Linux, Mac, Unix, etc.
● Java permite crear programas que se
ejecuten en varios dispositivos como computadoras, teléfonos móviles,
algunas consolas de juegos y algunos electrodomésticos además de en micro
controladores.
● Java es el único lenguaje soportado por el
100% de los teléfonos móviles y handhelds.
● Java implementa funciones se seguridad que son usadas por la mayorías
de las grandes empresas que realizan transacciones a través de Internet.
● Java lleva más de 20 años en el mercado
con lo cual hay cientos de miles de programadores con los cuales puede
comunicarse a través de Internet y consultar.
● Hay diferentes tipos de soporte técnico para
la misma herramienta, por lo que el análisis de la mejor opción se dificulta
● Para manejo a bajo nivel deben usarse métodos nativos, lo que limita la portabilidad.
● El diseño de interfaces gráficas con awt y swing no es simple. Existen herramientas como el JBuilder que permiten generar interfaces gráficas de manera sencilla, pero tienen un costo adicional.
● Puede ser que no haya JDBC para bases de datos poco comerciales.
● Algunas herramientas tienen un costo adicional
● Para manejo a bajo nivel deben usarse métodos nativos, lo que limita la portabilidad.
● El diseño de interfaces gráficas con awt y swing no es simple. Existen herramientas como el JBuilder que permiten generar interfaces gráficas de manera sencilla, pero tienen un costo adicional.
● Puede ser que no haya JDBC para bases de datos poco comerciales.
● Algunas herramientas tienen un costo adicional
C++
● El lenguaje C++ ha sido pensado para ser
altamente transportable.
● Un núcleo del lenguaje simple, con
funcionalidades añadidas importantes, como funciones matemáticas y de manejo de
archivos, proporcionadas por bibliotecas.
● Es un lenguaje muy flexible que permite
programar con múltiples estilos. Uno de los más empleados es el estructurado
"no llevado al extremo" (permitiendo ciertas licencias de ruptura).
● Un sistema de tipos que impide operaciones
sin sentido.
● Usa un lenguaje de preprocesado, el
preprocesador de C++, para tareas como definir macros e incluir múltiples
archivos de código fuente.
● Acceso a memoria de bajo nivel mediante el
uso de punteros.
● Interrupciones al procesador con
uniones.
● Un conjunto reducido de palabras clave.
● Por defecto, el paso de parámetros a
una función se realiza por valor. El paso por referencia se consigue pasando
explícitamente a las funciones las direcciones de memoria de dichos parámetros.
● Punteros a funciones y variables
estáticas, que permiten una forma rudimentaria de encapsulado y polimorfismo.
● Recolección de basura nativa, sin
embargo se encuentran a tal efecto bibliotecas como la "libgc"
desarrollada por Sun Microsystems, o el Recolector de basura de Boehm.
● Soporte para programación orientada a
objetos, aunque la implementación original de C++ fue un preprocesador que
traducía código fuente de C++ a C.
● Encapsulación.
● Funciones anidadas, aunque GCC tiene esta
característica como extensión.
● Polimorfismo en tiempo de código en
forma de sobrecarga, sobrecarga de operadores y sólo dispone de un soporte
rudimentario para la programación genérica.
● Soporte nativo para programación
multihilo y redes de computadores.
● Carece
de instrucciones de entrada/salida, de instrucciones para manejo de
cadenas de caracteres, con lo que este trabajo queda para la librería de
rutinas, con la consiguiente pérdida de transportabilidad.
.NET
● 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.
● 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.
● 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
● 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
No hay comentarios:
Publicar un comentario