Un lenguaje de programación en español

Sin ; ni {} ni ==. Cuarenta y dos palabras, todas en castellano, y un solo ejecutable que no necesita instalar nada por debajo.

Windows, Mac y Linux. Software libre, licencia MIT.

En JavaScript
if (edad > 18) {
En Fal
si edad es mayor que 18
Sin instalar nada

Pruébalo aquí mismo

Elige un ejemplo, cámbialo y dale a Ejecutar. Lo corre tu navegador: el programa no sale de tu ordenador.

Ctrl Intro Seguir en el playground
Salida
28.27

Qué es Fal, en cuarenta y ocho segundos

Para qué existe, qué resuelve y qué no. Con voz, así que sube el volumen.

Si prefieres leerlo, está todo escrito más abajo.

Uno

El escalón que no cubre nadie

Fal no existe porque hicieran falta más lenguajes. Existe por un hueco concreto.

Arrastrando bloques

Se aprende la idea de un bucle en una tarde. Pero llega el día en que arrastrar cansa y quieres escribir de verdad.

Scratch, Blockly, Snap! y muchos más.

Aquí no había nada

El siguiente paso es sintaxis llena de símbolos y encima en inglés. Ese salto se lleva por delante a mucha gente que habría seguido.

Fal

Un lenguaje de adultos

Donde acaba todo el mundo, y donde Fal quiere dejarte. No es un sitio para quedarse a vivir.

Python, JavaScript, Java y muchos más.

Si has pasado por pseudocódigo en clase conoces el otro lado del problema. Sirve para entender la lógica, pero ahí se acaba: no abre un archivo, no tiene bibliotecas y no te deja montar un juego. Aprendes y no sale del aula.

Fal se lee casi igual que ese pseudocódigo, y por debajo tiene un intérprete entero: objetos con herencia, clausuras, módulos, archivos, JSON, fechas, expresiones regulares y peticiones a internet. El mismo lenguaje con el que repites diez veces una línea te sirve después para leer un CSV de gastos y sacar un informe que cuadra al céntimo.

Dos

Cómo se lee

La diferencia no es de estilo. Es que no hay nada que memorizar antes de empezar.

En Fal
si edad es mayor que 18 if (edad > 18) {
nombre es "Ana" nombre = "Ana"
si nombre es igual a "Ana" if (nombre == "Ana")
repite 3 veces for (let i = 0; i < 3; i++) {
fin }
0símbolos que saber antes de escribir estas cinco líneas en Fal
17en JavaScript

El = contra el == se ha llevado por delante a muchísima gente que empezaba, y las llaves y el punto y coma otro tanto. Aquí eso no puede pasar, porque no existen.

Tres

Las ocho reglas

Todo el lenguaje sale de aquí. Si alguna vez dudas de cómo se escribe algo, la respuesta está en una de estas ocho.

  1. Todo en español. Con tildes o sin ellas, en mayúsculas o en minúsculas: FUNCIÓN, funcion y Función son la misma palabra.
  2. Cero símbolos. Solo palabras y paréntesis.
  3. Una sola forma de hacer cada cosa.
  4. Todo se llama igual. Sea una función tuya, una de la biblioteca o el campo de un objeto. largo de frutas sumar con 3 y 4 nombre de toby
  5. Los bloques cierran con fin. La sangría es decorativa.
  6. Una línea, una instrucción.
  7. Se cuenta desde el 1. El primero es el 1 y el último es el menos 1. elemento 1 de frutas elemento menos 1 de frutas
  8. Los errores enseñan. Dicen la línea, el camino que siguió el programa y cómo se arregla. Aquí abajo hay tres.
Cuatro

Cuando te equivocas

Un error en inglés con cuarenta líneas de pila es justo donde mucha gente lo deja. En Fal el error te dice dónde, por dónde pasó el programa y cómo se arregla.

Lo que escribes
nombre es "Ana"
escribe nombree
Lo que te contesta
X  No conozco nada llamado "nombree".

   linea 2 |  escribe nombree

   Pista: Quizas querias decir "nombre".

Es la salida del intérprete tal cual, sin retocar.

Cinco

Lo que cuesta

Quitar los símbolos no sale gratis, y conviene decirlo antes de que lo descubras tú.

En cuanto una cuenta crece, escribirla con palabras es más largo

3 mas 4 por 513 caracteres
3 + 4 * 59 caracteres

La apuesta es a sabiendas: se gana en las primeras horas y se paga después. Quien ya sabe programar va a escribir más aquí de lo que escribiría en otro sitio.

Y hay una segunda pega que es real. Esos símbolos son la convención en casi todos los lenguajes, en la documentación y en las matemáticas, así que aquí no se practican. Por eso Fal está pensado para dejarlo atrás, no para quedarse, y por eso el manual termina con una tabla que traduce cada cosa a Python y a JavaScript.

Seis

Qué hay dentro

Poco que aprender y mucho que hacer con ello.

42palabras reservadas, y ni una más
93funciones listas para usar
1ejecutable, sin dependencias
0cosas que instalar antes
Las cuarenta y dos, todas, por lo que hacen
  • Cuentas y comparaciones 10

    es igual mas menos por entre resto no o esta

  • Decidir y repetir 8

    si sino mientras repite para detente continua fin

  • Funciones y tipos 8

    funcion con de devuelve retorna comparte tipo hereda

  • Valores y objetos 6

    verdadero falso nada nuevo mi padre

  • Cuando algo falla 4

    intenta falla finalmente relanza

  • Listas y módulos 4

    agrega quita usa como

  • Hablar con quien lo usa 2

    escribe pregunta

Listas, diccionarios, conjuntos, funciones que se pasan como si fueran datos, clausuras, objetos con herencia, errores con clase, módulos, archivos, JSON, fechas, expresiones regulares e internet. También dibujo con tortuga y lectura de teclas, que es lo que hace falta para que un juego sea un juego.

Los decimales son exactos: 0.1 mas 0.2 da 0.3, y no 0.30000000000000004 como en Python. Sirve para contar dinero sin sustos.

El intérprete está escrito en Go, sin una sola dependencia externa, y el mismo código compila a WebAssembly. Por eso el cuaderno de arriba no manda tu programa a ningún servidor: lo ejecuta tu propio navegador.

Siete

Aprender con otros

Un curso que se comprueba solo, un foro sin captcha y cuentas que no piden correo.

Empezar

Lo más rápido es no instalar nada.

el tuyo

Windows

Descarga fal-windows.zip, descomprímelo entero y haz doble clic en instalar.bat.

el tuyo

Mac y Linux

Descarga el paquete de tu sistema, descomprímelo y ejecuta sh instalar.sh.

El instalador no pide permisos de administrador y deja todo en tu carpeta de usuario. Al terminar, abre una terminal nueva y escribe fal --ayuda.