O Linux é o melhor sistema operacional para programar porque com ele é possível ter maior produtividade, já que foi feito para programadores. Além disso, quando comparado com o Windows, é mais seguro, estável e não tem custo de licenciamento.
Se você está em dúvida se é melhor usar Linux ou Windows para programar, esse post é perfeito para você.
Eu detalhei 10 motivos para você entender por que o Linux é melhor para programar, considerando a produtividade do programador como fator principal dessa escolha.
Se você quiser saber mais sobre os pontos fortes do Linux em relação à segurança, estabilidade e custo de licenciamento, dá uma olhada nesse post, onde eu explico cada um desses itens em detalhes.
E se você quiser saber qual é a diferença de programar no Linux ou no Windows, leia esse post completo sobre as características técnicas que fazem do Linux a melhor escolha para programadores.
Foi Criado Por Programadores, Para Programadores
Em 1991, um programador chamado Linus Torvalds enviou uma mensagem para um grupo de usuários falando sobre o novo sistema operacional que ele estava desenvolvendo a partir do Minix.
Era um projeto só dele e que ainda estava muito no início, mas ele já tinha “conseguido rodar com sucesso bash/gcc/gnu-make/gnu-sed/compress etc”, deixando claro que o público alvo do sistema eram programadores.
Na mesma mensagem, ele disse que “Esse é um programa para hackers por um hacker.”
O kernel do Linux então foi disponibilizado em um servidor FTP, de onde começou a ser baixado de graça e modificado por outros desenvolvedores.
O problema é que o kernel é só o programa que disponibiliza os recursos do hardware para os outros programas do sistema operacional.
Portar todos os programas necessários para fazer um sistema completo, ao mesmo tempo em que desenvolvia o kernel, teria sido um trabalho longo demais para um programador só ou para um grupo pequeno, como era na época.
Não por coincidência, na mesma época, Richard Stallman tentava sem sucesso finalizar o kernel do seu sistema operacional livre, chamado GNU, que também era baseado no padrão POSIX do Unix.
Ele tinha largado o emprego no MIT para iniciar o projeto GNU quase dez anos antes e adivinha qual foi a primeira coisa que ele desenvolveu?
Um compilador C chamado GCC.
Então, para encurtar a história, em 1992, eles se entenderam e o Linux se tornou o kernel do sistema GNU.
Por esse motivo, o sistema se chama GNU/Linux e o Richard Stallman fica bravo quando chamam só de Linux.
Mas é claro que todo mundo chama só de Linux…
Olhando para trás e vendo essa história do sistema, é fácil de perceber que o Linux foi criado para ser um ambiente para programadores.
Portanto, por que não aproveitar essa vocação natural?
É Muito Fácil de Instalar
Mesmo dominando o mercado de servidores, de supercomputadores, de computação em nuvem e até o de dispositivos móveis com o Android, o Linux nunca decolou no desktop.
De acordo com Linus Torvalds, o criador do Linux, isso acontece porque os computadores não vêm de fábrica com esse sistema operacional instalado.
Para ele, ninguém quer comprar um computador e perder tempo instalando um sistema operacional, se muitos fabricantes de hardware já vendem seus equipamentos com Windows pré-instalado.
Isso pode até ser verdade, mas se você escolher uma distribuição feita para programadores, vai perceber que o foco dela é em obter o máximo de produtividade.
Assim, você vai gastar poucos minutos na instalação, o que não é um problema, se você considerar todas essas vantagens de usar o Linux.
Melhor ainda…
Instalou uma distribuição e não gostou? Instale outra em poucos minutos!
A não ser que você use o Arch Linux, já ficou para trás o tempo em que você instalava o kernel do Linux e depois ia adicionando cada componente via terminal.
E eu até entendo se você ainda quiser fazer isso…
Para quem gosta da área de TI, instalar e configurar um sistema operacional pode ser uma coisa muito divertida.
Mas lembre-se:
Se você quer ser um programador, não precisa ser administrador de sistemas. Use o seu tempo da melhor maneira possível para aprender a programar.
Portanto, não caia na conversa de quem diz que um bom programador tem que saber montar um computador, configurar um switch de rede e instalar Linux do jeito mais difícil.
Usa um Gerenciador de Pacotes Para Instalar Programas
O conceito de “loja de aplicativos” foi popularizado pelos celulares, mas o Linux já tinha o conceito de repositório padrão de programas antes disso.
Se você usa Windows, está acostumado a pesquisar em vários sites e baixar cada programa que você precisa, sem saber nem a origem deles.
O resultado disso é que o seu sistema parece uma colcha de retalhos, com arquivos espalhados por toda parte.
Em 2020 a Microsoft lançou um gerenciador de pacotes para o Windows, chamado winget.
No entanto, ele não gerencia de verdade o que é instalado no seu sistema.
Em vez disso, ele apenas baixa e roda um instalador, como você mesmo faria…
Já no Linux, talvez você nunca precise baixar e instalar um programa por conta própria, já que os softwares podem ser encontrados nos repositórios e instalados pelo gerenciador de pacotes.
Mais importante ainda: o gerenciador de pacotes do Linux sabe como atualizar e desinstalar os pacotes que estão instalados no seu sistema, além de conseguir rastrear cada arquivo que foi instalado a partir de um pacote.
E qual é a vantagem disso para o programador?
Bem, montar um ambiente de desenvolvimento é uma tarefa que toma tempo e envolve a instalação de diversas ferramentas, desde compiladores e IDEs, até servidores Web e sistemas gerenciadores de bancos de dados.
Para facilitar, uma vez que o ambiente esteja pronto, você pode exportar uma lista de todos os pacotes que foram instalados para desenvolvimento.
A partir dessa lista, você pode usar o gerenciador de pacotes para montar um ambiente de desenvolvimento padronizado rodando só um comando.
Isso facilita a reinstalação de programas, caso você troque de máquina, ou a replicação do ambiente para outros membros de uma equipe de desenvolvimento.
Suporta Todas as Linguagens de Programação Que Você Precisa
Como o Linux foi criado para programadores, muitas linguagens estão disponíveis, desde as mais comuns, incluindo Python, Java, C, C++, Kotlin, PHP, Ruby, JavaScript, Rust, GO, R e Perl, até outras menos usadas, como Julia, Haskell e Scala.
O Linux suporta até mesmo o desenvolvimento em Swift e em uma parte do .NET.
No entanto, se você precisar usar uma dessas duas linguagens, é provável que você esteja desenvolvendo um software específico para macOS/iOS/watchOS ou para Windows.
Nesse caso, não faria mesmo muito sentido usar o Linux.
Portanto, a não ser que você esteja escrevendo um software nativo para outros sistemas operacionais, o Linux tem a linguagem de programação que você precisa.
Tem Muitas Opções de IDEs Disponíveis
Quando o Linux surgiu, os programadores usavam editores de texto simples, como os clássicos Vim e Emacs.
Hoje em dia, os principais editores de código e IDEs estão disponíveis para o Linux, como Geany, Eclipse, Atom, PyCharm, Spyder, Sublime Text e Visual Studio Code.
Essas ferramentas suportam plugins e funcionalidades como code completion, debugging, profiling, linting, automação de builds, integrações com o pipeline de CI/CD e acesso a bancos de dados, entre outros.
Tudo isso evita que o programador perca tempo instalando e configurando várias ferramentas diferentes.
Esse pode até não ser um motivo tão convincente para usar o Linux, já que o Windows também tem uma boa variedade de IDEs disponíveis.
No entanto, há muito tempo esse já não é mais um ponto fraco do Linux.
As Ferramentas Mais Úteis São Nativas
Muitas ferramentas de desenvolvimento foram criadas para serem executadas em sistemas que seguem o padrão POSIX, do Unix.
Assim, elas dependem de emuladores para rodarem no Windows.
Alguns exemplos desses emuladores são o MinGW (Minimalist GNU for Windows) e o Cygwin.
Com a introdução do Windows Subsystem for Linux (WSL 1 ou WSL 2), que nada mais é do que uma máquina virtual otimizada para rodar um sistema Linux dentro do Windows, esses emuladores perderam um pouco o sentido.
Mas ainda há algumas aplicações importantes que dependem de emuladores desse tipo para rodarem no Windows.
Um exemplo é o Git, que usa o emulador Mingw-w64, um fork do MinGW original, para disponibilizar o Git Bash, uma interface que permite executar os comandos do Git em um terminal.
Outra ferramenta muito importante para qualquer programador é o cliente SSH, que é instalado por padrão no Linux, mas depende de um software como o PuTTY para funcionar no Windows.
Se você usa Linux, não tem necessidade alguma dessas gambiarras…
Basta abrir o terminal, usar o gerenciador de pacotes para instalar os softwares e começar a usar as ferramentas na mesma janela, sem precisar nem reiniciar o terminal.
Preciso dizer mais alguma coisa?
Dá Liberdade Para Escolher Qual Distribuição Usar
Algumas pessoas dizem que não importa qual é distribuição Linux que você usa, enquanto outras fazem questão de defender uma distribuição específica.
Como o foco aqui é na produtividade, é importante você escolher uma distribuição de forma objetiva. Para isso, ela deve ter algumas características:
- Ser compatível com o seu hardware.
- Ser fácil de instalar e configurar.
- Ter muitos pacotes disponíveis.
- Ter uma comunidade ativa nos fóruns e blogs.
- Ter um longo histórico de versões e atualização constante.
- Ser estável e não usar pacotes experimentais.
Dessa forma, você evita perder tempo instalando, configurando e aprendendo a usar uma distribuição muito complexa, ou que não tem futuro e que você vai acabar tendo que substituir em breve.
Por isso, procure distribuições tradicionais e simples de instalar, com um histórico consistente de manutenção, como Ubuntu, Linux Mint, openSUSE, Debian ou Fedora e fique longe do Slackware, Arch Linux e Linux From Scratch.
Além disso, tome cuidado com pacotes de repositórios alternativos e sem manutenção, pois eles podem tornar o seu sistema instável e inseguro.
Permite Automatizar Tudo com Scripts Bash
Ao contrário do Windows, onde as operações são feitas nas janelas do ambiente gráfico, no Linux o mais comum é usar a linha de comando.
Dessa forma, você pode usar scripts Bash para automatizar tarefas repetitivas do seu ambiente de desenvolvimento, como manipular arquivos e iniciar ou destruir containers, por exemplo.
Se você já pediu para instalar um interpretador para rodar seus scripts em linha de comando no ambiente de produção, você sabe o quanto pode ser difícil convencer o administrador do sistema.
Essa é a vantagem do Bash. Como ele é um interpretador de comandos nativo do Linux, você não depende da instalação de um outro pacote só para rodar seus scripts em todos os ambientes, incluindo o de produção.
Mas isso não pode ser feito no Windows também, com o PowerShell?
Sim, mas quando você aprende a usar o Bash, pode aplicar sua sintaxe em qualquer distribuição Linux, no Unix e em outros sistemas operacionais que seguem o padrão POSIX, como o macOS.
Já a sintaxe do PowerShell só funciona no Windows.
Então, se você desenvolve no Windows, mas os outros ambientes não rodam esse sistema operacional, o seu script PowerShell só serve para a sua máquina.
Instala e Atualiza Programas Sem Reiniciar
O uptime, o tempo que um sistema fica no ar sem interrupção, é uma característica importante quando se pensa em produtividade.
Se você já usou o Windows para montar um ambiente de desenvolvimento, sabe que existe um passo que você não pode pular…
Instalou ou atualizou uma ferramenta de desenvolvimento? Reinicia.
Atualizou o sistema operacional? Reinicia.
Precisa verificar o disco para saber se tem defeitos? Reinicia.
Muito tempo sem desligar a máquina e tudo parece lento? Reinicia.
Isso tem a ver com a maneira ineficiente como o Windows lida com as bibliotecas que já estão carregadas no sistema.
Já no Linux, desde a versão 4.0 você não precisa reiniciar a máquina nem quando atualiza o kernel!
Em um ambiente de desenvolvimento, é comum instalar ferramentas a todo momento, para auxiliar nas suas tarefas.
Se você não perde tempo reiniciando o computador toda vez que instala um pacote, pode se concentrar em fazer o que importa: programar.
É Mais Seguro, Estável e Não Tem Custo de Licença
Apesar de não estarem ligados só à produtividade, esses pontos têm um peso importante na escolha do Linux como sistema operacional para desenvolvimento.
O fato de não ter custo de licenciamento faz com que o Linux possa ser baixado e instalado de imediato, sem que seja necessário gastar tempo com contratos e pagamentos.
Além disso, é pouco provável que uma máquina rodando Linux seja afetada por malware e vírus.
Isso também aumenta e a estabilidade do sistema e o uptime.
Se você quiser saber mais sobre os pontos fortes do Linux em relação à segurança, estabilidade e custo de licenciamento, dá uma olhada nesse post, onde eu explico cada um desses itens em detalhes.
E se você quiser saber qual é a diferença de programar no Linux ou no Windows, leia esse post completo sobre as características técnicas que fazem do Linux a melhor escolha para programadores.
Conclusão
Eu espero que você tenha se convencido de que o Linux tem o melhor conjunto de características que um sistema operacional pode ter para ser usado em um ambiente de desenvolvimento desktop.
Perceba que esses motivos têm foco em produtividade, uma característica importante do trabalho de um programador.
Para que você obtenha essas vantagens, eu recomendo que você sempre mantenha as configurações o mais próximo possível do padrão e evite grandes customizações que podem quebrar o sistema, te fazendo perder tempo e gerando frustração.
E se você tem algum requisito específico que exige o Windows, como jogos que precisam de drivers de vídeo proprietários para tirar o máximo de performance da GPU, instale o Windows em dual boot com o Linux e use o sistema certo para cada necessidade.
Depois de ler esse post, se você ainda estiver pensando em usar o Windows em vez do Linux para programar, comente aí embaixo quais são os seus motivos.
E se você já migrou para o Linux, conte como é a sua experiência. Que distribuição você usa e quais são as melhores ferramentas para programadores que ela tem?
Seria muito legal ver a seção de comentários cheia de excelentes referências para programadores.