Comunidad
Dónde ocurre kaikai
El proyecto es joven y se desarrolla a la vista. No hay foro ni chat todavía: todo pasa en los repositorios y en el blog.
El código
El lenguaje, las bibliotecas y este sitio viven en la organización en GitHub. El repositorio del compilador es kaikailang-org/kaikai: ahí están el compilador autoalojado, el runtime, la stdlib y la documentación de diseño.
Los issues están abiertos y son la vía principal
para reportar. Un reporte útil trae la salida de
kai --version y el programa más pequeño que
reproduzca el problema; si el compilador acepta algo que no
debería, o rechaza algo que sí, ese caso mínimo es la mitad
del arreglo.
El libro
Effective Programming with kaikai se escribe en paralelo al lenguaje, en español e inglés, y se lee online o se descarga en PDF. Es un borrador vivo: cada versión se valida contra el compilador del momento, así que los ejemplos que trae son los que efectivamente corren.
Su repositorio es kaikailang-org/kaikai-book, y las correcciones al texto también se reciben como issues.
El blog
Las decisiones de diseño —por qué efectos algebraicos, por qué conteo de referencias en vez de recolector, qué se probó y se descartó— se cuentan en lnds.net.
Estado del proyecto
kaikai es pre-1.0 y va por la edición
Hanga Roa. Dentro de una edición la superficie del
lenguaje se mantiene estable, así que actualizar es leer las
notas de la versión, correr kai upgrade y
recompilar. Los cambios incompatibles se guardan para el
cruce a la edición siguiente.
La etiqueta 1.0 está postergada a propósito: el objetivo es que llegue cuando la superficie esté fija, no en una fecha.
Agradecimientos
kaikai le debe su forma a lenguajes que resolvieron antes las mismas preguntas: los efectos algebraicos y su comprobación de filas vienen de la línea de Koka y Effekt; el conteo de referencias Perceus, de la investigación que Koka publicó; la inferencia de tipos, de la tradición de ML; la concurrencia estructurada, de las nurseries que popularizó Trio; el modelo de ediciones, del manifiesto de estabilidad de Rust; y el modelo de distribución, de Go.