Linux como uma plataforma de desenvolvimento completa?

9

Eu quero fazer o meu Fedora Linux capaz de seguir:

  1. Use o Linux para uma plataforma de desenvolvimento completa sem precisar de qualquer outra instalação do sistema operacional, mas ainda capaz de criar e testar programas em diferentes plataformas.

  2. Substitua completamente a máquina Windows por todos os outros trabalhos, por exemplo Office, Paint, Remote Desktop, etc.

Você pode sugerir projetos e ferramentas de código aberto para atingir os objetivos acima?

    
por Xinus 11.08.2010 / 19:05

5 respostas

4

Você pode fazer facilmente o desenvolvimento de plataforma cruzada, independentemente de ser um programador de sistemas, um desenvolvedor da Web ou um desenvolvedor de aplicativos de área de trabalho. Se você estiver em sistemas, então quaisquer utilitários e / ou drivers que você escrever para o Linux provavelmente funcionarão bem para outros * nix com modificações mínimas. Contanto que você escreva código C padrão e não use muitas chamadas específicas do sistema, elas podem ser até fáceis de migrar para o Windows.

Se você for um desenvolvedor de aplicativos de desktop, poderá segmentar GTK, QT ou wxWidgets, e seu aplicativo provavelmente funcionará bem nas três principais plataformas atuais (* nix, Windows, Mac). Novamente, mantenha as chamadas específicas do sistema ao mínimo ou isole-as em uma biblioteca de wrapper que será específica do sistema. Você também pode direcionar uma máquina virtual como a JVM e / ou o CLR, o que permitirá que o aplicativo funcione em todos os lugares.

Se você é um desenvolvedor web, é provável que você tenha muitas alternativas diferentes para escolher. Eu prefiro um pequeno servidor chamado Cherokee e eu desenvolvo e executo aplicativos ASP.NET (mono) e Django que são executados nele e use um back-end do PgSQL.

Portanto, a conclusão é que o desenvolvimento de plataforma cruzada no Linux pode ser feito, desde que você possa compilar o código na plataforma de destino e tenha isso em mente ao escrever seu código ou se você segmentar uma VM. O outro ponto é que você pode encontrar o Paradoxo da Escolha e não saber o que usar. Para isso, leia abaixo minha resposta à segunda questão.

Quanto à segunda questão, o melhor recurso que encontrei é chamado de Alternativas de código aberto . Este site lista softwares comerciais e suas alternativas de código aberto. Quase todas as alternativas rodam no Linux e no FreeBSD.

    
por 11.08.2010 / 19:58
4

Definir "plataforma". Você não pode testar razoavelmente software destinado ao uso no Windows ou Mac sem realmente executar esses sistemas operacionais, mesmo que seja possível usar a compilação cruzada para construí-lo no Linux. Para testes reais em outros sistemas operacionais, o VMware é uma ótima ferramenta.

A segunda parte da sua pergunta provavelmente deve ser uma questão totalmente separada. Mas você pode usar o OpenOffice.org ou o Google Docs para substituir o MS Office, Pinta ou GIMP ou o que for para substituir Paint, VNC ou Empathy + Vinagre para substituir o Remote Desktop, etc etc.

Seria mais fácil responder a essas perguntas se você fornecesse alguns casos de uso mais específicos.

    
por 11.08.2010 / 19:39
2

Weeeeeeel, # 1 é o doozie, senhor. Eu não sei se existe alguma maneira de alcançar esse objetivo. A compilação cruzada para outros * nixes pode ser feita (com com um pouco de dor de cabeça ) no seu caixa de desenvolvimento, mas como exatamente você deve executar esse código sem o sistema operacional e a arquitetura apropriados? Existem incursões extensas na emulação do sistema por aí, mas no final das contas isso é um engano. Se você quiser testar o software em um sistema operacional / arquitetura, execute-o nesse sistema operacional / arquitetura!

Agora, por outro lado, existem ferramentas que facilitam a construção do mesmo projeto em amplos intervalos de configurações. O Cmake é provavelmente o mais conhecido e bem testado. Pelo menos, isso ajudará você a testar seu projeto em outros sistemas ou incentivará outros a fazer isso por você.

Para ser tarifa, tenho certeza que isso é impossível em outros sistemas operacionais também.

# 2 é muito mais fácil

e assim por diante. Eu ajudaria mais, mas suas perguntas acuidade caem acentuadamente.

    
por 11.08.2010 / 19:42
1

Depende da sua plataforma de segmentação. Se você está desenvolvendo para uma plataforma virtual (Java ou mesmo .NET), você deve estar mais do que bem. Existem algumas plataformas que são mais amigáveis no Linux do que no Windows (por exemplo, Ruby).

Quanto ao Linux como desktop, basta listar o software que você está procurando. Não há praticamente nenhum software de desktop do Windows hoje em dia que não tenha uma alternativa para o Linux.

    
por 11.08.2010 / 21:09
1
O

MonoDevelop deve ser capaz de ajudá-lo a lidar com o lado do desenvolvimento:

MonoDevelop is an IDE primarily designed for C# and other .NET languages. MonoDevelop enables developers to quickly write desktop and ASP.NET Web applications on Linux, Windows and Mac OSX. MonoDevelop makes it easy for developers to port .NET applications created with Visual Studio to Linux and to maintain a single code base for all platforms.

(a ênfase é minha)

    
por 17.08.2010 / 02:57