Por que utilizar Linux para desenvolvimento?

[quote=HugoMarques]Olá pessoal,

Inicialmente quero dizer que não é intenção do tópico criar uma flamewar sobre qual o melhor SO.

Já trabalho com desenvolvimento JAVA a 4 anos e tendo passado por várias empresas nunca precisei de um conhecimento mais avançado em Linux visto que os ambientes eram sempre Windows. Ultimamente como venho buscando estudar várias coisas novas comecei a me perguntar se saber linux me seria realmente útil ou se poderia continuar trabalhando no windows sem me preocupar, visto que quase todo desenvolvedor mais sênior que conheço utiliza linux ou macOS.

Então minhas dúvidas são: Qual a real vantagem de desenvolver utilizando um SO como linux? Vocês ganham em produtividade? Ou talvez ferramental? Se positivo, qual o nível de conhecimento que um desenvolvedor deveria ter sobre linux a ponto de não precisar ser um administrador de sistemas? E o macOS também é válido?

Abraços pessoal!!!

[/quote]

Depende…

Se vc for o tipo de usuario “faça vc mesmo” e tiver dó do seu dinheiro, vai de linux.
Mas se vc tiver mais dinheiro e menos tempo e paciência, vai de windows.

Eu recomendo ubuntu mesmo, mas você deve usar a versão estável que é a 12.04.

A 12.10 está em teste e só será lançado em outubro.

baixe esse guia que deve te ajudar:
http://orgulhogeek.net/ubuntu-guia-do-iniciante/

nesse site da comunidade você encontra dicas de pós-instalação, tutoriais, como instalar a versão clássica do gnome, etc.:

http://www.ubuntubrsc.com/

[],

Hugo, da uma olhada nesse link e ve se te atende http://blog.sudobits.com/2012/04/17/how-to-install-xfce-on-ubuntu-12-04/.

No começo eu detestava o unity também, mas ficar bom depois que você se acostuma.

[quote=kicolobo][quote=cleciusjm]Eu atualmente só utilizo linux, gosto dele pela liberdade propiciada, por exemplo:

Até algum tempo atrás eu desenvolvia somente com J2SE e swing, então possuía uma maquina modesta para tal, até que comecei a trabalhar com android, então precisei ganhar desempenho, para não precisar trocar de maquina, mudei de KDE para XFCE e tive um ganho de desempenho sem muita dor de cabeça…

Além do que ambiente novos do Linux como Gnome3 e Unity, apesar de odiados por muitos por sua quebra de paradigma, após um determinado tempo se mostram ambiente altamente produtivos, devido as suas peculiaridades. A instalação e atualização de softwares também é algo simples, dependendo da distribuição, devido aos gerenciadores de pacotes como apt e pacman.

E normalmente os servidores utilizados são linux, e como bem sabemos existem pequenas divergências entre ele e o sistema da M$, logo, utilizando linux você evita problemas de sincronia entre ambiente de desenvolvimento e produção.

Por fim existem fatores que eu particularmente relevo, e muito, que é o conhecimento adquirido, perder medo de terminal, aprender a configurar certos arquivos, e se acostumar com a liberdade de poder fazer o sistema do forma que você preferir.[/quote]

Oi cleciusjm, eu tive bastante dificuldade com o Unity. No seu caso, quais foram os ganhos que ele trouxe pra você?[/quote]

No começo eu odiava o unity, inclusive já critiquei por aqui várias vezes, mas sempre teve os pontos positivos desde a época que era Ubuntu Netbook Remix, o próprio gnome-shell não era lá essas coisas, as aplicações em si também não estavam adequadas a esse novo ambiente.

Mas hoje em dia, alguns anos depois, evoluiu muito, sou completamente dependente do Unity, as principais vantagens são:

  • Atalhos do teclado que te permitem navegar mais facilmente entre janelas, abrir novas aplicações, buscar arquivos e etc.
  • Melhor utilização do espaço da tela, muito útil quando você quer rodar o eclipse em resoluções menores que full hd, até mesmo em full hd você percebe o ganho, um visual completamente clean.
  • Muito bonito, faz eu me lembrar que o Windows 7 já tem 3 anos e tá na hora de sair um novo.

