Mniej więcej w 1987 roku podjąłem pracę w firmie, która mnie zatrudniła, ponieważ byłem jednym z nielicznych ludzi, którzy wiedzieli, jak korzystać z Revelation. Revelation, jeśli nigdy o nim nie słyszałeś, było w istocie implementacją systemu operacyjnego Pick na PC - który, jeśli nigdy o nim nie słyszałeś, ma swoją nazwę od swojego wynalazcy, bajecznie nazwanego Dick Pick. Wiele można powiedzieć o Pick OS, większość z nich jest dobra. Wielu dostawców supermini (przynajmniej Prime i MIPS) korzystało z Pick lub ich własnych niestandardowych implementacji.
Ta firma była sklepem Prime, a do swoich wewnętrznych systemów korzystała z informacji. (Nie, tak naprawdę miała na imię: to była implementacja Pick'a przez Prime.) Mieli kontrakt ze stanem na zbudowanie systemu opartego na PC i poświęcili około roku na projekt Revelation, zanim facet wykonał całą pracę, który był także ich dyrektorem MIS, zdecydował, że nie może już wykonywać obu prac i zatrudnił mnie.
W każdym razie ustalił szereg standardów kodowania dla ich oprogramowania opartego na Prime, z których wiele wywodzi się z dwóch podstawowych warunków: 1) użycia 80-kolumnowych głupich terminali i 2) faktu, że ponieważ Prime nie nie miał edytora wizualnego, napisał swój własny. Ze względu na magiczną przenośność kodu Pick, przeniósł swój edytor do Revelation i zbudował cały projekt na komputerze, używając go.
Revelation, oczywiście, działając na PC, miał doskonały edytor pełnoekranowy i nie sprzeciwiał się, kiedy przekroczyłeś kolumnę 80. Jednak przez pierwsze kilka miesięcy tam byłem, nalegał, żebym użył jego edytora i jego standardy.
Tak więc pierwszym standardem było to, że każdy wiersz kodu musiał być komentowany. Każda linia. Bez wyjątków. Jego uzasadnieniem było to, że nawet jeśli Twój komentarz mówił dokładnie to, co właśnie napisałeś w kodzie, konieczność komentowania oznaczała, że przynajmniej dwa razy pomyślałeś o tym wierszu. Ponadto, jak radośnie zaznaczył, dodał polecenie do edytora, które sformatowało każdą linię kodu, aby można było umieścić komentarz na końcu linii.
O tak. Kiedy komentowałeś każdy wiersz kodu, był to komentarz na końcu wiersza . Krótko mówiąc, pierwsze 64 znaki w każdym wierszu były przeznaczone na kod, potem był średnik, a następnie było 15 znaków na opisanie tego, co robiły twoje 64 znaki. Krótko mówiąc, używaliśmy konwencji języka asemblera do formatowania naszego kodu Pick / Basic. Doprowadziło to do rzeczy, które wyglądały tak:
EVENT.LIST[DATE.INDEX][-1] = _ ;ADD THE MOST RECENT EVENT
EVENTS[LEN(EVENTS)] ;TO THE END OF EVENT LIST
(Właściwie po 20 latach w końcu zapomniałem składni kontynuacji wiersza R / Basic, więc mogło wyglądać inaczej. Ale masz pomysł.)
Dodatkowo, ilekroć trzeba było wstawić komentarze wielowierszowe, obowiązuje zasada, że używasz skrzynki na kwiaty:
************************************************************************
** IN CASE YOU NEVER HEARD OF ONE, OR COULDN'T GUESS FROM ITS NAME, **
** THIS IS A FLOWER BOX. **
************************************************************************
Tak, te zamykające gwiazdki w każdym wierszu były wymagane. W końcu, jeśli używałeś jego edytora, było to tylko proste polecenie edytora, aby wstawić skrzynkę kwiatową.
Zmuszenie go do złagodzenia się i umożliwienia mi użycia wbudowanego edytora Revelation było sporą bitwą. Na początku nalegał, po prostu dlatego, że takie były zasady. Kiedy sprzeciwiłem się, że a) znałem już edytor Revelation b) był znacznie bardziej funkcjonalny niż jego edytor, c) inni programiści Revelation mieliby tę samą perspektywę, odparł, że gdybym nie trenował na jego edytorze, nie zrobiłbym tego kiedykolwiek będzie w stanie pracować na bazie kodu Prime, co, jak oboje wiedzieliśmy, nie nastąpi, dopóki piekło pozostanie niezamarznięte. W końcu się poddał.
Ale standardy kodowania były ostatnie. Zwłaszcza komentarze do skrzynki z kwiatami były głupią stratą czasu, a on walczył ze mną zębami i paznokciami, mówiąc, że gdybym użył odpowiedniego edytora, utrzymanie ich byłoby całkowicie łatwe. (Całość stała się dość pasywno-agresywna.) W końcu cicho się poddałem i odtąd cały kod, który przyniosłem do recenzji kodu, zawierał jego cenne komentarze do skrzynki na kwiaty.
Pewnego dnia, kilka miesięcy po rozpoczęciu pracy, kiedy udowodniłem, że jestem bardziej niż kompetentny (zwłaszcza w porównaniu z niezwykłą paradą innych programistów, którzy przeszli przez to biuro, gdy tam pracowałem), patrzył mi przez ramię, gdy ja zadziałało, a on zauważył, że nie używam komentarzy do skrzynki na kwiaty. Och, powiedziałem, napisałem program do formatowania kodu źródłowego, który konwertuje moje komentarze na twój styl, kiedy je drukuję. To łatwiejsze niż utrzymywanie ich w edytorze. Otworzył usta, pomyślał przez chwilę, zamknął je, odszedł i nigdy więcej nie rozmawialiśmy o standardach kodowania. Po tym obie nasze prace stały się łatwiejsze.