Prefazione
Non era previsto che fosse così serio.
Nel dicembre del 2019 sono diventato papà e poi è arrivata la pandemia, che mi ha lasciato stordito: mi sono destreggiato nella vita con un neonato e ho cercato di mantenere un senso di "me stesso".
Al lavoro, ho dovuto unire due file CSV mentre programmavo in Rust e mi è sembrato molto più complicato di quanto avrebbe dovuto essere. Mi sono chiesto se ci fossero modi più semplici per farlo piuttosto che configurare SQLite. Così, come si fa spesso nello sviluppo di software, ho deciso di cimentarmi nella creazione di un mio algoritmo di unione.
All'epoca, ero piuttosto inesperto di Rust e non sapevo molto sull'ottimizzazione delle prestazioni. Così, mentre scrivevo con orgoglio il mio primo algoritmo di join, ho scoperto che la mia implementazione era molto più lenta di quella di panda. Questo risultato insoddisfacente ha piantato il seme di quello che sarebbe poi diventato Polars.
Questo mi ha portato a fare ricerche sui motori di database, a imparare Rust e a fare un sacco di tentativi ed errori nel corso dell'anno e mezzo successivo. Man mano che imparavo a conoscere meglio i database, gli algoritmi, le prestazioni, la memoria, il codice non sicuro e così via, i miei obiettivi si sono spostati: sono passato dal voler fare una join più veloce di quella di pandas a costruire un pacchetto DataFrame per Rust e, infine, un motore di query ad alte prestazioni che potesse competere con lo stato dell'arte del panorama Python.
Ho tratto ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access