Det tror jeg er en veldig god innstilling generelt. Forbausende nok er det ikke alle som er enig. Noen er mer opptatt av at å skrive koden skal være smertefri for dem. Personlig synes jeg det er et ikke-tema siden man alltid kan gå over å rydde etter at man har skrevet koden, men det er altså subjektivt.
Ja, godt poeng. Det danner seg en viss standard for et språk over tid. Jeg tror dette har litt med mønstergjenkjenning å gjøre som jeg nevnte, bare på et mye høyere nivå. Det er også som du sier syntax som bestemmer hvilket spillerom man har i valg av formattering, og det vil jo påvirke en del det og.
Her er du inne på en viktig ting synes jeg. Det er noe stort sett alle gjør i alle språk. Det å bruke formattering til å skille konsepter fra hverandre. Vi bruker feks indentering for å skille innsiden av en funksjon fra utsiden:
function(a){
if(a === 'foo'){
console.log('it's foo')
}else{
console.log('it's not foo')
}
}
Er det bare subjektivt at denne formatteringen er dårligere? Jeg tror ikke det. Det har med måten hjernen vår prosesserer informasjon på. Den gjør det i bolker. Hvis alt ligger på samme “nivå” i koden må man også lese alt som om det var på samme nivå. Hvis man skiller ting fra hverandre visuelt vil man kunne hoppe fra konsept til konsept uten å lese detaljene.
Noen flere eksempler:
tlf: 123 45 678
serienr: xxxx-xxxx-xxxx-xxxx
kidnr: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Her er det ikke konsepter som skilles engang, men helt tilfeldig valgte biter av tall eller tekst. Tror vi alle kan være enige om at det er en pain in the ass å lese kidnr, mens tlf og serienr er litt lettere. Det samme fenomenet er like gyldig i kode:
if(foo === 2 && /^\d+\w[a-d]*$/.test(bar) && baz[0]*4 !== 'faz' && ...)
På et eller annet tidspunkt begynner hjernen å slite med å skille ting fra hverandre. Korttidshukommelse er også et tema her tror jeg. Spørsmålet er kanskje når det blir for mye, og det er subjektivt. Det objektive hadde vært å målt dette på hele befolkningen av programmerere, og funnet ut hvor minst 90% av programmerere synes det var lett å lese (eller noe sånt).
Når det kommer til standardisering av formattering har jeg tenkt litt mer på det, og jeg tror det bunner ut i det jeg vil kalle rot. Hvis alt ser likt ut bruker ikke hjernen noe ekstra tid på å finne ut hvorfor noe ser annerledes ut. Det samme gjelder rot i form av unødvendige kommentarer, kommentert ut kode, osv. Vi bruker bittelitt tid og energi på alle disse tingene. Jeg lurer faktisk på om det er bedre med et komplett kaos enn bare litt rot her og der. Hvis det er kaos gir man kanskje bare opp
Men debattene handler vel som oftest ikke om de åpenbare tinga som er nevnt her. Det er jo tabs og { som folk vil drepe for. Tabs tror jeg er et rent teknisk problem, så den er ikke så interessant imo. Curly braces har derimot noe med hvordan koden bolkes, samt størrelsen på koden, så her lurer jeg på om det kan være noe mer. Det samme gjelder bruk av whitespace i expressions, og mellom parenteser osv. Jeg tror nok at hvis det finnes noe objektivt bedre for hjernen her, så kan det ikke være store forskjellen. Men det er ikke dermed sagt at det ikke kan ha en påvirkning over tid, særlig i kombinasjon med andre problemer. Kanskje du blir litt mindre sliten i hodet hvis det er på den ene måten fremfor den andre.
Skulle gjerne likt å sett et studie av ulike kodebaser, og en spørreundersøkelse til de som jobber med kodebasen. Er det noen korrelasjon mellom bugs, glade/frustrerte utviklere, standard formattering, rot, hvor curly braces puttes, etc. Må google litt nå…