Saltar al contenido
Ridgun
Español

Por qué Ridgun

Qué hace Ridgun de otra manera.

Ridgun toma ideas de Haskell, Rust, Go, Erlang y los lenguajes de arrays, y las reúne en un solo sitio: código dispuesto en tablas, paralelismo en la sintaxis y memoria liberada sin recolector de basura ni comprobador de préstamos. Así se compara con otros, y aquí es donde otros lenguajes aún van por delante.

Ridgun comparado con lenguajes muy usados
RidgunRustGoHaskellCPythonErlang / Elixir
MemoriaSe libera tras el último uso, lo decide el compilador; los valores compartidos se cuentan; regiones. Sin recolector y sin escribir tiempos de vida.Propiedad y préstamos, comprobados al compilar; tiempos de vida en el código.Recolector de basura.Recolector de basura.Manual (malloc y free).Conteo de referencias y un recolector de ciclos.Recolector de basura por proceso.
ParalelismoEn la sintaxis: || forman un grafo de dependencias; ||map, ||filter; agentes y canales.Hilos y async en el lenguaje; paralelismo de datos mediante bibliotecas.Gorrutinas y canales.Hilos, sparks y STM, mediante bibliotecas y el entorno de ejecución.Hilos y OpenMP, mediante bibliotecas y compiladores.Hilos limitados por el GIL en la versión habitual; procesos para el trabajo en paralelo.Procesos ligeros y mensajes.
Disposición del códigoUna función es una tabla: la firma como cabecera, una cláusula por fila y los argumentos en columnas. stable format las mantiene alineadas.Disposición libre; rustfmt.Disposición libre; gofmt.Sensible a la disposición; formateadores de la comunidad.Disposición libre; varios formateadores.Sensible a la sangría; formateadores de la comunidad.Disposición libre; mix format para Elixir.
TiposEstático, declarado en las firmas; tipos algebraicos; genéricos escritos A..Z; tensores con sus dimensiones comprobadas al compilar.Estático, inferido dentro de las funciones; traits.Estático; genéricos desde la 1.18.Estático, inferido; clases de tipos.Estático, débil.Dinámico; anotaciones opcionales.Dinámico; comprobación opcional.
Qué entregasUn ejecutable ELF64 estático para x86-64 o ARM64, escrito por el propio compilador: no hace falta cadena de herramientas de C.Un ejecutable nativo, mediante LLVM y un enlazador del sistema.Un ejecutable nativo, normalmente estático.Un ejecutable nativo, mediante una cadena de herramientas de C.Un ejecutable nativo.Código fuente ejecutado por un intérprete.Bytecode ejecutado por la máquina virtual BEAM.
Archivo de proyectobuild.rg, escrito en Ridgun.Cargo.toml (TOML).go.mod.Un .cabal o stack.yaml.Makefiles, CMake y otros.pyproject.toml (TOML).mix.exs (Elixir), rebar.config (términos de Erlang).
Escrito en sí mismoSí: compilador, herramienta de proyectos, bibliotecas, framework web y este sitio.Sí.Sí.En su mayor parte (GHC).Compiladores sobre todo en C y C++.No: el intérprete principal está en C.El compilador sí; la máquina virtual está en C.

Dónde van otros por delante hoy

Ridgun es joven. Estas son las carencias que conocemos y lo que está previsto para cada una.

Ridgun hoyLos lenguajes de arribaPrevisto
BibliotecasLas bibliotecas estándar, el framework web Solstice y sus addons, todo en el área de paquetes.Grandes registros de paquetes construidos durante muchos años.Bibliotecas de la comunidad, publicadas en el área de paquetes.
Herramientas para editoresColores de sintaxis y formato para VS Code, Emacs y gedit.Servidores de lenguaje, depuradores, perfiladores.Un servidor de lenguaje.
EstabilidadVersión 0.9: la sintaxis aún cambia entre versiones.Versiones estables con compatibilidad a largo plazo.La versión 1.0 congela la sintaxis.
Velocidad demostradaMejoras constantes entre versiones; aún sin comparativa publicada.Años de comparativas publicadas.Comparativas con C, publicadas con su código.

La forma más rápida de juzgarlo es probarlo: empieza en unos minutos, o lee el libro en tu idioma.