Ho letto spesso sull'importanza della leggibilità e della manutenibilità. Oppure, leggo opinioni molto forti su quali caratteristiche di sintassi sono cattive o buone. O discussioni sui valori di alcuni paradigmi, come OOP.Qual è il ruolo della soggettività nella programmazione?
A parte questo, questa stessa domanda mi viene in mente ogni volta che leggo i dibattiti su SO o Meta su domande soggettive. Oppure leggi le domande sulle migliori pratiche e a volte trovi me stesso o altri in disaccordo.
Quale ruolo gioca la soggettività nel campo della programmazione?
A volte penso che giochi un ruolo importante. Gli sviluppatori di software sono ingegneri in un certo senso, ma anche persone. Gran parte della programmazione riguarda il codice leggibile dall'uomo. Questo è molto diverso dalla matematica o dalla fisica o da altre discipline con regole molto precise e strutturate. Qui la struttura e le regole esatte sono in gran parte nell'aria, mutevoli per un capriccio, e quindi la quantità di lingue esistenti. E una persona potrebbe trovare una lingua molto leggibile, e un'altra persona potrebbe trovare la propria lingua più confortevole.
Lo stesso con le pratiche. A una persona potrebbero non piacere certe pratiche accettate. Io stesso trovo che le classi di divisione in file diversi siano illeggibili, ad esempio.
Ma, non posso dire che le regole non hanno aiutato in generale. Alcune pratiche hanno e rendono la vita più facile. E i nuovi linguaggi hanno dato origine a sintassi e struttura che semplificano la vita. Sicuramente c'è stata una progressione verso il codice che è più facile da leggere e mantenere anche in considerazione di un gruppo di persone ampiamente diversificato. Quindi forse queste cose non sono così soggettive come pensavo.
Mi ricorda, in un certo senso, il design dell'interfaccia utente. Certamente è soggettivo, ma poi c'è un'intera disciplina coinvolta nella creazione di una buona interfaccia utente e tende a funzionare.
Esiste qualcosa di non soggettivo sulle idee alla base della manutenibilità, della leggibilità e di altre best practice? C'è qualcosa di tangibile da comprendere quando si sviluppa un nuovo linguaggio o si pensa a nuove pratiche?
Sarebbe ironico se questa domanda fosse chiusa come soggettiva (anche se spero di sicuro che non lo sia). –
Soggettività - è davvero un'area grigia –
Per quanto riguarda la leggibilità, non credo che la matematica e la fisica differiscano dalla programmazione come dici tu. Ho visto alcune brutte notazioni e alcune notazioni davvero belle che descrivono lo stesso concetto. –