4 pontos por GN⁺ 2024-07-19 | 2 comentários | Compartilhar no WhatsApp
  • Como estudante de ciência da computação, estou estudando Prolog e programação lógica
  • Aprendi o básico do Prolog puro (átomos, predicados, cut, listas etc.) e vi uma implementação horrível de um sistema de comunicação entre agentes que roda em SICStus Prolog
  • Quero saber mais porque acho que a própria linguagem pode ser um ponto forte
  • Como a área que estudo é bastante fundamental, quero ampliar e aprofundar meu conhecimento tanto deste mundo quanto de outro mundo de que realmente gosto (ontologias :D)
  • Tenho curiosidade sobre como é o Prolog em 2024 e o que as pessoas estão fazendo com Prolog

2 comentários

 
cometkim 2024-07-19

Não é exatamente sobre Prolog em si, mas concordo que o conceito de constraints continuará sendo útil.

Ele também é bastante usado em coisas como bancos de dados, e entre as linguagens de programação mais avançadas também há tentativas de oferecer suporte de primeira classe a Datalog. (Exemplo: https://flix.dev/)

 
GN⁺ 2024-07-19
Opinião do Hacker News
  • Prolog é uma linguagem com 50 anos de história e, para programação em geral, pode ter mais obstáculos do que utilidade

    • Existem muitos sistemas Prolog, mas pouco código Prolog, então a comunidade é fragmentada
    • Aprender Prolog se parece mais com “como evitar tropeçar em Prolog?” do que com “como fazer isso em Prolog?”
    • Algumas pessoas dedicadas e idealistas estão discutindo o potencial do Prolog
    • Prolog tem aspectos interessantes e divertidos, mas também pode ser perigoso
  • Scryer Prolog estabelece um novo marco como um Prolog open source compatível com ISO e com ótimo desempenho

  • Prolog e programação por restrições são ferramentas úteis

    • Prolog tem alguns problemas
      • Não há um sistema moderno de módulos ou pacotes
      • Em bases de código grandes, estruturas não lógicas acabam sendo inevitáveis, o que torna o código complexo
      • A ausência de tipagem estática e forte dificulta escrever código robusto
    • Prolog é uma linguagem surpreendente e pode vir a ocupar um lugar no futuro da programação
  • Em teoria, Prolog é a melhor linguagem

    • Tem características de formalismo lógico, linguagem de computação e linguagem de metaprogramação
    • Na prática, há implementações com bom desempenho e uma comunidade pequena
    • Dá para fazer muita coisa com Prolog, mas muitas vezes não fica claro como fazer
  • É bom ver novas pessoas se interessando por Prolog

    • Estão desenvolvendo bibliotecas para facilitar o uso do Trealla Prolog com Wasm
    • Links: TypeScript Library, Go Library
    • Scryer e Trealla buscam compatibilidade com ISO
  • Prolog é uma linguagem que exige uma nova forma de pensar

    • O paradigma declarativo é bom, mas não oferece uma grande vantagem em relação a outras linguagens
    • Tem ótima expressividade em problemas onde é possível aplicar CLPFD
    • É divertido usar LLMs para gerar fatos/bancos de dados em Prolog
  • A “mágica” do Prolog se baseia nos conceitos de unificação e backtracking

    • Como linguagem declarativa, ele permite expressar problemas inversos de forma simples, mas não fornece a solução
    • Se os motores de resolução melhorarem, o uso de linguagens declarativas de programação por restrições como Prolog deve crescer
  • Sei quase nada sobre Prolog, mas gostei do tutorial de Datalog

  • Os algoritmos de busca da programação lógica são lentos

    • Prolog consegue fazer de tudo, mas não faz tudo bem
    • Prolog é adequado para tarefas específicas, como manutenção de bancos de dados