[1] Configurando seu setup, links úteis e materiais de apoio
Chegou a hora de configurar o seu ambiente para fazer o Haskell funcionar. Atualmente o meu setup é Linux, o que facilita bastante as coisas quando precisamos configurar ambientes de desenvolvimento. Este tutorial é baseado no que você pode encontrar aqui: https://www.vacationlabs.com/haskell/environment-setup.html.
O próprio tutorial recomenda, e eu também, que você tente uma distribuição Linux, pois tudo é mais fácil, estável e previsível. Eu uso o Ubuntu, e não vejo necessidade de uma distribuição mais esotérica. Ele é muito tranquilo, antes de dizer que não consegue tente. Existem muitos tutoriais na internet que ensinam a você a ter um sistema em dual boot, com Windows e Linux na mesma máquina (inclusive, é o que eu tenho). Tudo de trabalho fica no Linux, o Windows é só pra entretenimento. Se tem medo de usar uma máquina apenas com Linux e deixar o Windows para trás definitivamente, tente inicialmente com uma máquina virtual, como Virtual Box.
Existem algumas formas de instalar o Haskell, mas a forma preferencial é usando a Stack. Ela permite que tenhamos múltiplas versões do compilador instaladas ao mesmo tempo, permitindo que tenhamos uma configuração específica para cada projeto.
Quem é um pouco mais velho deve lembrar do DLL Hell, e até mesmo os mais jovens já podem ter sentido um pouco isso na pela desenvolvendo aplicações Python, quando não usam o Virtual Environments (venv). Tanto o venv quando a Stack do Haskell resolvem o mesmo tipo de problemas, incompatibilidade entre versões da mesma biblioteca. Esse problema surge quando você tem um repositório único de bibliotecas no seu PC compartilhado por diferentes aplicações, que podem ter necessidades por diferentes versões de uma mesma biblioteca.
Há uma chance grande de que versões diferentes da biblioteca sejam incompatíveis entre si. Por exemplo, Seu projeto X usa uma biblioteca A, na versão 1.0. Essa biblioteca, por sua vez depende de uma biblioteca B na versão 2.5. Um outro projeto Y, precisa da mesma biblioteca A, mas agora na versão 1.5. Essa versão da biblioteca A depende da biblioteca B na versão 2.9. Você nunca vai conseguir ter os dois projetos funcionando ao mesmo tempo no seu PC, pois no geral os sistemas de gerenciamento de bibliotecas não conseguem manter essas versões diferentes usando um repositório único para todo o sistema. Soluções como o Maven ou Gradle também resolvem esse problema com maestria, são muito mais completas mas mais complexas do que as que estamos discutindo aqui.
O que a Haskell Stack (e o venv do Python também) faz é tornar o ambiente de cada projeto independente, com versão de compilador e bibliotecas específicos para cada projeto. Reduzindo e muito a dor de cabeça com problemas como os discutidos acima.
GHCup
A maneira recomendada atualmente pela documentação da linguagem para instalar as ferramentas de desenvolvimento é usando o GHCup: https://www.haskell.org/ghcup/. Uma outra forma de instalar ferramentas de desenvolvimento é a Stack, comentada abaixo.
Instalação da Stack
A maneira preferida de instalar o compilador do Haskell é através da Stack. Como discutido anteriormente, a Stack resolve uma série de problemas. Para instalar a Stack, siga este link
Editor
O editor preferido por muitos desenvolvedores hoje em dia é o Visual Studio Code. É um editor muito poderoso, desenvolvido pela Microsoft e que tem caído no gosto de muita gente nos últimos anos. Além do VS Code em si, é interessante que você instale o plugin o Haskell Language Server. Ele vai fazer com que o editor seja bem mais capaz para o desenvolvimento de projetos na linguagem Haskell. Dê uma olhada nas funcionalidades dele.
Materiais de Apoio
A principal fonte utilizada para produção do material apresentado aqui é o livro Programming in Haskell (segunda edição), de autoria de Graham Hutton. É um livro excelente, faz um trabalho muito bom para introduzir a linguagem e também tem algumas coisas mais avançadas. Outras fontes que valem a pena ser citadas são:
- Learn You a Haskell for Great Good!: É um material muito legal e completo, totalmente acessível online e de graça. Você encontrará muito do que falamos nas aulas por lá. Ele tem também uma versão em portugês.
- Documentação oficial da linguagem: É claro que isso deveria estar aqui; a documentação oficial da linguagem que você está usando sempre uma fonte precisa de informação; tenha esse link sempre à mão.
- School of Haskell: Uma fonte legal de informação também, tanto para estudantes iniciantes quanto avançados. Vale a pena dar uma olhada.
- Code.World: Encontrei esse site apenas recentemente, e com ele é possível escrever código em Haskell que gera algum resultado visual, como desenhos e animações. Podemos usar de vez em quando para brincar um pouco nos exercícios.