Nel 1987 o giù di lì, ho preso un lavoro con una società che mi ha assunto perché ero una di una manciata di persone che sapevano usare Revelation. La rivelazione, se non ne hai mai sentito parlare, era essenzialmente un'implementazione basata su PC del sistema operativo Pick - che, se non ne hai mai sentito parlare, prende il nome dal suo inventore, il favoloso Dick Pick. Si può dire molto sul sistema operativo Pick, in gran parte buono. Numerosi distributori di supermini (almeno Prime e MIPS) hanno utilizzato Pick o le loro implementazioni personalizzate.
Questa società era un negozio Prime e per i loro sistemi interni utilizzavano le informazioni. (No, quello era davvero il suo nome: era l'implementazione di Pick di Prime.) Avevano un contratto con lo stato per costruire un sistema basato su PC e avevano messo circa un anno nel loro progetto di Rivelazione prima che il ragazzo facesse tutto il lavoro, che era anche il loro direttore del MIS, decise che non poteva più fare entrambi i lavori e mi assunse.
Ad ogni modo, aveva stabilito una serie di standard di codifica per il loro software basato su Prime, molti dei quali derivati da due condizioni di base: 1) l'uso di terminali stupidi a 80 colonne e 2) il fatto che da quando Prime non Non ho un editor visivo, aveva scritto il suo. A causa della magica portabilità del codice Pick, aveva portato il suo editor in Revelation e aveva costruito l'intero progetto sul PC utilizzandolo.
La rivelazione, ovviamente, essendo basata su PC, aveva un editor a schermo intero perfettamente funzionante, e non si oppose quando superasti la colonna 80. Tuttavia, per i primi mesi che ero lì, ha insistito sul fatto che io uso il suo editor e i suoi standard.
Quindi, il primo standard era che ogni riga di codice doveva essere commentata. Ogni linea. Nessuna eccezione. La sua logica era che anche se il tuo commento dicesse esattamente quello che avevi appena scritto nel codice, dovendo commentare significava che almeno pensavi alla riga due volte. Inoltre, come ha sottolineato allegramente, aveva aggiunto un comando all'editor che formattava ogni riga di codice in modo da poter inserire un commento di fine riga.
Oh si. Quando hai commentato ogni riga di codice, è stato con i commenti di fine riga . In breve, i primi 64 caratteri di ogni riga erano per il codice, quindi c'era un punto e virgola e quindi avevi 15 caratteri per descrivere ciò che facevano i tuoi 64 caratteri. In breve, stavamo usando una convenzione del linguaggio assembly per formattare il nostro codice Pick / Basic. Ciò ha portato a cose che sembravano così:
EVENT.LIST[DATE.INDEX][-1] = _ ;ADD THE MOST RECENT EVENT
EVENTS[LEN(EVENTS)] ;TO THE END OF EVENT LIST
(In realtà, dopo 20 anni ho finalmente dimenticato la sintassi di continuazione della linea di R / Basic, quindi potrebbe essere sembrata diversa. Ma hai capito.)
Inoltre, ogni volta che è stato necessario inserire commenti multilinea, la regola era che si utilizzava una fioriera:
************************************************************************
** IN CASE YOU NEVER HEARD OF ONE, OR COULDN'T GUESS FROM ITS NAME, **
** THIS IS A FLOWER BOX. **
************************************************************************
Sì, erano richiesti quegli asterischi di chiusura su ciascuna linea. Dopotutto, se hai usato il suo editor, era solo un semplice comando dell'editor per inserire una fioriera.
Farlo abbandonare e farmi usare l'editor incorporato di Apocalisse fu una vera battaglia. All'inizio ha insistito, semplicemente perché quelle erano le regole. Quando ho obiettato che a) conoscevo già l'editor di Rivelazione b) era sostanzialmente più funzionale del suo editore, c) altri sviluppatori di Rivelazione avrebbero avuto la stessa prospettiva, ribatté che se non mi fossi allenato sul suo editore non lo avrei fatto essere mai stato in grado di lavorare sulla base di codice di Prime, che, come entrambi sapevamo, non sarebbe accaduto fino a quando l'inferno sarebbe rimasto intatto. Alla fine ha ceduto.
Ma gli standard di codifica furono gli ultimi ad andare. I commenti sui fiori in particolare sono stati una stupida perdita di tempo, e mi ha combattuto con le unghie e con i denti, dicendo che se avessi usato l'editor giusto per mantenerli sarebbe stato perfettamente facile. (Il tutto è diventato piuttosto passivo-aggressivo.) Alla fine mi sono arreso in silenzio, e da allora in poi tutto il codice che ho portato alle recensioni ha avuto i suoi preziosi commenti a forma di fiori.
Un giorno, dopo diversi mesi di lavoro, quando mi ero praticamente dimostrato più che competente (soprattutto in confronto alla straordinaria parata di altri programmatori che sono passati attraverso quell'ufficio mentre lavoravo lì), mi guardava alle spalle mentre io ha funzionato e ha notato che non stavo usando i commenti sui fiori. Oh, ho detto, ho scritto un formattatore di codice sorgente che converte i miei commenti nel tuo stile quando li stampo. È più facile che mantenerli nell'editor. Aprì la bocca, rifletté per un momento, la chiuse, se ne andò e non parlammo mai più degli standard di codifica. Entrambi i nostri lavori sono diventati più facili dopo.