Tecnologías
Java es uno de los lenguajes de programación más extendidos, y una de las razones fundamentales para ello es su versatilidad, ya que se puede crear aplicaciones de escritorio, aplicaciones web y aplicaciones móviles.
Java EE
Java EE, o J2EE como se le conocía anteriormente, es una evolución del lenguaje Java para cubrir la necesidad de desarrollar aplicaciones para el sector empresarial, mediante la implementación de técnicas y herramientas basadas en unas especificaciones (normas y directrices).
Java EE facilita el desarrollo de sistemas distribuidos (módulos independientes), que hace más escalables los sistemas y facilita su mantenimiento.
JSP
Se puede crear una página web con JSP si se incrusta código JAVA mediante unas etiquetas, y posteriormente el servidor de aplicaciones "traduce" este código JAVA en HTML.
Servlets
Los Servlets son aplicaciones en Java que realizan acciones, y gracias al servidor de aplicaciones, se genera el código HTML dinámico que se muestra al cliente.
Hibernate
Hibernate es una herramienta que agiliza la relación entre la aplicación y la base de datos. Esto es necesario ya que la programación en Java está orientada a objetos, mientras que las bases de datos más comunes siguen el modelo relacional. Esto además ayuda al programador a que se centre en la lógica de negocio y no en el acceso a datos.
Frameworks de desarrollo
Para desarrollar una aplicación Java es casi imprescindible apoyarse en algún Framework. Algunos de los más conocidos e importantes son:
Struts
Apache Struts es framework MVC para crear aplicaciones web elegantes y modernas en Java. Favorece las convenciones frente a las configuraciones. Mediante diferentes plugins se le puede añadir complementos para soportar REST, AJAX y JSON, entre otros.
JSF
JavaServer Faces (JSF) es un framework para aplicaciones Java basadas en web. Se busca simplificar el desarrollo de interfaces de usuarios. Sin necesidad de programar código en Javascript, el servidor inserta en las páginas web resultantes componentes de alto nivel.
Spring
Spring es probablemente el framework más popular en el ámbito empresarial para desarrollar en Java. Se busca crear código de alto rendimiento, liviano y reutilizable, reduciendo de este modo el tiempo de desarrollo de aplicaciones. Se le considera una alternativa al modelo EJB.
Grails
Grails es un framework para desarrollar aplicaciones web. El código se crea en Groovy, un lenguaje dinámico con la misma sintaxis que Java, pero que añade muchas funcionalidades nuevas, permitiendo programar con menos código.
GWT
GWT es un framework de desarrollo creado por Google mediante el cual, el código creado en Java mediante cualquier IDE, se compila y se genera código HTML y Javascript. Se busca mejorar la experiencia de navegación de los usuarios a través de herramientas AJAX.
JBoss Seam
Seam es una plataforma de desarrollo de aplicaciones RIA basadas en Java EE creada por JBoss. Seam posee varias herramientas muy interesantes para el desarrollo WYSIWYG como las JBoss Tools, pero su núcleo principal está formado por las especificaciones EJB y JSF.
IDEs de desarrollo
Un IDE es un entorno de desarrollo que cuenta con las herramientas necesarias para que se creen las aplicaciones, y ayuda a ahorrar tiempo y esfuerzo. Algunos IDEs más usados para Java son:
Eclipse
Eclipse es probablemente el IDE más popular. Cuenta con una gran comunidad y una infinidad de plugins. Es multiplataforma y permite programar en los lenguajes más comunes, todo tipo de aplicaciones para web, escritorio o móviles.
Netbeans
Netbeans es el IDE oficial de Java por lo que es muy popular entre esta comunidad, aunque en realidad también se puede desarrollar en otros lenguajes mediante el uso de extensiones.
BlueJ
BlueJ es un IDE que permite desarrollar programas en Java de una manera rápida y fácil. Dispone de una importante documentación, y puesto que está ideado para principantes, está muy extendido en el ámbito educativo.
jGRASP
jGRASP es un IDE muy ligero para desarrollar aplicaciones basadas en Java así como en otros lenguajes de programación. Dispone de un depurador integrado y varias herramientas interesantes para los desarrolladores Java.
Servidores de aplicaciones
Un servidor de aplicaciones es una plataforma que proporciona servicios donde se ejecutan las aplicaciones web. Estos servicios se definen en las especificaciones de Java Enterprise.
Tomcat
Tomcat es un servidor HTTP y un contenedor de servlets Java. No es un servidor de aplicaciones propiamente dicho pero soporta las principales tecnologías Java EE. Tomcat consume pocos recursos y por tanto es apropiado para webs sencillas.
Glassfish
Glassfish es un servidor de aplicaciones libre que actualmente pertenece a Oracle. Implementa por completo las tecnologías definidas en la plataforma Java EE y permite ejecutar aplicaciones que siguen esta especificación.
Wildfly
WildFly Application Server es el sucesor de JBoss AS y pertenece a Red Hat. Se trata por tanto de un servidor de aplicaciones que implementa por completo la especificación Java EE y está certificado.
Bases de datos
Las bases de datos son un elemento fundamental en los sistemas de información, y por supuesto también en la mayoría de aplicaciones web. Trabajamos con todas las bases de datos más conocidas y en cualquiera de las versiones que tengan. Algunas de ellas son:
MySQL
MySQL es un motor de base de datos relacional. Se utiliza ampliamente para el desarrollo web ya que presenta un buen rendimiento cuando el número de registros no es muy elevado, y consume pocos recursos en el servidor. Para el desarrollo web es fundamental tener acceso a una base de datos donde almacenar con persistencia la información, y para recuperarla.
PostgreSQL
PostgreSQL o simplemente postgres, es un sistema de gestión de bases de datos relacional orientado a objetos. Ofrece una gran cantidad de opciones avanzadas y aporta mucha flexibilidad. Está enfocado en la integridad y fiabilidad de los datos, razón por la que es tan preciado. PostreSQL destaca en proyectos grandes y complejos con operaciones de alto volumen.
MongoDB
MongoDB probablemente es la base de datos NoSQL más popular. Se trata de una base de datos distribuida orientada a documentos. En lugar de guardar la información en tablas y registros como hacen las bases de datos relacionales, los guarda en documentos como estructuras JSON dinámicas, haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida.
Sistemas Operativos
Linux
Sistema Operativo libre y gratuito, de código abierto. Linux es con diferencia el Sistema Operativo más usado en servidores debido a que es extremadamente seguro y estable. Existen muchas distribuciones populares. Nosotros trabajamos habitualmente con Debian y Centos.
Windows Server
Se trata de un Sistema Operativo de pago que a día de hoy es bastante fiable aunque su rendimiento siempre es inferior a Linux. No es habitual usarlo, pero en ocasiones algunos proyectos requieren correr en este servidor.