Rust, dar Lisp: când vrei performanță, dar sufletul cere paranteze
Dacă visați la viteza lui Rust cu sintaxa lui Lisp — acest proiect e pentru voi, dar atenție: parantezele pot fi contagioase.

Cunoașteți senzația când scrieți în Rust, totul e strict, tipizat, compilatorul vă ceartă pentru orice greșeală, dar în suflet vreți ceva mai... cu paranteze? Nu, nu durerea de spate de la statul la monitor, ci exact paranteze rotunde, multe-multe, ca în Lisp. Dezvoltatorul ThatXliner a rezolvat această dilemă creând proiectul cu numele sugestiv Rust but Lisp.
Ideea e simplă: este un meta-program care transpune un subset de Lisp în cod Rust sintactic corect. Scrii în stil (defun factorial (n) (if (< n 2) 1 (* n (factorial (- n 1))))), iar la ieșire obții o funcție Rust normală. Adevărul e că compilatorul Rust tot vă va urî, dar pentru alte păcate.
Ce este sub capotă?
Proiectul este un preprocesor scris chiar în Rust (ce altceva?). El parsează sintaxa asemănătoare Lisp și generează cod Rust. Momentan sunt suportate construcții de bază: funcții, operatori condiționali, aritmetică. În planuri sunt macro-urile (fără ele nu se poate) și lucrul cu closures.
De ce este necesar?
Sincer, utilitatea practică e îndoielnică. Dar ca proof of concept — e o ocazie excelentă să vă scărpinați în cap. Poate salva pe cei care au trecut de la Clojure la Rust și acum suferă de sevraj fără notația prefixată. Sau poate doar un mod de a vă complica viața la deploy: imaginați-vă cum pipeline-ul CI/CD încearcă să compileze codul vostru Lisp într-un binar Rust.
Comentariul studioului METABYTE
Noi, desigur, iubim experimentele, dar vă sfătuim să nu abuzați de astfel de hibrizi în producție. Dacă totuși vreți să combinați incompatibilul — mai bine încredințați-ne nouă, avem experiență în domesticirea tehnologiilor eterogene fără pierderi de performanță și celule nervoase.
URMATORUL PAS
Ti-a placut abordarea?
Aplicam aceleasi principii in proiectele clientilor: AI, automatizari, produse care nu se sting dupa lansare.