Lições da construção da busca de código do GitHub [vídeo]

A busca de código reformulada do GitHub, mostrada em uma recente palestra técnica, recebe elogios por melhorias importantes — como suporte a regex, melhor escalabilidade e recursos semânticos alimentados por estruturas de dados personalizadas — e críticas pela perda de funcionalidades e novas restrições. Comentadores questionam a decisão de exigir login para a busca de código, a remoção de “ordenar por recente” e a fraca visibilidade de ranqueamento e indexação, argumentando que essas mudanças prejudicam a abertura e a usabilidade prática. Outros destacam regressões mais amplas no desempenho da UI do GitHub e apontam ferramentas alternativas como grep.app e Sourcegraph para uma busca de código mais confiável ou flexível.

Requisito de Login para a Busca de Código

  • Muitos participantes perguntam por que a busca pública de código agora exige login.
  • Explicações propostas:
    • Produto/métricas: aumenta os números de “usuários ativos” e direciona as pessoas para o ecossistema do GitHub.
    • Custo/desempenho e antiabuso: a busca avançada exige muitos recursos de computação e é um grande alvo de bots; o login permite limitação de taxa e proteção contra DDoS.
    • Estratégia competitiva/de dados: paredes de login podem dificultar que concorrentes minerem dados do GitHub, ao mesmo tempo em que maximizam a capacidade do GitHub de minerar dados de outros.
  • Discordância sobre o valor de usuários anônimos:
    • Alguns os veem como caronas de baixo valor no uso de computação.
    • Outros argumentam que eles são futuros clientes e colaboradores; a fricção enfraquece a abertura e o papel do GitHub no ecossistema de código aberto.

Abertura vs. Jardim Murado

  • Vários კომენტadores veem a barreira de login como parte de uma tendência mais ampla (como Twitter/Reddit) em direção ao fechamento e monetização de recursos antes abertos.
  • Críticos argumentam que isso corrói a confiança e empurra projetos/usuários a buscar alternativas ou fluxos de trabalho locais (clone + grep).
  • Defensores enfatizam que o GitHub não “deve” computação gratuita e precisa equilibrar missão e sustentabilidade.

Recursos de Busca, Ranqueamento e Resultados Ausentes

  • Forte apreciação pelas capacidades do novo mecanismo: regex, correspondência exata, indexação de forks, navegação melhor, menos timeouts, escala para enormes quantidades de repositórios.
  • Frustrações:
    • Remoção de “ordenar por recente”, usado para acompanhar novos padrões de uso e erros; alguns usuários dependiam disso.
    • Um engenheiro do GitHub explica que ordenar por recência agora é tecnicamente complexo (reindexação contínua, desduplicação, modelo de histórico do Git) e foi fortemente abusado por scrapers; a equipe priorizou outros recursos.
    • O ranqueamento frequentemente exibe muitos resultados quase duplicados de forks; os usuários querem forks excluídos por padrão.
    • Reclamações de que a busca às vezes deixa de encontrar correspondências conhecidas; o engenheiro atribui a maioria dos casos a repositórios ainda não indexados ou a limites documentados, e concorda que a visibilidade sobre o status de indexação e exclusões é ruim.

Desempenho e Regresões de UI

  • Vários relatos de a UI web do GitHub ficar lenta ou instável, especialmente:
    • Arquivos grandes com realce de sintaxe.
    • Novas interfaces baseadas em React e renderização do lado do cliente.
    • Navegadores móveis/Android, onde páginas ou a UI do sistema podem travar.
  • Alguns usuários recorrem a clonar repositórios ou consultar mirrors locais/forjas alternativas devido ao desempenho do frontend.

Alternativas e Soluções de Contorno

  • Menções frequentes a alternativas: grep.app, sourcegraph, Debian code search, ferramentas locais (ripgrep, The Silver Searcher), busca estilo VS Code do github.dev.
  • Algumas organizações acham o preço de busca comercial proibitivo e preferem implementar seu próprio indexador de código ou esperar futuras ferramentas de IA.

Conteúdo da Palestra e Tecnologia Relacionada

  • Os espectadores elogiam a palestra e a engenharia por trás do novo sistema (por exemplo, o indexador personalizado “Blackbird”, tokenização por trigramas, desduplicação, filtros XOR geométricos, análise semântica baseada em Tree-sitter).
  • Há interesse em uma futura publicação sobre estruturas de dados e detalhes de implementação; alguns já estão construindo linguagens de consulta personalizadas inspiradas na sintaxe do GitHub.