¿Linux como plataforma de desarrollo completa?

¿Linux como plataforma de desarrollo completa?

Quiero que mi Fedora Linux sea capaz de lo siguiente:

  1. Utilice Linux para una plataforma de desarrollo completa sin necesidad de instalar ningún otro sistema operativo, pero aún así podrá crear y probar programas en diferentes plataformas.

  2. Reemplace completamente la máquina Windows para todos los demás trabajos, por ejemplo, Office, Paint, Escritorio remoto, etc.

¿Puede sugerir proyectos y herramientas de código abierto para lograr los objetivos anteriores?

Respuesta1

Defina "plataforma". No se puede probar razonablemente software destinado a Windows o Mac sin ejecutar esos sistemas operativos, incluso si es posible utilizar compilación cruzada para compilarlo en Linux. Para realizar pruebas reales en otros sistemas operativos, VMware es una gran herramienta.

La segunda parte de su pregunta probablemente debería ser una pregunta totalmente separada. Pero puedes usar OpenOffice.org o Google Docs para reemplazar MS Office, Pinta o GIMP o lo que sea para reemplazar Paint, VNC o Empathy+Vinagre para reemplazar el Escritorio remoto, etc., etc.

Sería más fácil responder estas preguntas si proporcionara algunos casos de uso más específicos.

Respuesta2

Puede realizar fácilmente un desarrollo multiplataforma, ya sea programador de sistemas, desarrollador web o desarrollador de aplicaciones de escritorio. Si le gustan los sistemas, entonces cualquier utilidad y/o controlador que escriba para Linux probablemente funcionará bien para otros *nix con modificaciones mínimas. Siempre que escriba código C estándar y no utilice demasiadas llamadas específicas del sistema, puede ser incluso fácil de migrar a Windows.

Si es un desarrollador de aplicaciones de escritorio, puede apuntar a GTK, QT o wxWidgets y su aplicación probablemente funcionará bien en las tres plataformas principales actuales (*nix, Windows, Mac). Nuevamente, mantenga las llamadas específicas del sistema al mínimo o aíslelas en una biblioteca contenedora que será específica del sistema. También puede apuntar a una máquina virtual como JVM y/o CLR, lo que permitirá que la aplicación funcione en todos los ámbitos.

Si es un desarrollador web, es probable que se encuentre con demasiadas alternativas diferentes para elegir. Prefiero un pequeño servidor web llamadoCherokeey desarrollo y ejecuto aplicaciones ASP.NET (mono) y Django que se ejecutan en él y usan un backend PgSQL.

Entonces, la conclusión es que se puede realizar el desarrollo multiplataforma en Linux, siempre que pueda compilar el código en la plataforma de destino y lo tenga en cuenta al escribir el código o si apunta a una máquina virtual. El otro punto es que puedes toparte conLa paradoja de la eleccióny no saber qué usar. Para eso lea a continuación mi respuesta a la segunda pregunta.

En cuanto a la segunda pregunta, el mejor recurso que he encontrado se llamaAlternativas de código abierto. Este sitio web enumera el software comercial y sus alternativas de código abierto. Casi todas las alternativas se ejecutan en Linux y FreeBSD.

Respuesta3

Weeeeeeel, el número 1 es bastante fantástico, señor. No sé si hay alguna manera de lograr este objetivo. Se puede realizar una compilación cruzada con otros *nixes (con un poco de dolor de cabeza) en su cuadro de desarrollo, pero ¿cómo se supone exactamente que debe ejecutar ese código sin el sistema operativo y la arquitectura adecuados? Hay grandes incursiones enemulación del sistemapor ahí, pero en última instancia esto es una trampa. Si desea probar el software en un sistema operativo/arquitectura, ejecútelo en ese sistema operativo/arquitectura.

Ahora, por otro lado, existen herramientas que simplifican la construcción del mismo proyecto en una amplia gama de configuraciones. hacerEs probablemente el más conocido y probado. Al menos esto le ayudará a probar su proyecto en otros sistemas o animará a otros a hacerlo por usted.

Para ser honesto, estoy bastante seguro de que esto también es imposible en otros sistemas operativos.

#2 es mucho más fácil

y así sucesivamente. Ayudaría más, pero la agudeza de tus preguntas disminuye drásticamente.

Respuesta4

Monodesarrollodebería poder ayudarle a controlar el lado del desarrollo:

MonoDevelop es un IDE diseñado principalmente para C# y otros lenguajes .NET. MonoDevelop permite a los desarrolladores escribir rápidamente aplicaciones web ASP.NET y de escritorio enlinux, ventanasyMac OS X. MonoDevelop facilita a los desarrolladores la migración de aplicaciones .NET creadas con Visual Studio a Linux y el mantenimiento de una única base de código para todas las plataformas.

(el énfasis es mío)

información relacionada