Como integrar melhor um ambiente de desenvolvimento unix ao Windows [fechado]

8

Sou principalmente um usuário do Windows, mas faço a maior parte do meu desenvolvimento (essencialmente desenvolvimento da web) usando ferramentas e software unix. Eu estive indo e voltando entre o uso de uma máquina virtual lubuntu dedicada no Virtualbox e o uso de algumas ferramentas diretamente no Windows (msgit, python, django), mas nenhuma dessas abordagens é totalmente satisfatória.

Gostaria de saber como os outros desenvolvedores usam para integrar melhor um fluxo de trabalho unix ao Windows. Por exemplo, integração mais estreita entre linux e vm e windows. A demonstração vagante mostrou como uma VM poderia funcionar a partir de uma pasta de projeto do Windows e achei isso legal. Gostaria de ouvir outras ferramentas e dicas que ajudariam a imitar o fluxo de trabalho que se pode encontrar no OS X (é claro que eu entendo que ele não pode ser tão fortemente integrado no Windows quanto não possui os mesmos fundamentos do unix).

PS: Eu tentei o cygwin também

EDIT para esclarecimentos sobre o que acho que falta (graças ao axblount por apontar isso): ferramentas unix como msys et al não funcionam tão bem quanto suas contrapartes unic nativas. Muitos scripts, instaladores, exigem configuração adicional ou não funcionam. Por exemplo, fazer com que o virtualenvwrapper funcione não é muito simples. virtualbox: idealmente, eu gostaria de usar o software windows (photoshop, texto sublime 2) perfeitamente com o linux. Eu uso principalmente um atm de cliente FTP para mover sobre arquivos editados no lado do Windows, o que é um processo tedioso.

RESUMO: Parece que não há soluções estabelecidas. Como solução temporária, provavelmente tentarei usar as versões nativas de frameworks e bibliotecas através da linha de comando do Windows, quando possível, e alternar para uma ferramenta como vagrant para programas incompatíveis.

MAIS INFORMAÇÕES COM RESPOSTAS E COMENTÁRIOS: O problema de distinção entre maiúsculas e minúsculas parece funcionar contra o Windows, conforme apontado por @GlenPeterson

Shigar Kenze
fonte
Post de estouro de pilha relacionado: stackoverflow.com/questions/1414383/unix-style-tools-on-windows
Oded
Você parece ter coberto as bases usuais. O que você sente falta das coisas que tentou?
axblount
@axblount Eu editei a pergunta
Shigar Kenze
Por que não mergulhar e substituir o Windows pelo Linux? :)
Earlz
Você ainda precisa testar nos navegadores da Web Windows, portanto, não é aconselhável substituir completamente o Windows pelo Linux.
Nathan Pilling

Respostas:

7

A maior parte do seu desenvolvimento (essencialmente desenvolvimento web) usa ferramentas e software unix.

Você testou diferentes alternativas para usar essas ferramentas no Windows, mas até o momento não encontrou uma que funcionasse tão bem quanto a realidade.

Então você deve realmente considerar migrar para o Linux como seu sistema operacional de desktop e virtualizar o Windows para todo o resto.

Acredite, você não vai se arrepender. Sua área de trabalho será mais rápida, mais segura, sem vírus e você terá todas as ferramentas necessárias para seus projetos de desenvolvimento.

EDITAR:

Acomodando para um ótimo comentário de @GlenPeterson:

Se você estiver implementando no Unix / Linux, deverá trabalhar em um sistema operacional que diferencia maiúsculas de minúsculas. A ausência de maiúsculas e minúsculas do Windows pode causar problemas algum dia.

Tulains Córdova
fonte
Uso Linux desde 1998, então posso afirmar que o conheço bem. No geral, eu gosto muito do Linux (especialmente Ubuntu e derivados). Mas depois de ir e voltar entre os dois, não há dúvida de que o Windows atende melhor às minhas necessidades (photoshop, jogos, suporte de hardware). Como os problemas de hardware ainda acontecem hoje, prefiro virtualizar o Linux no Windows do que o contrário. No trabalho, eu uso uma caixa Linux dedicada além do meu pc windows. No geral, eu concordo que é um ótimo sistema operacional!
Shigar Kenze
1
Bem, mudei para o Linux no trabalho há 4 anos. Eu não jogo no trabalho;) e a pouca manipulação de imagem que faço, faço no Gimp. E o Ubuntu percorreu um longo caminho no suporte de hardware nos últimos dois anos. É praticamente p & p agora. E sem vírus.
Tulains Córdova
3
Se seus projetos serão implantados no * nix, você precisará trabalhar em um sistema operacional com distinção entre maiúsculas e minúsculas - ponto final. Mudei para o Linux como meu desktop principal há 3 anos. O Lubuntu não possui alguns recursos da área de trabalho que eu realmente gosto. Experimente o Xubuntu. Se sua máquina possui uma placa de vídeo nVidia, você deve ter bom conhecimento de hardware. Eu corro 3 versões diferentes do Windows no VirtualBox para teste. Eu tenho o Photoshop em um deles, mas geralmente uso o GIMP. Eu não jogo, mas o Steam for Linux (da Valve) deve resolver isso para você nos próximos 6 meses. Torne-se um testador beta e faça isso acontecer mais cedo!
precisa saber é o seguinte
1
Apenas para continuar, minha empresa de desenvolvimento web começou a vida há 8 anos como uma loja da Microsoft, mas sempre implantada em um servidor * nix. Um ano depois, estávamos todos * nix / BSD e tudo o que resta do Windows hoje é uma caixa antiga no canto para testar o IE.
Rob
1
Se você trabalha / implanta em um ambiente * nix, trabalhar diretamente em um deles abrirá muitas possibilidades que você não seria capaz de fazer de outra maneira. A menos que você mergulhe no ambiente, você está apenas raspando a superfície. Eu estava em uma posição semelhante a você cerca de um ano atrás e não me arrependi de ter me mudado para o Ubuntu por um segundo. Muitas ferramentas não são portadas corretamente, ou de todo.
Adrian Schneider
4

Se você estiver implantando seu software em servidores Linux, pratique a implantação de seu software em um servidor Linux (mesmo em uma VM). Torne seu processo de implantação automático. A parte mais importante é a distribuição e implantação de código. Você deve construir e implantar consistentemente no seu tipo de sistema de destino.

Encontre um bom terminal e aprenda a usá-lo. Eu uso o Putty e achei muito melhor que o cygwin e o msys.

Alguns sistemas de integração contínua permitem executar e testar o código remotamente antes que ele possa ser confirmado no seu VCS. O uso dessa funcionalidade no tipo de sistema de destino pode evitar muitos problemas.

Nathan Pilling
fonte
Na verdade, eu uso massa de vidraceiro no trabalho. Admito que tenho menos conhecimento sobre sistemas de integração contínua. Um deles poderia ser usado para enviar automaticamente arquivos para a VM? Isso funcionaria. Presumo que a maioria deles seja executada no Windows? Estou procurando isso no caixa eletrônico.
Shigar Kenze
1

Se você estiver executando uma versão recente do Windows, dê uma olhada no SUA , o subsistema para aplicativos Unix. Possui um shell (ksh) e suporta mais de 300 comandos e utilitários comuns do Unix. A maioria dos documentos fala sobre o Server 2003 R2, mas também é instalado no Windows 7.

TMN
fonte
Interessante. Espero que eles continuem atualizando isso. De qualquer forma, vou tentar. Eu gosto que costumava cmd.exe (e presumivelmente PowerShell também)
Shigar Kenze