Fish Shell pode abandonar o C++ para um port em Rust, com planos de estar disponível para servidores

Fish Shell pode abandonar o C++ para um port em Rust, com planos de estar disponível para servidores

Os planos do Fish Shell de fazer a transição para o Rust para melhorar as coisas e disponibilizá-lo para os servidores.

O Fish shell é um dos shells Linux menos conhecidos que oferece um shell de linha de comando inteligente e fácil de usar para sistemas operacionais semelhantes ao UNIX.

É popular entre os usuários do Linux por causa de seus recursos e aparência da era dos anos 90 .

Curiosamente, há algumas semanas, o atual mantenedor do projeto Fish shell 'ridiculousfish' iniciou um pull request que mencionou:

acho que devemos fazer a transição para o Rust e tentar fazê-lo até o próximo grande lançamento.

Ele mencionou que esta transição é um port, em vez de uma reescrita completa, e contará com módulos C++ traduzidos em forma de Rust.

O Fish Shell foi chamado de "ridiculousfish", ou "peixe ridículo", depois que o autor original "Axel Liljencrantz" o abandonou e lhe deu o sinal verde para ter seu fork como o projeto sucessor oficial.

Para provar que isso pode funcionar, ele portou alguns módulos para o Rust e os disponibilizou em uma caixa que vive sob e se vincula ao código C++.

Eles também solicitaram scripts de conclusão de pessoas familiarizadas com essas ferramentas e para testá-los com seu git repo.

Por que a transição?

A base C++ sobre a qual o Fish Shell é construído tem causado muitos problemas. Quaisquer alterações necessárias levam desnecessariamente tempo para serem implementadas.

Embora eles tenham inicialmente mudado para o C++11 em 2016 e ainda estejam nele, agora é um fardo atualizar qualquer coisa codificada com uma linguagem tão antiga; ele até supera a possibilidade de atualizar para C++14/17.

Além disso, com um comentário recente por um mantenedor, abandonar o C++ permitirá que eles:

  • Disponibilizem o Fish em servidores que executam distribuições LTS antigas
  • Facilitem a compilação e a execução

Depois, há as preocupações gerais com o C++; como problemas com arquivos de cabeçalho, segurança de memória, comportamento indefinido, erros do compilador e muito mais.

Os desenvolvedores mencionam:

A essência disso é que o C++ nos causou bastante tristeza, e terminamos com isso, e assim, decidimos deixá-lo e tudo relacionado a ele para trás.

É aqui que entra a linguagem popular segura para memória Rust.

Isso pode ajudá-los com os problemas de encadeamento de longa data com Fish Shell, e eles já têm pessoas na equipe que sabem como trabalhar com isso.

Agora, com o anúncio, eles também estão esperando melhores contribuições da comunidade com isso, já que o Rust tem sido muito popular nos últimos tempos com "um monte de buzz e mindshare que outras línguas não têm", disseram eles.

Um usuário, 'mqudsi' tinha algumas preocupações legítimas que eles compartilharam em um comentário sobre a solicitação pull original.

Eles temem que apressar qualquer parte deste empreendimento possa ser prejudicial para a sobrevivência deste projeto.

Com preocupações sobre a compatibilidade do Fish em hardware mais antigo limitando todo o seu potencial, Rust sendo de alto nível demais para o Fish, e assim por diante.

Só o tempo dirá como os desenvolvedores lidam com essas preocupações.

Quando esperar?: A próxima grande liberação do Fish será apresentando o port em Rust com muitas melhorias aguardadas. Não estamos cientes do cronograma para seu lançamento planejado.

O que você acha disso? A mudança para Rust será capaz de melhorar o Fish Shell?

Última atualização deste artigo: 1 de march de 2023