As vantagens do Linux em geral na minha opinião são:

  • Linha de comando
  • Gerenciador de pacotes
  • Linha de comando [2]. Não existe coisa melhor que fazer tudo por linha de comando, inclusive aplicações que são originalmente CLI, como git, hg, svn, e outras como maven e console interativos de linguagens de programação como PROLOG, haskell, LISP, groovy, scala, ruby, os comandos para manipular arquivos que já foram citados aqui, o que mais uso é o tail -f pra ficar acompanhando logs de servidores de aplicações ou web containers, enfim, MUITAS OUTRAS COISAS que simplesmente o Windows te atrapalha ou dificulta, cmd é uma coisa tenebrosa, power shell idem. Opa, ainda esqueci dos fantásticos editores de texto de linha de comando como o vim e o emacs. Ainda tem os atalhos do terminal…

Vou parar por aqui, porque tem muita coisa mesmo que você absorve com os anos de uso, estudar pro LPI também te dá um bom conhecimento, se vai te tornar um desenvolvedor melhor, isso não sei te dizer, mas com certeza vai te tornar um desenvolvedor mais feliz, uso linux desde os 14 anos, nunca deixei de usar Windows, muitas vezes já tive que trabalhar usando Windows, mas usar Linux é uma coisa que faria mesmo que não fosse trabalhar com dev, meu sonho era ser sysadmin hahahaha

Já ia esquecendo dos Tiling Window Manager, é tanta coisa que dá pra escrever uns dois livros só falando de vantagens hahaha

Muita gente falou de segurança e desempenho, acredito que hoje em dia os sistemas estão bem próximos nesse sentido, não deve ser um critério de escolha

Agora que você comentou, se preparar para um LPI pode acabar dando uma boa base no SO?

Kkkkk

Olha porque não usar windows:
http://www1.folha.uol.com.br/tec/1122244-europa-investiga-possivel-bloqueio-a-rivais-do-internet-explorer-no-windows-8.shtml
:lol: :lol: :lol:

Imagine se vc tá fazendo algum software para web e quando for testar no firefox, não conseguir nem instala-lo…

Olha só, eu utilizo linux, só que o teclado é da microsoft… por algum motivo “mágico” o meu mouse trava…
O mais estranho é que isso só acontece quando o teclado que uso é o da microsoft.

Com certeza, mas muita coisa que você vê ali na LPI é meio “desnecessário” nas distros mais user-friendly.

Fiquei curioso no tópico, já que também não conheço nada de Linux, e também estou querendo aprender.
Uma outra dúvida que tenho é por que do Linux ser tão usado em ambientes de produção? Tem a ver com segurança? Performance?
Vi em algumas respostas sobre a eficiência do Linux contra vírus, o mesmo se aplica a por exemplo, invasões? Ou isso tem nada a ver, sendo isso responsabilidade de configurações de firewall por exemplo?
Obrigado.

[quote=Rendrys]Fiquei curioso no tópico, já que também não conheço nada de Linux, e também estou querendo aprender.
Uma outra dúvida que tenho é por que do Linux ser tão usado em ambientes de produção? Tem a ver com segurança? Performance?
Vi em algumas respostas sobre a eficiência do Linux contra vírus, o mesmo se aplica a por exemplo, invasões? Ou isso tem nada a ver, sendo isso responsabilidade de configurações de firewall por exemplo?
Obrigado.[/quote]

Tem muito a ver com questões de licença também. SO’s proprietários para servidores não são nada baratos.

[quote=Rendrys]Fiquei curioso no tópico, já que também não conheço nada de Linux, e também estou querendo aprender.
Uma outra dúvida que tenho é por que do Linux ser tão usado em ambientes de produção? Tem a ver com segurança? Performance?
Vi em algumas respostas sobre a eficiência do Linux contra vírus, o mesmo se aplica a por exemplo, invasões? Ou isso tem nada a ver, sendo isso responsabilidade de configurações de firewall por exemplo?
Obrigado.[/quote]

