simloop - Una libreria per simulazioni a eventi discreti
Pensate che creare nuove librerie per lo sviluppo di applicazioni, nell'epoca dell'IA e dei grandi modelli di linguaggio sia una tendenza un pò vintage e/o superata? Bhè, probabilmente avete ragione. Se già da tempo l'abitudine di reinventare la ruota e riscrivere framework già presenti sul mercato è quasi sempre bandita nel contesto dello sviluppo software, figurarsi adesso che con pochi prompt è possibile sfruttare il modello di turno per riprodurre funzionalità complesse ed inserirle nel proprio progetto!
Eppure, nonostante tutto ciò sia vero, a me fa piacere ogni tanto riassaporare il gusto di progettare una semplice libreria, con gli occhi della maturità e, ovviamente, con a fianco un fidato modello di coding AI da utilizzare non tanto come sostituto progettista, ma come scrupoloso assistente per velocizzare l'implementazione di alcune parti più noiose dove non c'è un grande valore concettuale.
Da questi presupposti ho dato vita a Simloop, una libreria general-purpose per chi vuole scriversi in autonomia degli scenari, eseguire delle simulazioni con sorgenti probabilistiche e raccogliere interessanti statistiche su quello che è successo nel corso del tempo di simulazione. Il tutto con il comfort del typing system di Typescript, ormai noto ai più, e un'architettura di API pensata sia per la semplicità ma anche per fornire un set abbastanza completo di funzionalità. Ho raccolto concetti e documentazione nel sito ufficiale del progetto.
Simloop - A general-purpose discrete event simulation (DES) framework for Node.js, written in TypeScript.
La libreria è rilasciata con licenza MIT ed è scaricabile/modificabile liberamente. La trovate su Github ed NPM, e potete già includerla nei vostri progetti.
Nella documentazione ci sono svariati esempi che ne mostrano le caratteristiche principali e il funzionamento di tutte le API fin qui sviluppate:
Esempi e scenari d'uso delle primitive ed API di Simloop (risorse, code, state, statistiche, ecc...).
Non ha la pretese di essere un framework completo (al momento della scrittura, la libreria è alla sua versione 0.5.1) ma si propone come una valida base per chi vorrebbe simulare sistemi reali senza sganciarsi da un linguaggio ben noto come Typescript, dove il numero di framework di questo tipo è più limitato rispetto ad altri linguaggi (Python, Java, ecc...).
In un prossimo articolo cercherò di illustrare qualche caso d'uso più concreto che sfrutti appieno le funzionalità della libreria!

