Delphi/FPC

QuickLib, un coltellino svizzero per Delphi

L’ampiezza, la semplicità e la versatilità di QuickLib ne fanno una libreria da considerare con attenzione per ogni progetto in Delphi.

Da qualche tempo, il GetIt Package Manager di Delphi offre l’installazione di QuickLib, una libreria open source per Delphi e (parzialmente) per FPC che facilita il lavoro su un’ampia gamma di tecnologie. Si può dire, anzi, che è utile per qualsiasi applicazione moderna cross-platform e, a mio avviso, rappresenta un importante valore aggiunto per tutto l’ambiente Delphi/FPC. Ci sono, però, alcune cautele da osservare prima di adottarla definitivamente.

Leggendo le funzionalità offerte da QuickLib, cosa che vi consigliamo di fare subito, salta all’occhio che non si tratta di una libreria specializzata. Le sue aree di lavoro spaziano dall’implementazione di pattern molto di moda, come l’IOC, al supporto per i processi e i servizi di Windows, dalla gestione ad ampio raggio di JSON e YAML al supporto di Linq per liste e array. A tutto ciò si aggiunge una quantità di classi che semplificano l’uso di classi native, dai thread agli array.

In breve, le sue funzionalità ricadono nelle aree seguenti:

  • Attraverso la serializazzione con JSON o YAML, per la gestione dei quali sono fornite classi specifiche, permette di gestire la persistenza degli oggetti, di mappare le proprietà di due oggetti, di gestire configurazioni.
  • Introduce sistemi di indicizzazione e interrogazioni su liste generiche e array, anche attraverso la sintassi Linq.
  • Permette la gestione di file con servizi cloud come Amazon e Azure.
  • Facilita la gestione dei dati anche introducendo nuovi tipi, controlli di validità e un sistema di caching.
  • Implementa il pattern Inversion of Control (IoC).
  • Semplifica la gestione di Thread e Task, anche attraverso lo scheduling dei Task e la gestione di Fail e Retry policies.
  • Contiene classi per interagire con processi e servizi di Windows, per monitorare i cambiamenti di un file.
  • Contiene una classe per creare server HTTP, gestisce l’invio di e-mail con SMTP e aiuta a lavorare con gli indirizzi IP.
  • Aiuta il debug delle applicazioni con strumenti per gestire i log su file e via consolle, e misurare le prestazioni dei metodi.
  • Inoltre, offre alcune funzioni utili per la crittografia, la generazione di password, e il lavoro con date, stringhe, stream e file.

Proprio a causa della sua vastità, quindi, può sembrare un po’ ostica e, almeno nelle sue funzioni più profonde tipo RTTI o Json, inizialmente può esserlo; ma la curva di apprendimento non è tanto piatta da sconsigliarne lo studio, tutt’altro.

Perché sì

I motivi per adottare la libreria QuickLib come strumento di uso quotidiano sono molti:

  • Copre una notevole quantità di esigenze che si incontrano nello sviluppo moderno.
  • Raccoglie alcuni tips presenti sui più popolari siti dedicati alla programmazione, come stackoverflow.com, risparmiando lunghi lavori di ricerca.
  • Il suo codice è, in generale, molto comprensibile e consente di apportare eventuali correzioni in tempi più che ragionevoli.

Perché no

In teoria non ci sono reali motivi per non adottare QuickLib; la pratica, però, suggerisce di usarla con prudenza, perché è un tool non del tutto maturo. La compilazione genera una gran quantità di hint e di warning, segno di una stesura del codice non ancora definitiva.

  • In qualche circostanza, si verificano dei memory leak, che è utile inoltrare con gli eventuali work around all’autore, attraverso le apposite sezioni di GitHub.
  • Un’utile operazione preliminare, inoltre, consiste nell’accertarsi che le parti della libreria che si intende utilizzare siano compatibili con il sistema per cui si sta sviluppando: in alcuni casi, infatti, il supporto per Ios e Android è ancora incompleto.
  • Allo stesso modo occorre verificare la perfetta compatibilità con FPC che, per quanto sia decisamente buona, non sembra ancora del tutto completa.

Sul campo

Applicata a un progetto Open Source di prossimo rilascio, QuickLib ha dato buona prova di sé, riducendo drasticamente il lavoro necessario alla gestione dei file Json; in un altro caso, la parte relativa alle funzioni RTTI è stata sostituita da codice autoprodotto in attesa che alcuni problemi vengano risolti. Complessivamente, la scelta è quella di contuare a usare la libreria contribuendo a segnalare e risolvere i provlemi a mano amano che si incontrano.

Il verdetto

QuickLib è una buona libreria, che complessivamente può aiutare a velocizzare la scrittura di molte operazioni comuni, ma richiede alcune attenzioni. Se non siete disposti a investire un po’ di tempo per controllarne ed eventualmente correggerne i possibili difetti, cercate un’alternativa; in caso contrario, con un piccolo sforzo, in molte circostanze potrà diventare il vostro coltellino svizzero per Delphi e FPC.

Paolo Morandotti

Professionista nel campo del software con trent'anni di esperienza, ama studiare le ricadute sociali delle tecnologie sulle quali ha realizzato vari programmi radiofonici.

Recent Posts

Riflessioni sulla filatelia tematica

Gli articoli sulla filatelia tematica, vista da una prospettiva semantica e semiotica, sono elencati sotto…

2 anni ago

Da Gliwice a Grigoriopol?

Il paragone tra Gliwice e Grigoriopol è spontaneo; ma quanto è giustificato? Analizziamo i fatti…

2 anni ago

La comunicazione russa e il conflitto in Ucraina

Alcune considerazioni sulla comunicazione russa che ha preceduto il conflitto in Ucraina spingono al pessimismo.

2 anni ago

L’unità narrativa nella filatelia tematica

Definire un'unità narrativa nella filatelia tematica può rendere lo sviluppo tematico più completo e coinvolgente,…

2 anni ago

Un orologio multiuso per Delphi

TplFmxClock è il nuovo componente per Delphi rilasciato come open source da morandotti.it. Si tratta…

2 anni ago

Filatelia tematica e multimedialità

Concludiamo la serie di articoli sulla filatelia tematica affrontando una delle sfide più urgenti: quella…

2 anni ago