Per què Ridgun
Què fa Ridgun de manera diferent.
Ridgun pren idees de Haskell, Rust, Go, Erlang i els llenguatges d'arrays, i les reuneix en un sol lloc: codi disposat en taules, paral·lelisme a la sintaxi i memòria alliberada sense recol·lector de brossa ni comprovador de préstecs. Aquí tens com es compara i on els altres llenguatges encara van per davant.
| Ridgun | Rust | Go | Haskell | C | Python | Erlang / Elixir | |
|---|---|---|---|---|---|---|---|
| Memòria | S'allibera després de l'últim ús, ho decideix el compilador; els valors compartits es compten; regions. Sense recol·lector i sense escriure temps de vida. | Propietat i préstecs, comprovats en compilar; temps de vida al codi. | Recol·lector de brossa. | Recol·lector de brossa. | Manual (malloc i free). | Comptatge de referències i un recol·lector de cicles. | Recol·lector de brossa per procés. |
| Paral·lelisme | A la sintaxi: || formen un graf de dependències; ||map, ||filter; agents i canals. | Fils i async al llenguatge; paral·lelisme de dades mitjançant llibreries. | Goroutines i canals. | Fils, sparks i STM, mitjançant llibreries i l'entorn d'execució. | Fils i OpenMP, mitjançant llibreries i compiladors. | Fils limitats pel GIL a la versió habitual; processos per a la feina en paral·lel. | Processos lleugers i missatges. |
| Disposició del codi | Una funció és una taula: la signatura com a capçalera, una clàusula per fila i els arguments en columnes. stable format les manté alineades. | Disposició lliure; rustfmt. | Disposició lliure; gofmt. | Sensible a la disposició; formatadors de la comunitat. | Disposició lliure; diversos formatadors. | Sensible al sagnat; formatadors de la comunitat. | Disposició lliure; mix format per a Elixir. |
| Tipus | Estàtic, declarat a les signatures; tipus algebraics; genèrics escrits A..Z; tensors amb les dimensions comprovades en compilar. | Estàtic, inferit dins de les funcions; traits. | Estàtic; genèrics des de la 1.18. | Estàtic, inferit; classes de tipus. | Estàtic, feble. | Dinàmic; anotacions opcionals. | Dinàmic; comprovació opcional. |
| Què lliures | Un executable ELF64 estàtic per a x86-64 o ARM64, escrit pel mateix compilador: no cal cap cadena d'eines de C. | Un executable natiu, mitjançant LLVM i un enllaçador del sistema. | Un executable natiu, normalment estàtic. | Un executable natiu, mitjançant una cadena d'eines de C. | Un executable natiu. | Codi font executat per un intèrpret. | Bytecode executat per la màquina virtual BEAM. |
| Fitxer de projecte | build.rg, escrit en Ridgun. | Cargo.toml (TOML). | go.mod. | Un fitxer .cabal o stack.yaml. | Makefiles, CMake i altres. | pyproject.toml (TOML). | mix.exs (Elixir), rebar.config (termes d'Erlang). |
| Escrit en si mateix | Sí: compilador, eina de projectes, llibreries, framework web i aquest lloc. | Sí. | Sí. | En gran part (GHC). | Compiladors sobretot en C i C++. | No: l'intèrpret principal està escrit en C. | El compilador sí; la màquina virtual està escrita en C. |
On van per davant els altres, avui
Ridgun és jove. Aquestes són les mancances que coneixem i el que està previst per a cadascuna.
| Ridgun avui | Els llenguatges de dalt | Previst | |
|---|---|---|---|
| Llibreries | Les llibreries estàndard, el framework web Solstice i els seus addons, tot a l'àrea de paquets. | Grans registres de paquets construïts al llarg de molts anys. | Llibreries de la comunitat, publicades a l'àrea de paquets. |
| Eines per a editors | Colors de sintaxi i format per a VS Code, Emacs i gedit. | Servidors de llenguatge, depuradors, perfiladors. | Un servidor de llenguatge. |
| Estabilitat | Versió 0.9: la sintaxi encara canvia entre versions. | Versions estables amb compatibilitat a llarg termini. | La versió 1.0 congela la sintaxi. |
| Velocitat demostrada | Millores constants entre versions; encara sense comparativa publicada. | Anys de comparatives publicades. | Comparatives amb C, publicades amb el seu codi. |
La manera més ràpida de jutjar-ho és provar-ho: comença en uns quants minuts, o llegeix el llibre en la teva llengua.