Costumava utilizar o asdf como ferramenta para gerenciar diferentes versões de linguagens de programação, porém, recentemente passei a ter alguns problemas com o mesmo, alguns comandos mudaram e seria necessário alguns passos para adaptar meu fluxo para a nova forma de utilizar a ferramenta. Foi então que resolvi testar o Mise, ferramenta que já tinha ouvido falar mas como o asdf estava me atendendo, não havia testado. O Mise basicamente tem a mesma funcionalidade do asdf, facilita gerenciar diferentes versões de uma linguagem de programação, porém, além disso ele tem mais finalidades, como o gerenciamento de variáveis de ambiente e também funcionar como um task runner(algo como o just e o make).

Outra grande vantagem é que os comandos do CLI são bem mais simples que os do asdf e ele tem compatibilidade com os arquivos de configuração utilizados pelo asdf, assim, se tinha um projeto que possui internamente o arquivo de configuração do asdf, posso usar o Mise nele sem problemas.

Olhando a documentação vi que seria necessário instalar o mesmo e configurar juntamente ao meu shell, os passos a seguir mostram esse processo. Primeiro instalar no arch com o seguinte comando.

pacman -Syu mise

após isso foi ativar o Mise no meu shell, como uso o fish foi o seginte comando.

echo 'mise activate fish | source' >> ~/.config/fish/config.fish

Além disso adicionar o auto complete ao meu shell.

mise completion fish > ~/.config/fish/completions/mise.fish

Caso apresente algum erro ao tentar testar o auto completar, instale o usage como mostrado a seguir e possivelmente será resolvido.

 mise use -g usage

Com a ferramenta instalada e configurada com o shell, podemos fazer uso da ferramenta, uma boa forma de iniciar os testes é utilizando o comando doctor para verificar se tem algum problema com nossa instalação.

mise doctor

Para instalar uma ferramenta basta fazer uso do comando use, algo que difere do asdf pois neste era necessário instalar o plugin da ferramenta específica para então instalar a mesma. Aqui no caso, faremos a instalação do node por exemplo. No comando a seguir é feito o uso da flag “–global” para mandar aplicar o node 22 como padrão globalmente, caso queira somente localmente pode remover essa flag.

mise use --global node@22

Caso possua um arquivo de configuração em um projeto e queira instalar as ferramentas dessa configuração, basta utilizar o comando install.

mise install

Com isso temos agora um ambiente onde podemos facilmente controlar a versão de cada ferramenta que usamos e gerenciar também as versões por projeto. Até o momento está funcionando muito bem, mas acredito que o teste de fato será quando testar para gerenciar o flutter e o java no desenvolvimento de aplicativos.