Por que usar Linux para programar?

Tenho visto uma série de programadores usando Linux, no seu dia a dia. Gostaria de saber por que todo mundo na área de T.I usa Linux?

1 curtida

Nem todos usam Linux.

Esse vídeo é sobre isso e muito interessante. Mesmo eu que não sou programador assisti inteiro e apreciei cada minuto.

2 curtidas

Nem todos usam, mas costuma ser mais fácil programar no Linux por ficar mais próximo do que temos nos servidores em produção.

Há não ser que programe para Desktop legado sem API para uma plataforma específica, aí o cenário é diferente.

Na minha empresa resolvi esse problema usando VMs com Windows para dar manutenção nos sistemas legados.

Fora isso tem a facilidade de com um script deixar o ambiente de desenvolvimento igual para todos, o Windows não tinha nada nativo para facilitar isso, mas está mudando agora com a chegada tardia do winget.

2 curtidas

A maioria das aplicações feitas é para rodar em um servidor e os servidores são Linux. Além disso, o Linux já vem meio que pronto para programar, já possui as configurações necessárias para sair programando. Ou mesmo quando se precisa configurar algo, só um comando no terminal ou na central de aplicativos já resolve, enquanto que no Windows vc precisa instalar, configurar variável de ambiente e torce para não bugar o sistema.

Isso do script para deixar o ambiente igual para todas máquinas, considero ser o principal ponto!
Quem trabalha com Windows precisaria de um servidor na rede, para poder contar com essa funcionalidade. Claro que desde o Windows Server 2003, com WSUS, já se poderia fazer isso, mas requer um servidor, enquanto que em qualquer distro Linux, não…

3 curtidas

Uma palavra: nixpkgs pesquisa sobre

1 curtida

Muito top @Natanael.755 , já usas com sucesso? Vi muita gente apanhando, mas ainda não vi falarem de uma implementação rodando perfeita.

1 curtida

Ss, é bem tranquilo

Nem todo mundo usa Linux para programar ou coisa do tipo, alguns ainda se mantém no Windows e usam virutalização pra aprender o “beabá” de alguma distro famosa.

Depende mais do teu conhecimento, e alguma ferramenta que deseja utilizar, sei que não é certo se prender a isso, mas na vida real todo mundo faz isso.

Bugar o sistema? Só se for alguém muito arrogante que não quis perguntar para alguém ou seguir um guia da internet. O Windows não é um sistema que buga aleatoriamente (a menos que seja crackeado com algum software)

1 curtida

Acredito que ele se expressou mal. Talvez o mesmo quis dizer que algumas ferramentas/tecnologias acabam funcionando precariamente e/ou bugando, o que realmente acontece. Eu mesmo já tive problemas com Java, Python e com o VIM no Windows, sem contar que trabalhar com C é um porre, mas não tenho tanta vivência com C.

2 curtidas

Sim sim, tem ferramentas que dá uma dor de cabeça em alguns momentos e quando formatamos ela funciona normalmente.

Um bom exemplo é o VIM (Que ainda estou aprendendo), não conseguia instalar ele no Windows pois o binário era identificado como malware.

Com java também tive alguns problemas, de alguma IDE (como o Netbeans) não conseguir criar novos projetos ou do VSCode que não executava meus códigos por “não ter o Java 15 instalado”, mesmo tendo.

Mas nesses três exemplos meus e na sua resposta eram problemas externos, que não pertencem ao S.O.

Uma má configuração pode bugar todo sistema.

Nos meus tempos de faculdade, era fácil fazer besteira com o Java no Windows 7.

Mas até hoje nada supera quando eu instalei o banco de dados da Oracle para fazer um trabalho. Deu tão errado que o sistema não queria mais iniciar :joy:

1 curtida

Ao meu ver o que mais atrai os programadores para o linux é a atual mudança no mercado e automatização dos ambientes de programação.
O git, por exemplo, tem o mesmo criador do linux e é basicamente a ferramenta dominante de versionamento de código.
Quase todas as linguagens agora tem uma forma automatizada de distribuir códigos baseada em pacotes: java tem o maven, php tem o composer, javascript tem o npm, python tem o pip, ruby tem o gem, .net tem o nuget, etc.
Além disso as formas de testes automatizados de aplicação, deploy e gerenciamento de rede estão diretamente relacionada ao uso de terminal.
O Linux prover uma melhor integração do programador com terminal, é um caminho natural o programador procurar por uma melhor imersão nesse ambiente, salvo casos em que ele utiliza uma tecnologia Microsoft.

4 curtidas

Não é todo o mundo, só os melhores.
Sim, porque um cara que gasta quatro anos da vida na faculdade e vai mexer com uma solução Windows Server e Oracle não está dando valor ao diploma ou não aprendeu nada.

