• Publicidad

Un gran dilema para empezar con páginas dinámicas

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Un gran dilema para empezar con páginas dinámicas

Notapor J.C.M.Castillo » 2006-01-17 16:07 @713

Pues eso. Que no se por donde tirar.
He estado haciendo pruebas con Perl para crear CGIs y me gusta (y mucho). También he probado PHP y también me ha gustado. He leído cosas sobre Java, JSP y los Servlets, y me ha parecido muy interesante.
El caso es que tengo un lío del "copón" y no se que camino seguir.
Trabajo en Windows, y de momento lo voy a seguir haciendo.
Estoy muy interesado en controlar hardware de forma remota (Soy eléctrico-electrónico) y he visto que con Perl, y su sistema de módulos, hay muchas cosas que están solucionadas.
Aunque en un foro de Perl imagino que me aconsejaréis Perl, ¿me podéis dar alguna idea?.
J.C.M.Castillo
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2006-01-13 10:40 @486

Publicidad

Re: Un gran dilema para empezar con páginas dinámicas

Notapor explorer » 2006-01-17 16:36 @733

¿Electrónico?
Entonces para algunas cosas no necesitas ni páginas web...
Mira estos enlaces que te paso. El primero se lo ha hecho un amigo mío.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Perl user » 2006-01-17 16:58 @748

Pues yo te hablaré de las tecnologías emergentes para Web en general....

Actualmente las tendencias tecnológicas por la parte del desarrollo de aplicaciones Web está teniendo un gran auge en el mercado, están dominando mucho y eso es porque las aplicaciones Web son muy muy portables, eficientes y de alguna manera muy prácticas.

Todos estos factores obligan a que las tecnologías para ofrecer estos servicios sean de alguna manera paralelos a ellos, es decir, APIs, lenguajes y herramientas que sean sencillas, limpias, eficientes y prácticas.

