Na edição anterior do Radar, apresentamos duas ferramentas que pesquisam e substituem código usando uma representação de árvore de sintaxe abstrata (AST), Comby e Sourcegraph. Embora compartilhem algumas semelhanças, também diferem de várias maneiras. Sourcegraph é uma ferramenta comercial (com opção de uso gratuito para até 10 usuários). É particularmente adequada para pesquisa, navegação ou referência cruzada em grandes bases de código, com ênfase em uma experiência interativa de desenvolvimento. Por outro lado, Comby é uma ferramenta de linha de comando leve e de código aberto para automatizar tarefas repetitivas. Como Sourcegraph é um serviço hospedado, também tem a capacidade de monitorar continuamente as bases de código e enviar alertas quando ocorre uma correspondência. Agora que ganhamos mais experiência com Sourcegraph, decidimos movê-lo para o anel Experimente para refletir nossa experiência positiva — o que não significa que seja melhor que Comby. Cada ferramenta tem como foco um nicho diferente.
Outra ferramenta de pesquisa de código baseada em árvore de sintaxe abstrata que ganhou nossa atenção é Sourcegraph. Ao contrário de Comby, que tem código aberto, Sourcegraph é uma ferramenta comercial (com um plano gratuito para até 10 usuários). Sourcegraph é particularmente adequado para pesquisa, navegação ou referência cruzada em grandes bases de código. A versão hospedada na nuvem pode ser acessada pelo site do Sourcegraph e é projetada para pesquisar repositórios de código aberto disponíveis publicamente. Enquanto Comby é uma ferramenta de linha de comando leve para automatizar tarefas repetitivas, a ênfase de Sourcegraph está em ferramentas de desenvolvimento interativas para compreender e navegar em grandes bases de código. Ao contrário da interface semelhante ao sed
do Comby, o recurso de reescrita de código automatizado do Sourcegraph é conduzido a partir de uma IU, permitindo que os usuários revisem as alterações antes de serem feitas. Como o Sourcegraph é um serviço hospedado, também tem a capacidade de monitorar continuamente as bases de código e enviar alertas quando ocorre uma correspondência.