Re-quoting per contesto e comprensione più semplice:
"Il debug è due volte più difficile della scrittura del codice in primo luogo. Pertanto, se si scrive il codice nel modo più intelligente possibile, non si è, per definizione, abbastanza intelligenti da eseguirne il debug."
Ciò che Brian Kernighan ha scritto qui si riferisce ovviamente alla convoluzione, e ha erroneamente usato la parola intelligente.
"Il debug è due volte più difficile della scrittura del codice in primo luogo. Pertanto, se si scrive il codice il più [contorto] possibile, non si è, per definizione, abbastanza intelligenti da eseguirne il debug."
convoluzione:
A thing that is complex and difficult to follow.
Intelligente:
Showing intelligence or skill; ingenious
I programmatori istruiti sanno che il semplice codice è geniale. Il codice più intelligente possibile dovrebbe essere semplice per definizione. I programmatori istruiti eviteranno anche di lavorare e scrivere codice contorto come la peste. Trasformeranno anche il codice contorto in codice intelligente ogni volta che ne avranno la possibilità. Il codice di solito inizia contorto e si avvicina all'intelligenza poiché la conoscenza del dominio e la comprensione delle capacità cognitive umane nella programmazione sono meglio comprese attraverso l'esperienza e la conoscenza condivisa.
A causa della popolarità di questa citazione e del fatto che Brian Kernighan sia piuttosto popolare nel settore, questo uso improprio della parola ha un impatto sociale negativo e sinceramente mi piacerebbe vedere quello affrontato dall'uomo stesso. Prima di scrivere questo articolo ho provato a vedere se potevo semplicemente inviargli un'e-mail, ma non sono riuscito a trovare le informazioni di contatto e-mail che ho capito :(.
L'impatto sociale negativo che ho visto è che altri programmatori stanno ostracizzando i loro colleghi più intelligenti, perché ora vedono l'intelligenza come un problema. Il vero problema sono gli stupidi colleghi che pensano di essere intelligenti facendo le cose in un nuovo modo unidiomatico e inventando costantemente nuove cose quando non c'è vantaggio invece di ottenere e comprendere la comunità più grande e riutilizzare idee intelligenti il più possibile.
Devo chiarire che spesso ottenere una comprensione è più difficile che inventare la tua. A causa del problema comune nell'industria per scadenze non realistiche, inventare il proprio per il problema di nicchia più piccolo verrà utilizzato per risparmiare tempo. Ciò si basa sull'osservazione che le cose utili e riutilizzabili di solito prendono di mira una nicchia più ampia o forniscono un'astrazione utile per l'invenzione. Si basa anche sul fatto che le persone si rivolgono a grandi nicchie per fare più soldi, quando spesso questo rende lo strumento estremamente difficile da usare a causa della complessità implicata nel rendere qualcosa utilizzabile per un'ampia area di applicazioni.
L'altro impatto sociale negativo è che questo impedisce il progresso e il desiderio di comprendere perché nel nostro mondo egocentrico rinunceremo immediatamente alla nostra mancanza di comprensione e cancelleremo il codice di come contorto anche se, una volta compresa, l'idea è effettivamente abbastanza intelligente.
TODO Vorrei citare alcuni riferimenti, ma vorrei anche la mancanza di riferimenti per non ostacolare la mia capacità di condividere informazioni, quindi citerò rapidamente ciò che ricordo come fonte delle mie informazioni e forse troverò le informazioni reali giorno (o puoi trovarlo per me! :)
- Il discorso di Guido Van Rossum sui loop degli eventi e su come è arrivato a capirli
- Un dipendente GitHub che ha dichiarato di evitare di assumere persone intelligenti su Y-Combinator
- Gran parte della discussione e dell'apprendimento che si svolgono nella comunità di Python. La community di Python è particolarmente critica nei confronti delle nuove idee, ma non ignora le nuove idee che non capiscono a portata di mano, e in genere puoi vedere le funzionalità che sono state inizialmente viste come contorte, vedere la luce del giorno come una funzionalità / pacchetto del linguaggio di base.
- La mia esperienza e opinione professionale basata sulle mie osservazioni di 10000 piedi. Non riesco davvero a vedere i dettagli per illuminare da ogni parte lassù :( Spero che la tua esperienza e osservazione ti diranno la stessa cosa e qualcun altro possa commentare di seguito per dare un merito a questa risposta.
Sentiti libero di aggiungere le tue citazioni! Inoltre, sentiti libero di aggiungere virgole al mio testo. Non ho aggiornato la mia conoscenza dell'uso della virgola in inglese da un po 'di tempo ...