curiosidad de aplicaciones web

si pero esque se dice que es codigo maquia no cgi creada con lenguajes normales, pero crear una web con codigo maquina es como crear un juego en cobol es como querer que un hombre se quede embarazado

No se está entendiendo.

La aplicación ejecutable que hace de servidor o de cgi es un binario compilado, código máquina. Un .EXE.

Cuando se llama a esa aplicación (por tcp al puerto 80 para una web, por llamada del servidor web para un CGI) la aplicación genera y presenta texto en respuesta (EXACTAMENTE igual que una aplicación de consola de texto: Le das un comando y te contesta con texto).

Ese texto en respuesta es lo que le llega a tu navegador, que lo interpreta como una web, ficheros CSS, Javascript, etc.

En lo que esté hecho el servidor y lo que se sirve de él no tienen relación, no es diferente a que tengas tu servidor hecho en Python, PHP o Perl y lo que presentes al final sea HTML/CSS y JS (aunque lo que sí cambia es que no es un lenguaje interpretado como esos, lo que introduce ciertas diferencias en programación).

Eso sin entrar conque no veo cual es el problema de hacer un juego en cobol, aparte de que no esté optimizado para ello (y sin entrar en que la comparación no es válida, ya que una aplicación compilada siempre será más rápida que un lenguaje interpretado).

Si quieres otro ejemplo: Apache, el servidor web por excelencia, cuando muestra webs de status e internas, está mostrando webs generadas por codigo máquina, a partir de su ejecutable binario. No hay ningún problema por ello, ni diferencia para el usuario.

Imagino que tienes ciertas asunciones de cómo deben hacerse las webs, basadas en cómo se suelen hacer, que hacen que pienses que es la única forma de hacerlas. Pero es muy común presentar un servidor web utilizando aplicaciones binarias compiladas a codigo maquina.

una cosa es generar en c que la pagina no existe y otra muy distinta es convertir toooooodo el codigo de jquery por ejemplo a codigo maquina, aparte para crear codigo maquina debe usarse un lenguaje para compilar, ya sea c/c++ ensamblador o el mismisimo sistema binario, no tengo problema en como, por supuesto que no sino en que se hace, esto es porque me sorprende mucho esta forma, ojo me encanta pero me sorprende porque veo una limitacion grave en esto muy muy grave. tambien se dice en la documentacion que se puede agregar php, esto cierto ya lo probe pero como? si se supone que php no es compilado nativo sino bytecode, ves? ves por lo que digo que me sorprende?

Perdona, pero creo que hay una empanada aquí bastante considerable.

JQuery es JavaScript, es código en el cliente. Por qué podría haber de convertirse en código máquina.

Lo intento de nuevo: El servidor, el ejecutable que responde las peticiones web, es un binario compilado ejecutable en código máquina.

Lo que se ejecuta en el cliente, JavaScript, CSS, HTML, es texto. Texto tal cual.

PHP se puede ejecutar porque el servidor web que Xojo genera puede incluir PHP para ejecutarlo.

Honestamente, creo que por la forma en que está explicado en varios sitios te has hecho una idea muy lejana de cómo funciona y ahora no estás pudiendo acoplarla con como funciona en realidad.

Una aplicación web de Xojo es totalmente diferente a aplicaciones web tradicionales hechas en lenguajes interpretados como PHP o ASP o Ruby o Python. TOTALMENTE

Una aplicación web de Xojo es un servidor hecho a medida con todo el código DEL SERVIDOR ejecutándose desde el binario. Este binario puede llamar otras librerías (PHP, comandos de shell, DLLs, etc.) y el resultado final tanto de sus funciones internas como de usar cualquier librería asociada se presenta al usuario final como web, utitilizando la capa de visualización que Xojo ha creado que finalmente presenta sus componentes y eventos al usuario como javascript, HTML, etc.

Puedes usar JQuery, que es cosa de añadirlo, y la aplicación Xojo lo servirá al usuario exactamente igual que cualquier otro recurso que le presentases. Si utilizas controles hechos con el WebSDK que incluyan JQuery entonces esos controles ya incluirán JQuery.

Me parece que estás complicándote la comprensión de cómo funciona por intentar ajustarlo a un modelo que es muy diferente pero mucho más común hoy en día (en su momento el modelo actual de lenguajes interpretados era mucho menos común).

En concepto podrías compararlo con Ruby on Rails, en el que escribes tu web en código Ruby (no como PHP, donde vas “armando” el HTML) y RoR crea el HTML final, sobre el que no sueles tener control directo.

