Entorno de aplicaciones de dispositivos moviles.
Nombre
|
Características
|
Ventajas
|
Desventajas
|
Eclipse
![]() |
Dispone de un Editor de
texto con un analizador sintactico. 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, tests, etc., y refactorización.
Asimismo, a través de
"plugins" libremente disponibles es posible añadir control de
versiones con Subversion. E integración con Hibernate.
|
-El entorno de desarrollo integrado
(IDE) de Eclipse emplea módulos (en inglés plug-in) para proporcionar toda su
funcionalidad al frente de la Plataforma de Cliente rico, a diferencia de
otros
entornos monolíticos donde las
funcionalidades están todas incluidas, las necesite el usuario o
no.
-Este mecanismo de módulos es una
plataforma ligera para componentes de software. Adicionalmente a permitirle a
Eclipse extenderse usando otros lenguajes de programación como son C/C++ y
Python, permite
a Eclipse trabajar con lenguajes para
procesado de texto como LaTeX, aplicaciones en red como Telnet.
|
*Su principalmente inconveniente, común
a otros IDEs en mayor o menor medida, en el consumo de recursos del sistema.
*También que carece de mucho soporte para webapps (.war, jsp y servlets) tal y como lo hace netbeans. (los plugins por lo general no son ni tan potentes ni tan sencillos como el módulo que en Netbeans viene preinstalado). |
Xcode
![]() |
La tecnología para distribuir el
proceso de construcción a partir de código fuente entre varios ordenadores,
utilizando Bonjour.
|
Xcode es el entorno de desarrollo
integrado (IDE, en sus siglas en inglés) de Apple Inc. y se suministra
gratuitamente junto con Mac OS X. Xcode trabaja conjuntamente con Interface
Builder, una herencia de NeXT, una herramienta gráfica para la creación de
interfaces de usuario.
Xcode incluye la colección de compiladores del proyecto GNU (GCC), y puede compilar código C, C++, Objective-C, Objective-C++, Java y AppleScript mediante una amplia gama de modelos de programación, incluyendo, pero no limitado a Cocoa, Carbón y Java. Otras compañías han añadido soporte para GNU Pascal,1 Free Pascal,2 Ada y Perl.3 - Compilación de múltiples lenguajes. - Es de apple xD! - Tiene simulación virtual IOS - Insepección de código ("en tiempo real") - Es gratuito. |
-Está diseñado sólo para Mac.
- No hay mucha información sobre su uso. - Es un poco extenso en herramientas, es bueno para cuando se sabe usar* . |
Carbide.C++
|
Es
una herramienta para el desarrollo de software en
lenguaje C++ destinado a dispositivos que funcionan
bajo Symbian OS. Se usa tanto para desarrollar los teléfonos que
incorporan dicho OS como para las aplicaciones que ejecutan estos.<br
/>Está formada por una familia de IDEs desarrollada
por Nokia, basada en Eclipse, al que se han incorporado plug-ins
para el desarrollo de Symbian OS. Reemplazó a CodeWarrior como
primer entorno de desarrollo para Symbian OS.<br />Desde la versión
2.0, Carbide.c++ es gratuito y se ofrece en tres versiones (Developer,
Professional, y OEM).1<br />3<br />
|
-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%). |
-
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++. |
NetBeans.
|
Se encuentra un sistema de proyectos
basado en Ant, control de versiones y refactoring.
NetBeans IDE 6.5.2, la cual fue
publicada el 19 de noviembre de 2008, extiende las características existentes
del Java EE (incluyendo Soporte a Persistencia, EJB 3 y JAX-WS).
Adicionalmente, el NetBeans Enterprise Pack soporta el desarrollo de
Aplicaciones empresariales con Java EE 5, incluyendo herramientas de
desarrollo visuales de SOA, herramientas de esquemas XML, orientación a web
servicies (for BPEL), y modelado UML. El NetBeans C/C++ Pack soporta
proyectos de C/C++, mientras el PHPPack, soporta PHP
5.
|
-La plataforma NetBeans permite que las
aplicaciones sean desarrolladas a partir de un conjunto de componentes de
software llamadosmódulos.
-NetBeans es un IDE de código
abierto.
-Es multiplataforma: Debido a que
fue desarrollado en Java puede ser instalado y utilizado en cualquier Sistema
Operativo (Windows, Mac OS, Linux, etc).
-Es un entorno de desarrollo completo y profesional.
-Está escrito en Java. Aunque puede ser
utilizado para cualquier otro lenguaje de programación (C, C++, Ruby, PHP,
etc).
-Soporta el desarrollo de todos los
tipos de aplicación Java (J2SE, web, EJB, y aplicaciones).
-Puede expandirse su funcionalidad a
través de la instalación de plugins.
|
-El problema o e contra es que consume
muchos recursos.
-Comparación de otros compiladores es
que el proceso de compilación es un tanto mas engorroso
ya que hay que ubicar perfectamente
proyecto, paquete y al final la clase y la clase en donde se
encuentra el método main.
|
Java
|
-Simple-.Basado en el lenguaje C++ pero donde se
eliminan muchas de las características OOP que se utilizan esporádicamente y
que creaban frecuentes problemas a los programadores. Esta eliminación de
causas de error y problemas de mantenimiento facilita y reduce el coste del
desarrollo de software.
-Orientado al objeto-.Java
da buen soporte a las técnicas de desarrollo OOP y en resumen a la
reutilización de componentes de software.
-Distribuido-.Java
se ha diseñado para trabajar en ambiente de redes y contienen una gran
biblioteca de clases para la utilización del protocolo TCP/IP, incluyendo
HTTP y FTP. El código Java se puede manipular a través de recursos URL con la
misma facilidad que C y C++ utilizan recursos locales (archivos).
-Interpretado-.El
compilador Java traduce cada fichero fuente de clases a código de bytes (Bytecode),
que puede ser interpretado por todas las máquinas que den soporte a un
visualizador de que funcione con Java. Este Bytecode no es especifico de una
máquina determinada, por lo que no se compila y enlaza como en el ciclo
clásico, sino que se interpreta.
-Sólido-.El
código Java no se quiebra fácilmente ante errores de programación. Así el
relaje que existe en la declaración y manejo de tipos en C y C++ se torna en
restricciones en Java, donde no es posible la conversión forzada (cast) de
enteros en punteros y no ofrece soporte a los punteros que permitan saltarse
reglas de manejo de tipos. Así en Java no es posible escribir en áreas
arbitrarias de memoria ni realizar operaciones que corrompan el código. En
resumen se eliminan muchas de las posibilidades de "trucos" que
ofrecía el C y C++.
-Seguro-.Como
Java suele funcionar en ambiente de redes el tema de seguridad debe interesar
en sobremanera. Las mismas características antes descritas que evitan la
corrupción de código evitan su manipulación. Actualmente se esta trabajando
en encriptar el código.
-Arquitectura neutral-.El
compilador crea códigos de byte (Bytecode) que se envía al visualizador
solicitado y se interpreta en la máquina que posee un interprete de Java o
dispone de un visualizador que funciona con Java.
-Portable-.Al
ser de arquitectura neutral es altamente portable, pero esta característica
puede verse de otra manera: Los tipos estándares (int, float ...) están
igualmente implementados en todas las máquinas por lo que las operaciones
aritméticas funcionaran igual en todas las máquinas.
-Alto desempeño-.Al
ser código interpretado, la ejecución no es tan rápida como el código
compilado para una plataforma particular. El compilador Java suele ofrecer la
posibilidad de compilar Bytecode en código máquina de determinadas
plataformas, y según Sun este código resultar de una eficacia similar a
compilaciones de C y C++.
-Multihilos-.
Java puede aplicarse a la realización de aplicaciones en las que ocurra más
de una cosa a la vez. Java, apoyándose en un sistema de gestión de eventos
basado en el paradigma de condición y monitores C.A.R. permite apoyar la
conducta en tiempo real e interactiva en programas
-Dinámico-.Al
contrario que C++ que exige se compile de nuevo la aplicación al cambiar una
clase madre Java utiliza un sistema de interfaces que permite aligerar esta
dependencia. Como resultado, los programas Java pueden permitir nuevos
métodos y variables en un objeto de biblioteca sin afectar a los objetos
dependientes.
|
Primero:
No debes volver a escribir el código si quieres ejecutar el programa en otra
máquina. Un solo código funciona para todos los browsers compatibles con Java
o donde se tenga una Máquina Virtual de Java (Mac's, PC's, Sun's, etc).
Segundo: Java es un lenguaje de programación orientado a objetos, y tiene todos los beneficios que ofrece esta metodología de programación (más adelante doy una pequeña introducción a la filosofía de objetos). Tercero: Un browser compatible con Java deberá ejecutar cualquier programa hecho en Java, esto ahorra a los usuarios tener que estar insertando "plug-ins" y demás programas que a veces nos quitan tiempo y espacio en disco. Cuarto: Java es un lenguaje y por lo tanto puede hacer todas las cosas que puede hacer un lenguaje de programación: Cálculos matemáticos, procesadores de palabras, bases de datos, aplicaciones gráficas, animaciones, sonido, hojas de cálculo, etc. Quinto: Si lo que me interesa son las páginas de Web, ya no tienen que ser estáticas, se le pueden poner toda clase de elementos multimedia y permiten un alto nivel de interactividad, sin tener que gastar en paquetes carísimos de multimedia. |
-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.o 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. |