Compilação de antecedentes e verificação ortográfica de antecedentes

Dennis Forbes discordou de meu recente post sobre C# e o imposto de compilação, oferecendo esta crítica, intitulada “Beginners and Hacks” (Iniciantes e Hacks):

Às vezes [background compilation and edit and continue] estão lá para mimar um iniciante, mantendo-o cuidadosamente dentro das linhas pintadas e longe das perigosas tomadas elétricas ao longo da parede. Isso explicaria por que esse era um recurso mais importante no VB.NET do que no C#… não que o VB.NET seja mais trivial – é apenas uma variante sintática – mas é a linguagem para a qual os programadores iniciantes geralmente são orientados.

Minha experiência mostra que os melhores desenvolvedores naturalmente começam a usar cada vez menos “ajudantes”, chegando ao extremo de ter desenvolvedores incontestavelmente excelentes como Linus Torvalds argumentando contra ajudantes fundamentais como depuradores interativos.

Não acredito no modelo de desenvolvimento de software de infinitos macacos em um número infinito de teclados. Só consigo imaginar ferramentas como compilação e edição contínuas e continuar como apoio para os iniciantes e muleta para os desatentos.

Independentemente de Dennis estar ou não comprando, o modelo de desenvolvimento de software de macaco infinito é o que nos prende ao senhor. Sou um defensor do projeto de sistemas práticos que acomodem o que de fato acontece no mundo real— e não a maneira como nós desejo as coisas funcionassem. O modelo atual de desenvolvimento de software é claramente macacos até o fim. E se o senhor se sentir ofendido por ser incluído na brigada dos macacos infinitos, eu diria que isso é incontestável prova de que o senhor é um de nós.

Para cada Linus Torvalds, há dez mil programadores que não são Linus Torvalds. Não espero que essa proporção mude tão cedo, portanto, qualquer esforço direcionado para ajudar os desenvolvedores típicos com ferramentas melhores é um avanço significativo no estado do desenvolvimento de software. Sim, o senhor poderia lançar emacs e os volumes 1-5 de A arte da programação em sua equipe de desenvolvimento. Ou o senhor pode comprar para eles as melhores e mais avançadas ferramentas de desenvolvimento do mercado. Qual abordagem o senhor acha que será mais eficaz?

Ian Griffiths expressou seu descontentamento com a compilação de antecedentes em de uma forma completamente diferente:

Odeio a interferência contínua e maldita do VB.NET. EU AINDA NÃO TINHA TERMINADO DE DIGITAR, SEU COMPILADOR ESTÚPIDO! O SENHOR NÃO CONSEGUE VER ISSO? O SENHOR ACHA QUE EU JÁ TERMINEI DE DIGITAR? NÃO LHE OCORREU QUE O MOTIVO PELO QUAL O SENHOR ENCONTROU TODOS ESSES ERROS É PORQUE EU AINDA NÃO TERMINEI?! EU LHE DIREI QUANDO QUERO QUE O SENHOR VERIFIQUE MEU TRABALHO, E NÃO ANTES!

Pronto. Estou me sentindo melhor agora.

Sim, tenho certeza de que a reconstrução de meus aplicativos C# a cada pressionamento de tecla, como Jeff aparentemente se sente compelido a fazer, teria um efeito negativo sobre minha produtividade. Como poderia ser de outra forma, se as tentativas pouco úteis do VB.NET de fazer isso automaticamente são tão perturbadoras? “Parece que o senhor está escrevendo um programa. O senhor gostaria de ajuda?” Curiosamente, não sinto a necessidade de interromper minha linha de pensamento continuamente. Portanto, eu preferiria que o VB.NET não me interrompesse automaticamente.

Respeito muito as opiniões do Dennis e do Ian. Se o senhor ainda não tem os blogs deles em seu agregador, deveria ter. Mas também discordo respeitosamente dos dois sobre esse assunto. Se o senhor acha que a compilação de segundo plano é incômoda, ou se acha que ela é apenas para iniciantes e hackers, então o senhor deve mesmo, realmente odiar a verificação ortográfica em segundo plano:

Verificador gramatical e ortográfico do Microsoft Word

Pessoas absolutamente adorar a verificação ortográfica em segundo plano. É um daqueles raros recursos que os usuários trocam de aplicativo quando o senhor o arranca das minhas mãos frias e mortas. A verificação ortográfica automática em segundo plano com sublinhado vermelho em formulários HTML é um dos principais recursos do Firefox 2.0. Na verdade, ele é o recurso número dois na página de recursos, logo abaixo da navegação com guias.

