Quando si scelgono le funzionalità per le librerie standard, è necessario tenere conto di molte cose.
Uno di questi è quanto sia fondamentale o fondamentale una determinata funzionalità. Se non verrà utilizzato quotidianamente da un consistente gruppo di utenti, probabilmente non appartiene a una libreria standard. Ogni funzionalità richiede tempo e risorse per progettare, implementare, integrare e garantire la qualità di. Entrambi sono limitati e devono essere condivisi tra tutte le possibili caratteristiche. Infine, anche supponendo che le risorse sarebbero disponibili, il quadro più ampio deve essere preso in considerazione. Le biblioteche standard mirano generalmente a fornire un insieme relativamente minimo di strumenti generici. L'aggiunta di funzionalità superflue fa gonfiare una libreria, rendendo più difficile l'uso e la manutenzione.
I progettisti di librerie standard devono valutare tutte queste qualità l'una contro l'altra. In caso di questa particolare funzionalità, alcuni hanno preso una decisione per questo, alcuni contro.
Anche quando la libreria standard non fornisce questa funzionalità direttamente sul blocco, può essere facilmente implementata con un piccolo codice. In casi tipici, tutto si riduce alla scelta di un indice casuale in una matrice o all'ordinamento di una raccolta utilizzando una funzione di confronto casuale e la restituzione del primo / ultimo elemento. Non sorprende che quasi tutte le lingue forniscano un generatore di numeri casuali e una funzione di ordinamento generica nella sua libreria standard.
A post classico di Eric Lippert che in qualche modo tocca l'argomento.