Tirando esta polêmica, existem INÚMERAS vantagens de se utilizar um SO open source.

  1. Compreender a lógica do sistema. Hoje em dia quase não se produz mais software que não tenha alguma parte (para não dizer boa parte) pensada em modelo cliente - servidor, os servidores são Linux, e ao utilizá-lo, você aprende por osmose;
  2. Você tem muito mais controle da máquina. Pensa que porre é quando você comete algum erro no programa que trava a máquina e o Windows tem mania de não obedecer. Mas vai muito além disto, claro!;
  3. Ferramentas mais integradas. Se você precisa puxar alguma biblioteca, é rapidinho. No Windows muita coisa é um “parto”, porque depende de baixar, às vezes reiniciar a máquina, e querendo ou não, Windows tem aquele defeito de que quanto você mais mexe chega uma hora que tem que formatar. Uma boa distro já vem com bastante coisa, e se você precisar adicionar, é bastante simples;
  4. Muito mais flexibilidade em criar a área de trabalho, que resulta em maior produtividade.
  5. Segurança. Parece besteira, mas num SO fechado, não me parece muito agradável a ideia de ficar abrindo portas e não sabendo o que vai acontecer na minha máquina (controle é fundamental).

Vai depender da linguagem e do que você quer trabalhar, mas se for algo web, ou a distro já está pronta para começar e você vai produzir muito mais, ou é bem mais simples e rápido de se ajustar ao que precisa.

PS: Esqueci um detalhe muito importante, precisa de revisão.
Licença. Desenvolver em Open Source implica não ficar perdendo tempo em ler um monte de licenças para saber o que você pode ou não fazer. Você simplesmente sabe que o que está ali pode ser mexido, alterado, e feita a devida observação.
Pode parecer besteira, mas quando você começa a fazer coisa mais séria, o que vai ganhar num projeto caseiro pode ser muito menos que uma multa por algo indevido, mesmo que você use sem querer, ou uma dor de cabeça desnecessária.
Num ambiente open source, o que tem você sabe que pode mexer como quiser, quando quiser e para o que quiser.

1 curtida

Tem hora que tenho que lembrar que comecei a faculdade com Windows Vista, então tem coisa que até melhorou no Windows de lá para cá.
Mas Windows buga até sozinho, imagina com aplicações de terceiros, e imagina com as de desenvolvimento.
Menos, nalguns casos muito menos, mas buga. Só de você colocar um milhão de softwares, remover todos e o sistema ficar mais lento e pedir formatação já é um bug bem sério, que está no windows há quase meio século e a Microsoft não dá uma solução decente.

Estou a fazer um curso de Python. O instrutor ensinou a instalar o ambiente no Windows, são muitos passos e nem tudo estava igual ao que ele instruía no momento da configuração.

Já no Ubuntu, bastou instalar o Snap do Pycharm e estava com o ambiente completo para programar em Python.

1 curtida

Nesse ponto posso dizer que foi falha do seu instrutor.

    • No windows, baixe a versão que quer do python no site do python, instale e lembre-se de manter as opções de instalação do PIP e adicionar o python ao PATH selecionada (por padrão a instalação do pip já vem selecionada mas a adição do python ao path não).
    • Para facilitar a vida apenas: pip install virtualenvwrapper-win
    • Crite seu ambiente virtual com: mkvirtualenv <nome do ambiente>
    • Baixe e instale o pycharm do site do mesmo.
    • Nas configurações do projeto do pycharm, use o python do endereço C:\Users\<nome do seu usuário do windows>\Envs\<nome do ambiente que você acabou de criar>\Scripts
    • No prompt, use: workon <nome do ambiente que você acabou de criar>
    • Use o pip para instalar os pacotes que você vai usar nesse projeto.

Veja que de todas as etapas, as únicas que diferem do linux são:

  • Baixar o instalador do site do python no lugar de algum repositório via linha de comando;
  • Instalar o virtualenvwrapper-win no lugar do virtualenvwrapper (opcional ainda, apenas para facilitar o gerenciamento de ambientes virtuais);
  • Configurar o pycharm para usar o python de C:\Users\<usuário>\Envs\<ambiente>\Scripts ao invés de ~/.virtualenvs/<ambiente>/bin.

Obs.: Por padrão, a opção de adicionar o python ao path vem desativada porque apenas a versão “principal” do python deve ser adicionada (ou seja, aquela versão que será utilizada para gerenciar os ambientes virtuais), então, se no futuro você precisar usar outras versões do python para outros projetos, NÃO ligue essa opção nas versões que serão utilizadas apenas nos projetos.

Instalar e usar o python e usar o pip no linux e no windows é igualmente fácil e em ambos os ambientes você pode encontrar problemas:

Windows: Se você precisar de pacotes de python feitos em C e compilados na instalação (extremamente específicos, como por exemplo os pacotes voltados para engenharia nuclear), dificilmente esses pacotes funcionarão no windows porque a maioria desses pacotes foi feito no e para linux.

Linux: Dependendo da sua distro (no *ubuntu 20.04 isso acontece), se você quiser usar o matplotlib (usando o Qt), spyder ou qualquer outro pacote que utilize o Qt5, vai precisar instalar algumas dependências manualmente: (talvez outra distro não precise ou precise de outras dependências, não sei, eu uso o *ubuntu 20.04 e não estudei outras distros neste ponto)

sudo apt install libqt5quickcontrols2-5 libqt5multimedia5 libqt5webengine5 libqt5quick5 libqt5qml5

2 curtidas