Por el lado de Perl el desarrollo de contenido dinámico por la parte del Web ha crecido considerablemente, por un lado desde el nacimiento de CGI Perl se ha destacado como un lenguaje afin a las herramientas web, y por el otro lado el nacimiento de nuevas tecnologías hace que Perl también se adapte a ellas ( como Ruby on Rails, Web Scripting ( PHP, et al ).

Desarrollar CGI's como tal ya es un poco arcaico, porque para aplicaciones grandes ( sin tocar aun el término enterprise ) implica tener un ENORME modelo muy bien organizado para poder darle mantenimiento y buen soporte a una aplicación, hablando claro de un trabajo en equipo. No implica que no sirvan, claro que no, pero no es lo mas eficiente para trabajar aplicaciones Web que sean 100% dinámicas y sencillas de mantener.

Por otro lado, están los lenguajes como PHP, ASP y por el lado de Java tenemos a JSP ( aquí incluyo a los Servlets ). Que son lenguajes que permiten programar sitios con algo llamado "scriptlets" que son porciones de código embebidas en código HTML. Este modo de trabajo facilita mucho la creación de aplicaciones dinámicas, sin embargo, la parte de mantenimiento es la que tiene problemas, no te permite separar muy bien la parte lógica de la aplicación con la parte visual ( diseño ). Y mantener aplicaciones que mezclan ambos mundos se pone complejo en aplicaciones grandes.

Y por último están las tecnologías recientes que permiten el desarrollo de aplicaciones por medio de lo que conocen como "Desarrollo multicapa", dónde la mas conocida es un desarrollo de 3 capas, también llamada MVC ( Model-View-Controller ), que no es nada nueva, pero que ha tenido mucho auge para aplicaciones Web. Sin embargo las aplicaciones de 3 capas no son la solución completa, en Java, al generar aplicaciones enterprise puedes diseñar aplicaciones con mas de 3 capas. A qué me refiero con enterprise? Bueno al aspecto de que puedes dividir toda una aplicacion en diferentes niveles de reponsabilidad que incluso vean a cada fase como un equipo remoto ( distribuido ) y todo en conjunto trabaje como un solo ente.

Soluciones? Nombres? ok

Ruby:

Sin duda uno de los ponentes actuales para el desarrollo de sitios verdaderamente dinámicos, sencillo de mantener y muy limpio se lo lleva Ruby on Rails. Es todo un framework para el diseño de aplicaciones mediante el patrón MVC ya mencionado, junto con una manera orientada a objetos muy muy limpia.

Perl:

Clásico en este lenguaje, tienes muchas alternativas, cuestión de elegir las que mas te acomode, yo normalmente trabajo con Template Toolkit ( para la parte del View ), mod_perl ( para la parte del Controller ) y cualquier otra herramienta para manipulación de datos ( para la parte del Model ). Por ejemplo Template Toolkit + Class::DBI + mod_perl, una excelente combinación.

Otras alternativas similares ( prefabricadas ) muy limpias es el hecho de utilizar CGI::Application, Maypole y Catalyst ( esta está basada en Maypole, y es la respuesta de Perl a Ruby on Rails ).

Todas las anteriores ofrecen APIs diferentes, pero limpias y sencillas de manejar.

Java:

Otro de los ponentes actuales de tecnologías emergentes para el Web, si bien Java se ha considerado un lenguaje muy fuerte para el desarrollo de aplicaciones extensibles y grandes, los otros lenguajes no tienen mucho que pedirle ( en ciertas áreas ), así que por esa parte no te dejes engañar o no te sorprendas TANTO.

Java ofrece muchos frameworks para el desarrollo de aplicaciones dinámicas, pero voy a comenzar con una parte del Java Enterprise Edition llamado JSP/Servlets. Primero, un servlet es similar a un CGI , es un programa escrito en Java que procesa peticiones web ( GET, HEAD, POST ), y devuelve contenido HTML, obviamente en este punto es donde puedes manejar sesiones, persistencia y temas afines. Entonces qué es JSP? Un Java Server Page es un código de HTML con porciones de Java, el cual es convertido a un servlet por un contenedor de JSP/Servlets ( como lo es Tomcat por ejemplo ) y poder escupir la salida del Servlet generado. Las desventajas de esta manera de generar a mano las cosas las mencioné arriba.

Por otra parte, Java tiene algo llamado JSTL, es que es Java Standard Tag Library ( por Apache Foundation ) la cual es un conjunto de bibliotecas que te permiten establecer Tags personalizados, con el fin de poder eliminar el código en Java, y poner por ejemplos tags mas naturales ( como al estilo XML por ejemplo ).

Aquí es donde entran los frameworks como Struts, Spring, Velocity, Cricket, etc. Todos estos son frameworks ( como Catalyst, Ruby on Rails ) que te permiten hacer aplicaciones web dinámicas por medio del modelo MVC.

Ahora hay algo imporante que ofrece Java ( y que Perl lo tiene de alguna manera muy similar en Class::DBI ) que es la manera de "mapear" un diseño de una base de datos con un diseño lógico en código de Java, es decir... mapear una tabla de una base de datos, con una clase en Java, de esta manera el manipular el modelo de datos se ve bastante transparente.

No quiero extederme a Python y PHP ( por no mencionar mas ), pero no lo hago aparte de que no conozco mucho de ambos lenguajes ( ya que no me gustan ) y pues.... no son ponentes tan importantes en aplicaciones grandes.

PHP es muy conocido y popular, pero eso no significa que sea muy bueno, si bien PHP5 si fué modificado considerablemente, la gente aun sigue utilizando PHP4 y por lo tanto sigue haciendo esas aplicaciones horribles, inmantenibles y sin un diseño concreto.

Saludos,

PD. Omití demasiados detalles, pero se trata de una opinión no de un libro :P
Marco A. Manzo
[email protected]
http://www.unixmonkeys.com/amnesiac/
Perl Programming Language
Perl user
Maestro honorario
Maestro honorario
 
Mensajes: 271
Registrado: 2004-11-03 21:11 @924

Notapor J.C.M.Castillo » 2006-01-18 01:29 @103

Hola Perl User
Acomplejado de has dejado con tu explicación. Lo que demuestra que soy bastante ignorante en estos temas.
Muchas gracias por tu ayuda.

Para Explorer:
Muchas gracias por tus enlaces. No los conocía y me serán de gran ayuda. Aunque solamente estan centrados en el sistema domótico X10, el cual utilizo ocasionalmente, me dará muchas pistas para comenzar a trabajar.
Gracias
J.C.M.Castillo
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2006-01-13 10:40 @486


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado