La web se carácteriza por ser sumamente simple. Programar webs no es complicado y de aquí el gran auge que ha tenido en los últimos 15 años.
Tecnológicamente han habido muchos cambios, muchos lenguages, php, asp, asp.net, jsp, struts, rails, python… muchos cambios, pero por debajo la eséncia es la misma, todo se resume en un formulario que pasa sus campos a otra página para hacer una determinada acción.
Pero hay lenguages que quieren y reiventan la web, argumentando en que es más sencillo y que es como desarrollar aplicaciones de escritorio, como hacen java con struts y ASP.NET.
Lo primero que quiero indicar es que una aplicación web no es una aplicación de escritorio por mucho que se use el mismo lenguage. Es flipante encontrar compañeros de trabajo expertos en java, expertos en Visual Studio .NET que te pregunten estupideces del mundo web. Estupideces básicas que cualquier desarrollador web sabe. Ven la web con la perspectiva del desarrollo de escritorio y no tiene nada que ver.
Java con Struts o ASP.net reinventan la manera de programar la web ya que quieren que parezca que estás creando una aplicación cualquiera. Te meten capas intermedias y lo peor, funcionalidades y configuraciones extrañas para que funcionen las cosas. Claro que funciona, al final por narices lo haces funcionar ya que te adaptas y aprendes esa manera complicada de tratar la web pero no evita que pienses que es una estupidez de framework, complicado.
Yo flipaba con struts. Supongo por culpa de Rails que lo hace tan sencillo y divertido pero hay cosas que no acaba de entender.
1 - Esto de tener que compilar cada vez que hago un cambio me descoloca. Llevaba 6 años sin compilar nada. ¿ Compilar ? Mon dieux!!! Seguro que pal server despues es mejor, no lo dudo, pero joder…
2 - Mirad la cabecera de casi cualquier página que necesite un formulario:
package strutsTutorial;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class UserRegistration extends Action {
private static Log log = LogFactory.getLog(UserRegistration.class);
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
Vi eso el primer día, y casi me tiro por la ventana. Grácias struts por tu sencillez y hacerme los días más entretenidos.
3 - Documentación con UML
Sin contar que hacen enalisis despues de tener medio hecha la web, encima lo hacen con UML. Claro como si fuera una aplicación de escritorio. Es tan ágil la documentación, siempre actualizada y es tan fácil realizar cambios…
La mejor documentación para una web es su código bien escrito, bien comentado y sus tests.
Sinceramente, es flipante como hacen de algo tan simple e intuitivo algo tan complicado. Y no digo que esté mal Struts, que en partes tiene cosas muy buenas con su MVC, JUnit, gestión de mensajes … pero sencillamente no es el futuro, ni el presente.