Haskell sem declarar dependencias

Olá grupo, Algo que me incomoda muito na programação hoje é a fricção entre escrever um programa e o rodar. Acho que há muitas ferramentas que ajudam muito nisso, Docker sendo uma impossível de ignorar. No ecossistema de Haskell é difícil apenas escrever e rodar scripts sem criar novos projetos, porque usar um banco-de-dados de pacotes global no seu sistema deixa de funcionar muito rápido. Acho que a introdução do `stack` mudou muito a experiência. Se antes a solução era usar sandboxes com o cabal e perder tempo esperando para que muitos pacotes compilassem, agora para uma boa parte dos projetos basta rodar `stack build` e se terá caching de dependências, escolha automática da versão do compilador, escolha automática de pacotes compatíveis usando o stackage etc. Tentei escrever uma prova de conceito, usando um pouco de bash, que dado um arquivo: - Extraí os módulos importados - Pesquisa no Hayoo pelos módulos afim de encontrar o pacote no qual estão publicados - Pesquisa no Hackage pelas dependências de cada pacote - Passa tudo isso para dentro to comando `stack runghc` junto com o arquivo O código está disponível em: https://github.com/yamadapc/stack-run-auto Acho que é só uma prova de conceito, mas gostaria de ser capaz de escrever o código e ter todos esses passos resolvidos para mim. O Emacs faz um pouco disso hoje, mas parece que só para alguns pacotes. Cada uma das etapas é um pequeno script (a maior parte bash e um pouco de node para extrair dados de HTML, já que não há uma API do Hackage). Acho que o mais útil é o `module-package`. Recebe um módulo (como `System.Console.AsciiProgress` e imprime um pacote como `ascii-progress`). Quero isso no meu editor para adicionar as dependências no `projeto.cabal` automaticamente quando um arquivo é salvo e um import foi adicionado. Me anima ver ferramentas como Hayoo e Hoogle que nos deixam pesquisar por módulos, funções etc. em todos os pacotes publicados no Hackage. Acho que é possível diminuir o custo de escrever Haskell para tarefas rápidas. Talvez seja útil para vocês ou se interessem em implementar a parada direito :D - - - Não sei como está o interesse em Haskell depois do nosso encontro, mas acho que valeria a pena: - Escrever conteúdo em português - Explorar a ideia de workshops a la nodeschool.io (a comunidade de node.js escreveu um framework para tutoriais: https://github.com/workshopper/workshopper - essa foi uma ideia que queria ter aprofundado no começo do ano, uma pequena parte de interface para isso está em https://github.com/yamadapc/list-prompt, mas talvez seja melhor só usar a ferramenta do node.js, que é sensacional) - Reviver uma sala de chat em português sobre Haskell. A comunidade nodebr recentemente abriu uma conta no Slack, o que foi muito bem sucedido, muito mais pessoas estão ativas do que estavam no IRC e tenho uma instância de https://github.com/ekmartin/slack-irc rodando para um não excluir o outro. - Reviver um site da comunidade. Tenho o domínio haskellbr.com e um pouco de código escrito. Parei no meio porque comecei a pensar que talvez fosse mais legal adicionar internacionalização para o haskell.org do que escrever outra página. Queria: um blog, uma forma fácil de entrar na lista, uma forma fácil de entrar num chat (IRC ou Slack com https://github.com/rauchg/slackin) Queria um grupo de trabalho para open-source (não só Haskell). Nem que seja só um office-hours da vida. Yamada
participants (1)
-
Pedro Yamada