Vejo muito pouca diferença entre a verificação ortográfica em segundo plano e a compilação em segundo plano. Para mim, elas são óbvias pelos mesmos motivos. Na verdade, sou um excelente corretor ortográfico, a ponto de poder trabalhar (e trabalho) sem um corretor ortográfico e raramente cometer erros. Mas ter efeitos sutis de sublinhado em segundo plano quando posso ter cometido um erro de ortografia é inegavelmente útil para mim, um excelente ortográfico confesso. Posso ignorá-lo quando sei que está errado e seguir em frente. Porém, na maioria das vezes, eu realmente cometi um erro de digitação e não preciso mais ler metodicamente meu texto várias vezes para encontrá-lo. Com a verificação ortográfica em segundo plano, tudo o que preciso fazer é examinar rapidamente o texto sublinhado com rabiscos vermelhos.

Mike Pope, um escritor profissional da Microsoft, também defende a verificação ortográfica e gramatical em segundo plano:

Eu uso o corretor ortográfico e o corretor gramatical do Word o tempo todo. Essas coisas são ferramentas para mim, maneiras de ajudar um pouco com o trabalho árduo de examinar cada letra de cada palavra de cada frase em todos os documentos que edito. O verificador ortográfico sempre encontra palavras que foram confundidas (muitas vezes por mim durante a edição), embora encontre muitas outras que ele acha que são erros, mas que estão corretas no contexto (por exemplo, muitos nomes técnicos). O verificador gramatical não tem tanta oportunidade de ser útil, mas é bom em encontrar problemas como a concordância sujeito-verbo quando o sujeito da frase foi editado, mas o verbo não.

Mas essas ferramentas geralmente são vistas com desconfiança. Como já observei antes (eu acho), os editores profissionais podem ser maldosos com relação ao verificador gramatical, concentrando-se em erros que o verificador não encontra ou em construções que confundem o verificador gramatical e o fazem acreditar que encontrou um erro quando não há nenhum. Da mesma forma, praticamente todo mundo tem exemplos de palavras que o corretor ortográfico deixou passar. O verificador ortográfico é impotente diante da confusão entre their-they’rethere, por exemplo.

O engraçado sobre esse debate é que eu vivi o estilo de vida de zero ferramentas. É uma droga. Veja como eu compus todos os artigos de blog que já escrevi: em uma caixa de texto HTML de tamanho fixo. Na verdade, estou escrevendo nela agora mesmo.

Menu de edição do Coding Horror

Apesar de minha habilidade ortográfica, já publiquei muitos erros de ortografia neste blog. O fato de usar a mais primitiva das ferramentas para escrever esses posts não é uma validação gloriosa e abrangente de minha experiência como escritor. Na verdade, é uma indicação de minha idiotice, ou pelo menos minha relutância em permitir que ferramentas melhores me ajudem a ser um escritor melhor. Não há motivo algum para me orgulhar disso. Na verdade, sinto-me um pouco envergonhado de admitir o quanto minhas ferramentas de blog são neandertais.

Nem a compilação em segundo plano nem a verificação ortográfica em segundo plano são significavam sejam muletas. Qualquer pessoa razoavelmente competente sabe que as ferramentas nunca substituem o pensamento crítico sobre o que se está escrevendo ou codificando – como Mike aponta com tanta propriedade:

Considerando tudo isso, as ferramentas são muito boas no que fazem. Mas não importa quão boas sejam, as pessoas precisam entender as limitações das ferramentas ou, talvez mais fundamentalmente, as ferramentas são apenas ferramentas e nunca devem ter a última palavra. Não deixe que o computador mande no senhor.

Optar intencionalmente por não usar ferramentas melhores porque o senhor teme que elas se tornem uma muleta é, na melhor das hipóteses, cruel e paternalista. Além disso, geralmente é uma má decisão comercial. Desative a compilação em segundo plano – ou a verificação ortográfica em segundo plano – se o senhor precisar, mas a verificação ortográfica em segundo plano está ativada por padrão no Word e no Firefox 2.0. É uma solução perfeita para o problema de ortografia? Não, longe disso. Mas, para o usuário comum, é uma maneira fácil, automática e discreta de ver e corrigir erros comuns de ortografia. E a compilação em segundo plano, como no VB.NET, oferece o mesmo benefício para erros comuns de codificação.