Há alguns meses, começamos a desenvolver um aplicativo para controlar um equipamento de teste desenvolvido internamente e registrar um conjunto de medidas. Ele deve ter uma interface de usuário simples e provavelmente exigiria threads devido à gravação contínua que deve ocorrer. Este aplicativo será usado por alguns anos e será mantido por vários estudantes de ciência da computação durante esse período.
Nosso chefe se formou há 30 anos (não deve ser considerado uma ofensa; também tenho mais da metade desse tempo) e determinou que desenvolvêssemos esse aplicativo no ANSI C. A lógica é que ele é o único que estará o tempo todo e, portanto, ele deve ser capaz de entender o que estamos fazendo. Ele também decidiu que não devemos usar tipos de dados abstratos; ele até nos deu uma lista com o nome das variáveis globais (suspiro) que ele quer que usemos.
Na verdade, tentei essa abordagem por um tempo, mas estava realmente me atrasando para garantir que todas as operações do ponteiro fossem seguras e que todas as seqüências tivessem o tamanho correto. Além disso, o número de linhas de código que realmente se relacionavam com o problema em questão era apenas uma pequena fração de nossa base de códigos. Depois de alguns dias, desfiz a coisa toda e comecei de novo usando C #. Nosso chefe já viu o programa em execução e gosta da maneira como funciona, mas não sabe que está escrito em outro idioma.
Na próxima semana, nós dois nos encontraremos para revisar o código fonte, para que ele "saiba como mantê-lo". Estou meio assustada e gostaria de ouvir de vocês quais argumentos eu poderia usar para apoiar minha decisão.
Covarde seu,