Uso principalmente le lingue dinamiche. Per molti anni vedo esempi del mondo criptato staticamente come
const int STACK_SIZE = 100;
E penserò "wow, non posso pensare così". Capisco la gestione della memoria, la sintassi, i puntatori (principalmente). Per favore lasciami entrare nel tuo cervello per un secondo e analizza questo caso d'uso con me.
Diciamo che abbiamo un'applicazione a riga di comando che ci consentirà di gestire i dipendenti (eccitante!). Concentriamoci solo sull'aggiunta di nuovi dipendenti. Siamo una nuova startup alla moda che farà una luna di luna, quindi la dimensione dell'elenco dei dipendenti inizierà alle 1, ma alla fine aggiungeremo 7 miliardi di co-fondatori e forse più (alieni? Cani? Gatti?).
In ruby / python / javascript, vorrei solo creare un array e soffrire / refactare in seguito quando le prestazioni sono terribili. Ovviamente, useresti un database in C ++ o in un'altra lingua. Ma intratteniamolo per un secondo. Una persona C ++ potrebbe rompere il problema oltre una struttura di dati? Penso a questo problema come a un problema di "array". Ma forse qualcuno con più esperienza di basso livello pensa in questo modo?
- Crea un buffer per contenere l'elenco mentre l'utente aggiunge i nomi, questa può essere una dimensione fissa
- Svuota periodicamente il buffer in un file o qualcosa del genere.
È realistico? Capisco che i requisiti qui sono artificiosi e vaghi. Ma diciamo che uno sviluppatore C ++ stava creando questa piccola applicazione per se stessi. Avrebbero semplicemente usato un puntatore intelligente o qualcosa che sarebbe cresciuto nel tempo o avrebbero creato un std::string*
?
Lasciatemi fare un altro esempio. Supponiamo che tu scriva un problema per scorrere un file e fare qualcosa con ogni linea. Alcune persone (incluso me stesso) iniziano a pensare con un piccolo file di esempio. Successivamente, scoprirai che il tuo problema non è in grado di gestire file di grandi dimensioni. Ops. A volte mi sento come se i programmatori di livello inferiore si pre-ottimizzassero naturalmente per disciplina o esperienza per leggere il file in un buffer o qualcosa del genere. Sei d'accordo?