Linux é usado em ambiente de produção por ser mais estável e rápido que o Windows, além disso é mais seguro.

Não é que não exista vírus para o Linux, mas eu por exemplo nunca precisei clicar num arquivo executavel do Linux (.ELF), diferente do windows que você é obrigado a clicar em um .EXE toda semana.
A instalação dos pacotes geralmente vem de um repositório da distribuição, sendo assim muito mais seguro. Além disso é mais fácil fazer um vírus para Windows do que para Linux por causa da estrutura do ELF e do EXE.

Sobre invasões, o Linux tem suas falhas, mas o Windows nem se compara, para invadir um servidor windows tu tem um monte de formas, 1 linux tu vai ter que ralar muito mais.
Sem falar que os softwares para Linux são atualizados muito mais rápido que para o Windows, deixando o sistema mais seguro como um todo, pois as invasões as vezes são realizadas em cima das falhas dos softwares.

Ou seja, use e aprende o Linux se você tiver tempo, caso contrário continue no Windows e boa sorte! =)

E se você que usar windows que seja original né.
Você é um desenvolvedor, quer que alguem utilize o seu software, sem você receber nada por ele ?

[quote=Luiz Augusto Prado]Kkkkk

Olha porque não usar windows:
http://www1.folha.uol.com.br/tec/1122244-europa-investiga-possivel-bloqueio-a-rivais-do-internet-explorer-no-windows-8.shtml
:lol: :lol: :lol:

Imagine se vc tá fazendo algum software para web e quando for testar no firefox, não conseguir nem instala-lo…

Olha só, eu utilizo linux, só que o teclado é da microsoft… por algum motivo “mágico” o meu mouse trava…
O mais estranho é que isso só acontece quando o teclado que uso é o da microsoft.[/quote]

Driver proprietário. O pessoal tem até a boa intenção de fazer um genérico, mas sem esquema elétrico e documentação de projeto é muito difícil. Por exemplo a placa aceleradora amd radeon que uso no meu note. O driver for win chaveia a intel hd com a amd radeon dependendo da necessidade de cada software. Para linux o próprio driver da amd só faz isso manualmente, e se eu deixar a aceleradora on a bateria vai para o espaço em 1 hora.

[quote=juliocbq][quote=Luiz Augusto Prado]Kkkkk

Olha porque não usar windows:
http://www1.folha.uol.com.br/tec/1122244-europa-investiga-possivel-bloqueio-a-rivais-do-internet-explorer-no-windows-8.shtml
:lol: :lol: :lol:

Imagine se vc tá fazendo algum software para web e quando for testar no firefox, não conseguir nem instala-lo…

Olha só, eu utilizo linux, só que o teclado é da microsoft… por algum motivo “mágico” o meu mouse trava…
O mais estranho é que isso só acontece quando o teclado que uso é o da microsoft.[/quote]

Driver proprietário. O pessoal tem até a boa intenção de fazer um genérico, mas sem esquema elétrico e documentação de projeto é muito difícil. Por exemplo a placa aceleradora amd radeon que uso no meu note. O driver for win chaveia a intel hd com a amd radeon dependendo da necessidade de cada software. Para linux o próprio driver da amd só faz isso manualmente, e se eu deixar a aceleradora on a bateria vai para o espaço em 1 hora.[/quote]

É o mesmo esquema da tecnologia Optimus pra nvidia né?

[quote=Adis]E se você que usar windows que seja original né.
Você é um desenvolvedor, quer que alguem utilize o seu software, sem você receber nada por ele ?[/quote]

aqui no brasil…windows original só se vier pré-instalado no notebook/PC…

nunca conheci ninguem que comprou o dvd do windows, só em empresas mesmo…(por que também os caras da Microsoft pegam no pé)

[quote=juliocbq][quote=drsmachado][quote=juliocbq][quote=drsmachado][quote=andre_salvati]Hugo,