Estaba pensando, por tu mencin de que PHP es bytecode, que ests tratando de compaginar como funciona PHP con como funciona Xojo.

PHP es texto, que se precompila a bytecode que a su vez se ejecuta por la maquina de PHP en el servidor web. Existen compiladores de PHP que producen un ejecutable final que lo que hacen es convertir a C++ optimizado, como hip hop. Lo convierte a C++ porque es un lenguaje que se puede compilar.

Xojo es un lenguaje que, como C++, se puede compilar a ejecutables. Imagina que ests haciendo lo mismo que ese compilador de PHP: Produciendo codigo final compilable del que resulta un ejecutable binario.

a eso me refiero que todo es c++, me di cuenta que en la carpeta framenwork incluye los css y js que se usan en las app osea que en parte tengo yo razon, lo unico que xojo hace es crear el servidor en c++ e incluir los archivos en el binario

No puedes “referirte a eso” cuando “eso” que yo estoy poniendo es específicamente que NO es C++

Xojo es un lenguaje compilable como C++. Ni es ni se pasa en ningún momento a C++.

Todo lo que se incluye externo a lo programado o generado por Xojo (imágenes, jquery, etc) son ficheros sueltos que no son parte del binario sino recursos.

En la carpeta NO incluye los css y js que se usan en la aplicación. Incluye todos los que se hayan añadido por separado. El resto los genera internamente y los sirve tras generarlos en el momento.

No se por que esta costando tanto hacer entender esto. No tienes razón en la parte que piensas, pero para entenderlo necesitas dejar de forzar Xojo en que sea algo que esperas desde el principio. Aquí no hay nada que investigar, no es un secreto el como funciona.

xojo como tal no genera nada todo esta en C:\Program Files\Xojo\Xojo 2013r1\Resources\WebFrameworks ahi esta todos los scripts que tiene xojo por lo tanto tu teoria no es correcta

eso son scripts que claro luego tu desde el lenguaje xojo puedes modificar los colores la forma pero la base ya esta generada por javascriot y no es el servidor quien lo genera

Vamos a ver. Yo te estoy describiendo lo que sucede, no es una teoría. Tu estás teorizando y te estoy corrigiendo.

Te he puesto antes que Xojo utiliza web como una forma de output igual que Cocoa o WinForms. Para hacer esto, obviamente, necesita una serie de librerías propias que gestione como muestra un botón, como automatiza un clic, como estila una tabla, etc.

Las librerías de Xojo para desplegar visualmente en cualquier plataforma se encuentran todas en Resources y Resources/Frameworks “WebResources” es la de web, igual que hay RBGUIFrameworkWin32.dll para GUI en windows, RBConsoleFrameworkLinux32.so para terminal en Linux, etc. La naturaleza de la web hace que en vez de ser un .DLL (Windows), un .so (Linux) o un .dylib (Mac) sean ficheros sueltos.

Pero eso contiene la logica de los componentes de Xojo. Eso no contiene (OBVIAMENTE) la funcionalidad que implementes tú indirectamente a través de edición de eventos o del IDE en la pantalla. Eso es lo que está integrado en el ejecutable porque depende de lo que programes.

No sé de qué otra forma explicártelo. Llevo usando Xojo desde 1995 (desde antes que se llamase RealBasic y antes que se llamase RealStudio), llevo en el grupo de betas desde que se implementó la versión web por primera vez y también estoy en el de testers de alphas. Sé como funciona Xojo porque he estado involucrado en las discusiones en las que se decidía como funcionaría.

La forma en que funciona Xojo no es un secreto, no hay nada que investigar. Es una solución muy ingeniosa pero es pública. La ventaja de Xojo es todo el trabajo que han hecho para llegar aquí, no una “receta secreta”.

Dado que no logro explicarme y tú no tienes intención de entender que antes de aprender cómo funciona debes comprender que estás equivocado, doy por terminada mi parte de esta discusión a menos que tengas alguna pregunta específica en la que pueda ayudarte.

Saludos

donde podria ver las especificaciones de sojo? asi podria entenderte si leo todo lo relacionado porque a mi modo de ver xojo tendria que crear un compilador antes y ese compilador implementar antes todo lo ingenioso (y muy muy muy ingenioso por eso quiero saber) y a donde yo quiero llegar esque ese compilador debe ser creado en algun lenguaje maquina.

Busca informacin de LLVM que es el proximo compilador que utilizara XOJO.