Saltar ao contido
Ridgun
Galego

Por que Ridgun

Que fai Ridgun de xeito diferente.

Ridgun toma ideas de Haskell, Rust, Go, Erlang e das linguaxes vectoriais, e reúneas nun só sitio: código disposto en táboas, paralelismo na sintaxe e memoria liberada sen recolector de lixo nin comprobador de préstamos. Velaquí como se compara e onde outras linguaxes aínda van por diante.

Ridgun comparado con linguaxes moi usadas
RidgunRustGoHaskellCPythonErlang / Elixir
MemoriaLibérase tras o último uso, decídeo o compilador; os valores compartidos cóntanse; rexións. Sen recolector e sen escribir tempos de vida.Propiedade e préstamos, comprobados ao compilar; tempos de vida no código.Recolector de lixo.Recolector de lixo.Manual (malloc e free).Conta de referencias e un recolector de ciclos.Recolector de lixo por proceso.
ParalelismoNa sintaxe: || marca as liñas dun grafo de dependencias; ||map, ||filter; axentes e canles.Fíos e async na linguaxe; paralelismo de datos mediante bibliotecas.Gorrutinas e canles.Fíos, sparks e STM, mediante bibliotecas e o tempo de execución.Fíos e OpenMP, mediante bibliotecas e compiladores.Fíos limitados polo GIL na versión habitual; procesos para o traballo en paralelo.Procesos lixeiros e mensaxes.
Disposición do códigoUnha función é unha táboa: a sinatura como cabeceira, unha cláusula por fila e os argumentos en columnas. stable format mantenas aliñadas.Disposición libre; rustfmt.Disposición libre; gofmt.Sensible á disposición; formateadores da comunidade.Disposición libre; varios formateadores.Sensible ao sangrado; formateadores da comunidade.Disposición libre; mix format para Elixir.
TiposEstático, declarado nas sinaturas; tipos alxébricos; xenéricos escritos A..Z; tensores coas súas dimensións comprobadas ao compilar.Estático, inferido dentro das funcións; traits.Estático; xenéricos desde a 1.18.Estático, inferido; clases de tipos.Estático, débil.Dinámico; anotacións opcionais.Dinámico; comprobación opcional.
Que entregasUn executable ELF64 estático para x86-64 ou ARM64, escrito polo propio compilador: non fai falta cadea de ferramentas de C.Un executable nativo, mediante LLVM e un enlazador do sistema.Un executable nativo, normalmente estático.Un executable nativo, mediante unha cadea de ferramentas de C.Un executable nativo.Código fonte executado por un intérprete.Bytecode executado pola máquina virtual BEAM.
Ficheiro de proxectobuild.rg, escrito en Ridgun.Cargo.toml (TOML).go.mod.Un ficheiro .cabal ou stack.yaml.Makefiles, CMake e outros.pyproject.toml (TOML).mix.exs (Elixir), rebar.config (termos de Erlang).
Escrito en si mesmoSi: compilador, ferramenta de proxectos, bibliotecas, framework web e este sitio.Si.Si.Na súa maior parte (GHC).Compiladores sobre todo en C e C++.Non: o intérprete principal está en C.O compilador si; a máquina virtual está en C.

Onde outras van por diante hoxe

Ridgun é novo. Estas son as carencias que coñecemos e o que está previsto para cada unha.

Ridgun hoxeAs linguaxes de arribaPrevisto
BibliotecasAs bibliotecas estándar, o framework web Solstice e os seus addons, todo na área de paquetes.Grandes rexistros de paquetes construídos durante moitos anos.Bibliotecas da comunidade, publicadas na área de paquetes.
Ferramentas para editoresCores de sintaxe e formato para VS Code, Emacs e gedit.Servidores de linguaxe, depuradores, perfiladores.Un servidor de linguaxe.
EstabilidadeVersión 0.9: a sintaxe aínda cambia entre versións.Versións estables con compatibilidade a longo prazo.A versión 1.0 conxela a sintaxe.
Velocidade demostradaMelloras constantes entre versións; aínda sen comparativa publicada.Anos de comparativas publicadas.Comparativas con C, publicadas co seu código.

A forma máis rápida de xulgalo é probalo: comeza en poucos minutos, ou le o libro na túa lingua.