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
fonte
Respostas:
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.
fonte
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.
fonte
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.
fonte