Primeros pasos
Traducción automática
Esta página se tradujo automáticamente del inglés y todavía no la revisó un hablante nativo; las correcciones son bienvenidas en GitHub. Si algo no coincide, vale el original en inglés.
¡Te damos la bienvenida a Quantum! Esta guía te ayuda a poner en marcha el framework Quantum en pocos minutos.
¿Qué es Quantum?
Quantum es un framework declarativo full-stack para aplicaciones web escritas en XML. Está diseñado con la filosofía de "simplicidad por encima de la configuración": hacer simples las tareas complejas y mantener el lenguaje limpio y legible.
Beneficios principales
- Sin JavaScript - Construye aplicaciones interactivas usando solo XML y SQL
- La IA como etiquetas - Llamadas a modelos, RAG y agentes con herramientas, sin código Python de pegamento
- Full-stack - Consultas a bases de datos, formularios, sesiones y autenticación incluidos
- Entrada validada - Los parámetros declarados se verifican por tipo antes de que tu código se ejecute
Requisitos previos
- Python 3.12+
- pip
Instalación
pip install quantum-framework
quantum --versionLos extras opcionales (PostgreSQL/MySQL, RAG, jobs, websockets) y la dependencia adicional del destino de escritorio están en Instalación.
Tu primer componente
Crea un archivo llamado hello.q:
<q:component name="HelloWorld" xmlns:q="https://quantum.lang/ns">
<q:return value="Hello World!" />
</q:component>Output: Hello World!
Ejecútalo:
quantum run hello.qAgregar contenido dinámico
Hagámoslo más interesante con variables y bucles:
<q:component name="Greetings" xmlns:q="https://quantum.lang/ns">
<!-- Define a variable -->
<q:set name="greeting" value="Hello" />
<!-- Loop through a list -->
<q:loop type="list" var="name" items="Alice,Bob,Charlie">
<q:return value="{greeting} {name}!" />
</q:loop>
</q:component>Output:
["Hello Alice!", "Hello Bob!", "Hello Charlie!"]Usar condicionales
<q:component name="AgeCheck" xmlns:q="https://quantum.lang/ns">
<q:set name="age" value="25" />
<q:if condition="age >= 18">
<q:return value="You are an adult" />
</q:if>
<q:else>
<q:return value="You are a minor" />
</q:else>
</q:component>Output: You are an adult
Crear funciones
<q:component name="Calculator" xmlns:q="https://quantum.lang/ns">
<q:function name="add" returnType="number">
<q:param name="a" type="number" required="true" />
<q:param name="b" type="number" required="true" />
<q:set name="result" value="{a + b}" />
<q:return value="{result}" />
</q:function>
<q:set name="sum" value="{add(5, 3)}" />
<q:return value="5 + 3 = {sum}" />
</q:component>Output: 5 + 3 = 8
Aplicaciones web
Las páginas son componentes en una carpeta components/, y el nombre del archivo es la URL. Crea components/index.q:
<q:component name="index" xmlns:q="https://quantum.lang/ns">
<html><body>
<h1>Welcome to My App</h1>
<p>Now: {dateFormat(now(), '%H:%M')}</p>
</body></html>
</q:component>Shows: Welcome to My App
Inicia el servidor desde la carpeta que contiene components/:
quantum startAbre http://localhost:8080. El Inicio rápido continúa con una base de datos y un formulario.
q:application type="html"
Algunas páginas antiguas describen las aplicaciones web como un q:application type="html" con bloques q:route. Esa forma nunca ejecutó sus rutas y se eliminó en la 0.11 — usa components/ como arriba. Ver q:application.
Modo de depuración
Para obtener información detallada de la ejecución:
quantum run hello.q --debugEsto muestra:
- Detalles del análisis del archivo
- Información sobre la generación del AST
- Pasos de validación
- Flujo de ejecución
Próximos pasos
- Detalles de la instalación - Guía completa de configuración
- Estructura del proyecto - Cómo organizar tu código
- Componentes - Todo sobre los componentes
- IA - Llamadas a LLM, RAG y agentes como etiquetas
- Recetario - Recetas probadas, una tarea cada una