Popularidad de JSP

En estos días he estado realizando algunas pruebas con librerías de etiquetas en JSP. Siendo que hay varios frameworks para aplicaciones web y algunos de ellos no utilizan JSP, me han surgido algunas preguntas sobre su utilidad y su popularidad.

¿Ustedes creen que JSP sea una tecnología aún viable? ¿Cuáles problemas han tenido al utilizarlo? A lo mejor se le podrían agregar (o quitar) algunas cosas para hacerlo mejor.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

JSP

Creo que JSP puede seguir funcionando como infraestructura, como base para otros frameworks que le ponen cosas encima al JSP para que ya pueda servir de algo.

Imagen de luxspes

JSP: Mucho ayuda el que no estorba

Como en muchos casos... depende... si usas los JSP scriptlets, entraras en un mundo de pesadilla... si por otro lado, haces mucho uso de etiquetas custom para JSP, necesitaras aprender a hacerlas y la curva de aprendizaje actuara en tu contra (aunque comparado con el esfuerzo requerido para hacer etiquetas JSF, las etiquetas JSP son extremadamente faciles). Otro defecto es que, aun cuando JSP 2.0 ya te permite crear etiquetas sin programacion en java, el unico modo de reutilizarlas entre proyectos es copiar y pegar tu codigo fuente (o escribir tus JSP en java en vez de en etiquetas).

Por otro lado, JSP tienen la ventaja de ser muy comunmente usado y conocido... y ser mucho mas simple de aprender que JSF... quiza la mas grande ventaja de JSP... es que hace pocas cosas, lo que hace facil darte cuenta que le camino las UI complejas en el cliente no es con componentes del lado del servidor como los de JSF, sino produciendo HTML y volviendolo mas interactivo con cosas con jQuery....

Como quien dice, el lema de JSP debiera de ser "Mucho ayuda el que no estorba..." (aunque menos que alguien que realmente ayuda)

Creo que si es viable e

Creo que si es viable e interesante, pero es necesario lidiar con varias cosas a bajo nivel. Sería cómo despreciar algo por ser "viejo", si bien podemos decir que JSF es la evolución de JSP, también podemos decir que para cosas no tan "complejas" el uso de JSP nos queda sobrado para resolver problemas; sin embargo se supone que otras tecnologías más nuevas te ayudan a no lidiar con cosas cómo los servlets y dentro de ellos con la concurrencia (qué cómo ya se ha hablado no basta con poner  ). Sin embargo es una buena manera para aprender/entender cosas bases de aplicaciones web.

Claro que probablemente cómo he mencionado no será más cómodo que utilizar Wicket o Tapestry o Play! o lo que te de la gana; pero de qué es viable y hay gente que lo hace, si.

Imagen de bferro

JSP es un estándar para otros mucchos "estándares"

JSP es un estándar para otros muchos "estándares". Pongo la palabra entre comillas para referirme a tecnologías, que aunque no sean estándares en el propio sentido del término, se han convertido en las tecnologías más usadas para aplicaciones Web. Es por ejemplo el caso de Spring MVC, que aunque lo comercial es afirmar que es un marco de trabajo que soporta varias tecnologías de vistas, lo cierto es que la mayoría de las aplicaciones hechas con Spring hacen uso de JSP y JSTL como la tecnología de vista "más natural" y de donde partieron cuando ese marco de trabajo nació y mucho de su diseño arrastra esa decisión.
Si bien es cierto que Java EE 6, hace más énfasis en JSF como la tecnología de presentación definida, mantiene sin embargo a JSP como una de las tecnologías principales, lo que hace pensar que seguirá actualizándose.
Una ventaja, como dice @luxspes, es que el objetivo de JSP es muy concreto. No pretende abarcar mucho, pero a lo que se dedica lo sabe hacer muy bien.
Pero como otras cosas que aquí se han discutido, que aparezca una nueva versión y siga floreciendo es algo que sólo los videntes pueden predecir.

El estado de JSP