vai de Ubuntu.

Pq eu uso? Estabilidade e performance. Além disso, não posso me dar ao luxo de parar meu trabalho para reinstalar o Ruindows (a cada 6 meses ele vira uma carroça).[/quote]
Engraçado que eu nunca tive esse problema.
Formato o windows, mas mais por uma questão de costume do que perda de performance.
Lógico, o CCleanner e afins comem solto (smartdefrag), mas é só.
Lógico II, o linux é sim superior em gerenciamento e, quando você desinstala algo, ele realmente desinstala, não como o SO da MS que “faz de conta” que desinstala, mas esquece das entradas do registor, por exemplo.[/quote]

Em termos de “desempenho” de software o windows acaba sendo mais rápido por uma coisa:

  1. o kernel win não gerencia memória tão bem como o kernel linux(Porque o segundo desfragmenta e ordena a posição de memória dos programas). Isso implica em “execução mais rápida” e em maior erro dos programas.
    Lembra quando você precisava do defrag para corrigir o disco? O linux faz isso automaticamente mapeando a memória ram.[/quote]
    A percepção que eu tenho é que o uso de memória virtual do Windows é extremamente inferior ao linux (talvez pela obrigatoriedade da partição de swap do segundo). Além do que, você só teria problemas de conflito com o SO caso precise acessar disco (salvar em banco de dados, por exemplo), devido à concorrência para acessar o recurso. Tirando isso, o auto defrag não seria problema, justamente pelo melhor gerenciamento da memória que o pinguim possibilita (afinal, um aplicativo em execução está em memória, não?), ou estou enganado?
    [/quote]

O kernel linux desfragmenta em “memória ram”, enquanto o kernel win não faz isso e aloca tudo sequencialmente. Por isso a execução em ambiente win é mais rápida(por precisar apenas alocar sequencialmente) que em linux.

O linux ganha em estabilidade porque organiza memória melhor que o windows.[/quote]

Bom, nao sei que tipos de apps estão falando, mas aqui onde trabalho 90% dos desenvolvedores usam ubuntu(até os q nao curtem usam), e a troca aconteceu devido a um fator inicial principal: tempo de deploy/buid, usamos um BIG framework aqui, e o tempo de build ficou extremamente mais rapido no linux!

[quote=fredferrao][quote=juliocbq][quote=drsmachado][quote=juliocbq][quote=drsmachado][quote=andre_salvati]Hugo,

vai de Ubuntu.

Pq eu uso? Estabilidade e performance. Além disso, não posso me dar ao luxo de parar meu trabalho para reinstalar o Ruindows (a cada 6 meses ele vira uma carroça).[/quote]
Engraçado que eu nunca tive esse problema.
Formato o windows, mas mais por uma questão de costume do que perda de performance.
Lógico, o CCleanner e afins comem solto (smartdefrag), mas é só.
Lógico II, o linux é sim superior em gerenciamento e, quando você desinstala algo, ele realmente desinstala, não como o SO da MS que “faz de conta” que desinstala, mas esquece das entradas do registor, por exemplo.[/quote]

Em termos de “desempenho” de software o windows acaba sendo mais rápido por uma coisa:

  1. o kernel win não gerencia memória tão bem como o kernel linux(Porque o segundo desfragmenta e ordena a posição de memória dos programas). Isso implica em “execução mais rápida” e em maior erro dos programas.
    Lembra quando você precisava do defrag para corrigir o disco? O linux faz isso automaticamente mapeando a memória ram.[/quote]
    A percepção que eu tenho é que o uso de memória virtual do Windows é extremamente inferior ao linux (talvez pela obrigatoriedade da partição de swap do segundo). Além do que, você só teria problemas de conflito com o SO caso precise acessar disco (salvar em banco de dados, por exemplo), devido à concorrência para acessar o recurso. Tirando isso, o auto defrag não seria problema, justamente pelo melhor gerenciamento da memória que o pinguim possibilita (afinal, um aplicativo em execução está em memória, não?), ou estou enganado?
    [/quote]

