Kilka miesięcy temu zaczęliśmy opracowywać aplikację do kontroli opracowanego przez nas sprzętu testowego i rejestrować zestaw pomiarów. Powinien mieć prosty interfejs użytkownika i prawdopodobnie wymagałby wątków ze względu na ciągłe nagrywanie, które musi mieć miejsce. Ta aplikacja będzie używana przez kilka lat i będzie utrzymywana przez wielu studentów informatyki w tym okresie.
Nasz szef ukończył szkołę jakieś 30 lat temu (nie należy tego traktować jako przestępstwo; mam też ponad połowę tego czasu na plecach) i nakazał nam opracowanie tej aplikacji w ANSI C. Uzasadnieniem jest to, że on jest jedynym, który będzie przez cały czas i dlatego musi być w stanie zrozumieć, co robimy. Orzekł również, że nie powinniśmy używać abstrakcyjnych typów danych; podał nam nawet listę zmiennych globalnych (westchnienie), których chce, abyśmy użyli.
Próbowałem tego podejścia przez jakiś czas, ale tak naprawdę spowalniało mnie to, aby upewnić się, że wszystkie operacje wskaźnika są bezpieczne i że wszystkie łańcuchy mają odpowiedni rozmiar. Ponadto liczba wierszy kodu, które faktycznie dotyczyły danego problemu, stanowiła tylko niewielką część naszej bazy kodu. Po kilku dniach wyrzuciłem całość i zacząłem od nowa, używając C #. Nasz szef widział już działający program i podoba mu się sposób jego działania, ale nie wie, że napisano go w innym języku.
W przyszłym tygodniu spotkamy się, aby omówić kod źródłowy, aby „wiedział, jak go zachować”. Jestem trochę przestraszony i chciałbym usłyszeć od was, jakich argumentów mógłbym użyć na poparcie mojej decyzji.
Twój tchórzliwy,