Feeds, issues, packages and code source about emulation and pograming, of VENENUX proyects, Debian related distros and massenkoh!

Gambas web: la filosofia web vs la filosofia desktop

|
En los inicios las aplicaciones de computadoras (seria de ignorantes decir "informaticas") se limitaban a aquellas instaladas en el computador "localmente", la internet si era algo relacionado con "informatica", puesto que solo "ofrecia informacion", hoy dia esto ha evolucionado, y Gambas ha incursionado en el ambito web 2.0 de hoy.

Introduccion a web

WEB 1.0 : es de sólo lectura, es decir en los inicios solo existia HTML estatico, el servidor web tenia un archivo de tags html y el usuario visualizaba el contenido. El usuario no puede interactuar con el contenido de la página (nada de comentarios, respuestas, citas, etc), estando totalmente limitado a lo que el servidor web ofrecia o mostraba desde los archivos html (lo que el servicio subia al servidor).

WEB2.0: esto es lo que hoy dia llaman incorrectamente aplicacion web, esto es posible con los sistemas de programacion web dinamica, o "paginas web dinamicas"; permite a sus usuarios interactuar con el contenido segun las acciones que este realize, haciendo ver que interactua con otros usuarios o cambiar contenido del sitio web, en contraste a sitios web no-interactivos donde los usuarios se limitan a la visualización pasiva de información que se les proporciona.

Como funciona la web 2.0

Usa los principio de peticion-respuesta (request-response), el lenguaje de programacion, toma el contenido del request y basado en la logia propia del sistema web emite un response. La dinamica aqui es que gracias a el lengaje de programacion se puede analizar el contenido y aplicar reglas de logica, cosa que en la web 1.0 no se podia, ya que el request estaba limitado a pedir un nombre de archivo (aparte de la informacion de protocolo).

Gambas y web: Interpretado y precompilado

Las tecnologias mas completas ofrecen dos maneras de manejar y ofrecer contenido dinamico: interpretado y precompilado. De las mas famosas esta Java y/o .Net brindan programacion de sistemas web 2.0 en las dos formas y las usaremos para ejemplificar e ilustrar esto.

Esta tabla es ilustrativa y vaga, solo como punto de partida a los menos conocidos.
Referencia RapidaGambasPythonJavaEE.Net
InterpretadoGBSPYJSPASP
PrecompiladoGBXPYCCLASSCOMP

Esto porque ejecutar gambas no requiere de una extension, el programa precompilado puede tener extension o no tenerla, el servidor web segun como se prepare lo ejecutara sea precompilado o interpretado.

Diferencias entre las tecnologias

Gambas es RAD, asi como JAva lo es, son diseñados para rapidamente ser aprendidos y rapidamente ser desplegados, gambas para desplegarse al igual que Java solo necesita los componentes de su propia tecnologia, mientras que Python y .Net para cualquier funcionalidad especial, aun siendo programada en el mismo leguaje, requiere de software externo.
Para los ignorantes, Python, Java y .Net son populares porque tiene grandes empresas detras de ellos: Inte/Google, Oracle y Mocosoft respectivamente. Fuera de esto pytnon en sus inicios era una basura por hobbie y .Net solo un experimento para sacarle el cuerpo a Java y lograr entrar en el ambito web.
 GambasPythonjava.netResumen
MadurezNoSiAltaSi* Gambas aun sin dinero, crece solido, robusto y compatble entre versiones de su api.
* Python y .Net le tuvieron que inyectar mucho dinero
* Java cuenta con dinero, y aun asi cambian demasiado su api
EnfoquePequeñoGenericoEmpresarialEmpresarial* python “pretende” convertirse de algo general en algo empresarial
* Java es empresarial, nacio empresarial y es las grandes ligas, el maestro.
* .Net pretende ser mejor que java, con tanto dinero le falta aun mucho mercado.
* Gambas parece no tener vision de futuro... duele pero es la verdad.
AprendizajeRapidoLentoLentoLentisimo* Gambas es BASIC, es lo mas facil en el mundo.. Para un programador no relacionado, es facil el lenguaje BASIC de gambas, las empresas privadas no quieren invertir recursos en programadores costosos (python, Java, .Net) o enseñar a los suyos.
RADSiNoSiNo* dado la facilidad y el diseño, solo Gambas y Java son RAD (Rapid Aplication Developent), para python es imposible ser algo para lo que no fue construido, para .Net no es su enfoque lo que evidencia su mal diseño.
Backguard
Compatible
ExcelenteNuncaExcelenteNo* Con gambas el programador no necesita volver aprender, vive una vida!
* Con Java hay compatibilidad pero las caracteristicas nuevas LAS IMPONEN como estandares!
* El mayor problema de python y .Net es que no funcionan entre distintos apis.
RequerimientosPocosMediosMuchosMuchos* Desplegar gambas web solo gambas y cgi
* Desplegar python solo requiere python y cgi
* Desplegar Java o .Net requiere una gran cantidad de potenca y recursos extra.
MultiplataformaSiSiSiNo* Sin comentarios para lo obvio, cualqeuir eleccion aquí es mejor que .Net.

Que necesito saber para desplegar web en gambas?

Lamentablemente aqui se requiere estar familiarizado, mientras que en python, java y php solo se necesita conocimeintos minimos, en Gambas y .Net se necesita comprender bien dos conceptos clave: el "request" y el "response".
HTTP se basa en un modelo solicitud / respuesta, de modo que hay dos tipos de mensajes HTTP: la solicitud y la respuesta. El navegador abre una conexión a un servidor y realiza una solicitud. El servidor procesa la solicitud del cliente y devuelve una respuesta. La figura siguiente ilustra este proceso.
Aunque hay varios métodos de HTTP para recuperar datos de un servidor, las dos más utilizados son GET y POST.
En gambas es importante comprender estos conceptos, en php y Java, no es tan importante la comprension porque el lenguaje como tal al no ser RAD provee en si suficiente herramientas para procesar las respuestas como si se tratara de un mismo sitio, en ves de una contesta lejana. Esto es porque los frameworks abstraen estos complejidades, mientras que en gambas se le ofrece al programador el total control de lo que fabrica (es RAD recuerde):


Que necesito tener y como despliego mi programa gambas?

Necesitas un servidor con capacidad CGI, tambien se puede con FastCGI pero es bastante complicado. Hay dos maneras de lanzar el codigo gambas:
Interpretado: se le indica al servidor web que el gambas interpreter es el CGI como tal y este interpretara indicandosele que provea de su servidor httpd embebido, y que procese el proyecto entero. A diferencia del servidor web, esta es la manera en que se ejecuta el proyecto cuando esta en el IDE RAD grafico solo que sin ejecutar un CGI que pase el control.
Precompilado: se fabrica un programa comun gambas, y se le dice al servidor web que lo procese como un programa CGI propio. Esta es la manera en que se debe de ejecutar en produccion.

Como comienzo a fabricar una pagina gambas web?

Cuando se arranca el ide se le indica es un proyecto web, sin embargo para el diseño de formularios graficos web es necesario manualmente indicar que se usar el modulo gb.web.forms el cual es relativamente nuevo y la ultima sensacion de la comunidad.

En el proximo articulo desplegare la receta para publicar web gambas


0 comments/comentarios:

Publicar un comentario

si vienes de guindo, winbuntu o parecido, limitate y escribe algo util...