O kernel linux desfragmenta em “memória ram”, enquanto o kernel win não faz isso e aloca tudo sequencialmente. Por isso a execução em ambiente win é mais rápida(por precisar apenas alocar sequencialmente) que em linux.

O linux ganha em estabilidade porque organiza memória melhor que o windows.[/quote]

Bom, nao sei que tipos de apps estão falando, mas aqui onde trabalho 90% dos desenvolvedores usam ubuntu(até os q nao curtem usam), e a troca aconteceu devido a um fator inicial principal: tempo de deploy/buid, usamos um BIG framework aqui, e o tempo de build ficou extremamente mais rapido no linux![/quote]

Vai ver pelo fato dele deixar tudo organizado acaba tendo esse ganho. Nesse post que você comentou eu me referia a alocação de memória. O win não verifica tanta coisa como o linux. Então o start das aplicações no windows são mais rápidas.

[quote=wagnerfrancisco]

É o mesmo esquema da tecnologia Optimus pra nvidia né?[/quote]

Isso mesmo. O linha corei da intel é de processadores que vem com uma placa de vídeo embutida neles(a intel hd). O processador tem a capacidade de trocar entre várias placas de vídeo para ganhar em economia de bateria. A nvídia já é mais cuidadosa com seu driver linux. Agora a amd é muito complicada. Eu preciso chavear manualmente pra poupar a bateria do meu note.

Com relação ao tópico, aprenda, vc vai gostar, mas siga firma, nao corra para as colinas na primera vez que tiver que configurar um arquivo manualmente!

Sempre fui usuario de windows, mas a algum tempo q nem vejo mais a cara do bixo, apesar de ter dual boot no meu note, o windows ainda esta la unicamente para jogos!

Como ja disseram, a grande maioria dos apps web rodam em servidores linux(tinha até um rumor de que o BING da microsoft rodava em linux :twisted: ), logo, se vc é um desenvolvedor vai acabar tendo que configurar um, eu acho que é assim pela segurança e a questão de uso de recursos, por ex. vc pode ter um VPS linux com 512MB de RAM rodando seus apps java tranquilamente, se fosse ter um windows acho que com 512 nem o windows subia, o ubuntu server limpo consome menos de 200MB pra subir.
E claro devido a recursos e licenças um VPS linux é mais barato que windows.

Fazer as coisas via linha de comando realmente vicia, hehe, mesmo o ubuntu tendo um gestor de software visual, eu instalo 99% das coisas via comando, com apt-get e tals.

Bom não ter que ficar reinstalando SO a cada 6 meses é outro fator, apesar do Win 7 ter melhorado bastante, dependendo do usuario isto ainda pode ser verdade.

Engraçado como ter um antivirus instalado se tornou algo normal e padrao no windows, eu nao aceito isto, ser obrigado a ter um sanguessuga de recursos instalado no sistema, pq se nao o mundo pode acabar.

Se vc usa muito o office pode nao curtir muito o LibreOffice, mas se vc é apenas um usuario comum como eu, e vai apenas digitar um texto e formata-lo, nao vai ter problemas.

Como to usando linux tanto no trabalho quanto em casa, o windows ja ta virando um cara estranho pra mim, engraçado como ainda dizem que o linux é mais dificil, mas o fato é que os gerenciadores de pacote são muito bons, melhor que ter que procurar na internet os programas e versões que precisa. Ontem mesmo instalei um linux + windows em dualboot pra um amigo, terminado a instalação do ubuntu ele ja estava ok pra uso, no windows havia acabado apenas a primeira parte agora ele teria que ir na internet e baixar dezenas de drivers, por outro pc claro pq nem o driver de rede tinha :lol:

java + linux = performance.

[quote=rmendes08]

Tem muito a ver com questões de licença também. SO’s proprietários para servidores não são nada baratos.[/quote]

A diferença entre uma instância linux e outra windows na Amazon é de R$ 0.01.