A manera de resumen de los comentarios, podríamos entonces decir que JSP es ya una tecnología estable. El hecho de que no sea tan mencionada actualmente, no quiere decir que no se utilice (más bien se da por hecho). Personalmente, me gusta mucho utilizar JSP ya que su uso es muy directo y sencillo.

Para @luxpes, tanto los tag handlers como los tag files pueden ser enpaquetados en un jar para reutilizarlos sin necesidad de copiar y pegar. Aquí hay un link sobre como hacerlo: . Si lo consideran conveniente, podría armar un ejemplo de como hacerlo.

JSP no obsoleto pero si en desuso

Pues está bien, haz el ejemplo.

Yo nunca le hago el feo a JSP, si le hago el feo al codigo Java que le pones encima pero ya es muy muy muy pero muy sabido que le tienes que hacer sus JSLT para evitar eso. Hoy en día la resistencia a utilizar frameworks es que no se conocen, es decir que por no saber usar Xxxxx no lo usas aunque eso te resuelva tu problema. Es cierto que no tiene sentido que regreses a algo que (si bien no es obsoleto) ya se ve como en desuso.

No hago comercial de xxxxx framework, ni te podré decir cual es el mejor (de eso ya se ha debatido en este foro) pero si puedo recomendarte que si quieres ser productivo no te reinventes el hilo negro

#YoConfieso que uso código

#YoConfieso que uso código Java en el JSP, pero en mi descargo diré que jamás hago nada como conectarse a una base de datos ni cosas como esas que son salvajísimas.

Lo que hago es usar   y uno que otro for e if como en:

 

Bueno, la verdad es que hace ya un rato que no hago un JSP, pero aún los haría así.

Lo que definitivamente no se debe de hacer es ( como tampoco se debe de hacer fuera de un JSP ) un if que parte todo el JSP en 2 que son básicamente diferentes, o un if dentro de un for dentro de un if dentro de un while dentrode un ...

:)

Pero caes dentro de MVC

Lo importante es que tu codigo no es mas otra cosa que para dar presentacion. Aun así sigo pensanod que estas denro del patron MVC (si o usas claro, si no, pus parece que lo usas).

La verdad que luego eso de hacer los JSLT tambien da flojerilla (a veces no es necesario)

Re: JSP no obsoleto pero si en desuso

Eso es por un lado, pero hay más de un lugar que vieron que utilizar un framework genera la necesidad de personal con el conocimiento específico en los frameworks que usan. Un ejemplo de ello es la empresa Foxconn en mi localidad; usaban Struts, Spring, Hibenate y pues lo más común podemos decir dentro de lo que a Java se refiere. Duraron así por cómo unos 3 años...ahora están regresando a JSP + JDBC a pelo, por lo que te digo, cuando se iba un desarrollador duraban mucho tiempo en encontrar gente con ese conocimiento y pues era trabajo que no se podía realizar. Esto me lo contó un profe que trabaja ahí.

Entonces, caemos en el punto donde muchas veces hemos hablado; ¿tienes la posibilidad de elegir las herramientas que vas a utilizar?, si la tienes pues que chido; puedes usar los frameworks que más se te adapten con tu manera de trabajo. De lo contrario, ni modo pues aprendes la herramienta que te dicen.

Cómo conclusión mía de esto, aprender JSP es chido porqué aprendes cómo funciona la web al nivel bajo. De la misma manera que aconsejo aprender a hacer consultas a manita antes de meterse con un ORM. Es bueno haber manejado proyectos a mano (sin Maven) y saberlos empaquetar. ¿Porqué? Pues porqué son las bases de todo lo que hay afuera y tienes idea de lo que se está haciendo debajo e incluso puedes hacer optimizaciones (de ser necesario) y tienes la seguridad de cómo se hacen las cosas.
Una vez aprendidas las bases puedes ahora si meterte a lo que te de la gana con frameworks o si no te gusta ningún framework pues ya sabes cómo trabajar con las herramientas.

Ahora también está lo que una vez comentó @luxspes de los epiciclos javalísticos y de cómo queda una "well-known enterprise application" frente al dinamismo de un simple y subestimado JSP.

En fin son muchas cosas a tomar en cuenta.