2025-12-24

24 DICEMBRE

Eh sono passati 20 giorni dall'ultimo post. Ho scritto parecchio codice ed è il caso di riassumere (e mi sa che dimenticherò di sicuro qualcosa).

Dopo zig ho scoperto clang e llvm. Ho quindi fatto esperimenti e creato un piccolo compilatore BASIC che genera llvm poi da compilare. La prima versione in Python come con _c e poi una versione successiva in c. Non sono usciti dallo stadio esperimento perché non sono arrivato alla minima stabilità. Ho quindi provato generando codice c poi da compilare e li le cose sono andate meglio. In altri tempi era un ottimo risultato ma adesso con ai e bacon disponibile direi progetto inutile.

Ho quindi fatto ls. Local Storage è un implementazione in ram di un array associativo a chiavi persistenti in php. Non è un database completo ma è un ottimo modo per registrare in modo velocissimo dati con pochi comandi semplici. Le prestazioni mi paiono molto buone e probabilmente nei prossimi giorni lo pubblicherò su github.

Proprio stasera ho scritto un mini script che mi permette di spostare le finestre da uno schermo all'altro senza perdere la dimensione della finestra che succedeva con i comandi di mate. E' scritto in bash e funziona solo con Xorg ma non ho visto difetti.

Pero ora è tutto intanto buon natale!!



2025-12-05

Un occhiata a zig

ciao,
ieri ho provato Zig, il nuovo linguaggio di programmazione che dovrebbe essere il successore di C/C++. Ma esistono altre alternative (Go, Rust, F#, ecc.).
Dopo averlo visto solo superficialmente, ho notato che alcune cose sono identiche a quelle del mio _c scritto qualche settimana fa, pura coincidenza. In generale non mi è piaciuto il fatto che abbiano rifattorizzato la std, la libreria di base. Cambiare la struttura, cancellare intere sezioni, spostare, per esempio, random in crypto, mi fa pensare a una pessima pianificazione. Inoltre non vedo razionalità nello schema.
Posso accettare un'organizzazione complessa per motivi di prestazioni, ma da quello che ho visto la velocità è quella del C.
Alla fine, il mio _c, che elimina i punti e virgola e le graffe che fanno sempre problemi, implementa comandi brevi (ad esempio il dot come printf) e usa tipi semplici ed autoesplicativi, con un supporto stringa ben fatto ma ancora migliorabile, è forse meglio. Inoltre c'è il Jolly, che puoi solo tradurre, e il sorgente generato è un C perfettamente leggibile e facile da maneggiare. È vero che è un giocattolo solo per cose semplici, ma c'è la possibilità di espanderlo. Lo avevo considerato inutile, ma non mi sembra che Zig sia necessariamente molto meglio; forse è il caso di lavorarci ancora un po’, magari portando altre idee interessanti, come una piccola AI dedicata che funzioni da wizard del codice.

Andiamo avanti