Yo no he dicho que fuese del todo imposible, pero es evidente que, si fuese rentable, las empresas lo habrían desarrollado, crees que una empresa que genere versiones para Linux + Mac + Windows no se lo habrá planteado? Imaginate, el coste de desarrollar eso, de ser posible, es mas caro que el que una empresa estima en portar TODOS sus productos (por ejemplo Adobe con la suite creative, microsoft con office.... etc etc)
Yo pienso que lo ven como una amenaza para sus productos de pago. ¿Piensas que adobe y muchas empresas más no tienen chanchullos con los de los softwares privativos para sacar más tajada y no desarrollar para software libre?
Estas empresas son eso, empresas. Su única motivación es el dinero. Se basan en el modelo de exclusividad con sistemas privativos para que estes le den parte del pastel. Así todos ganan. Los usuarios con conocimientos que se quedan en sistemas privativos es por su software. La empresa encargada de gestionar los sistemas privativos se encarga de hacer contratos de exclusividad con compañías productoras de software de calidad. Así por ejemplo Adobe desarrolla sus "mejores" productos para sistemas privativos. Y hace otros de menos calidad para sistemas libres. Los usuarios que desconozcan este dato y usen el software de adobe verán que va mejor en Windows que Linux, lo cual hará que piensen que Windows es mejor, cuando en realidad lo que es mejor es el software de Adobe de Windows.
Esto se lleva haciendo desde siempre, Windows gana adeptos y Adobe gana una prima por su "buen labor" que será superior al posible beneficio que pueda sacar "exponiendo" la total calidad de sus productos en otro sistema.
Quitando esto todo simplemente podría no habérseles ocurrido, como a mi no se me ocurrirán millones de ideas que a otra persona sí.
eso mismo estaba pensando digo cuales deben ser las capacidades del servidor para compilar cientos o miles de aplicaciones? y ademas pongamole unos cuantos gigas a algunas de estas aplicaciones.
cuantos servidores se necesitarian para esto?
no se que tan practico seria la verdad
si me equivoco en algo me gustaria que me lo dijeran
Si tiene éxito con 4 anuncios mal puestos en el cliente o en la web oficial tienes para mantener todos los servidores necesarios. Cuantos más usuarios usen el servicio más servidores harán falta y a la vez cuantos mas usuarios usen el servicio más presupuesto se generará para obtener más servidores y mantenerlos.
Necesitaría un buen procesador y que los programas se compilaran por hilos y no secuencialmente.
Si dices que se necesitaría al principio para el proyecto, un servidor normalito vale mientras no se compilen proyectos muy grandes y a la vez.
Si tiene éxito se substentaría solo e incluso se podría mantener "por la marca". Es decir alguien que quiera darle fama a su software y ponga la marca que creemos en su producto para que el mercado lo acepte.
Pos si no se entiende, alguien crea un coche, pero su marca al no ser conocida no se vende, pues paga a Audi para que lo comercialicen con la marca Audi. Esto generará ingresos a ambos, y Audi no moverá ni un dedo.
Claro que esto lo comento porque veo que muchos estáis inseguros de que lo único que se generará con este proyecto son perdidas. Aún es muy pronto para esto todo pero si el software tiene un mínimo de éxito como veis se mantendría solo y podría producir ingresos sin tener que spamear a nadie.
La inversión inicial para el proyecto sería un servidor, tiempo y ganas de desarrollar.
El servidor mismo lo pongo yo. Si se ve que el proyecto va alcanzando éxito pues se van mejorando los códigos y añadiendo más servidores.
Así empiezan todas las grandes empresas, de cero.
Yo creo que el proyecto puede tener una oportunidad en el mercado y además como software libre.
A ver... qué dificulta la portabilidad de un ejecutable? Yo veo dos causas:
1. Los distintos procesadores tienen diferentes juegos de instrucciones y opcodes.
2. Los ejecutables están en un formato de ejecutable propio de un sistema determinado, y llaman a las APIs de ese sistema determinado.
La primera dificultad se puede salvar desde la creación de los lenguajes de alto nivel, en los que un compilador traduce el código al lenguaje ensamblador del procesador en cuestión (sin tener en cuenta los lenguajes interpretados).
La segunda dificultad hay que explorarla un poco más. Dividamos los ejecutables en dos grupos, a saber:
1. Los que usan el formato PE y llaman a las APIs de Windows.
2. Los que usan el formato ELF y llaman a las APIs de POSIX, y posiblemente, a otras específicas del sistema.
Bien, ahora supongamos que queremos un programa que, dado un ejecutable, lo convierta en uno equivalente del otro grupo.
Mi aproximación mental:
Se crean dos librerías, una que implemente las APIs de POSIX, las syscalls de Linux, BSD, etc... en Windows, y otra que implemente las APIs de Windows en Linux y otros sistemas.
El programa debe, además, cambiar el formato de ejecutable. Esto se presenta muy costoso, pero se puede extraer el código ensamblador y los datos de un ejecutable y construir un ejecutable válido para el otro sistema a partir de esos datos, añadiendo headers y demás.
Supongamos que ya hemos hecho lo anterior. Ahora tenemos un ejecutable de Windows que queremos portar a Linux, y lo pasamos por el hipotético programa descrito más arriba. Nos queda un ejecutable ELF con el código ensamblador y los datos del programa original, que llama a APIs de Windows. Sólo queda volverlo a enlazar con nuestras hipotéticas librerías, que implementan todas las APIs de Windows en Linux, y relocalizar los símbolos de los propios datos del ejecutable.
Parece enorme, no?
La verdad es que parece muchísimo trabajo, hay que seguir buscando alternativas, y de no encontrar una si decidimos hacerlo como acabas de mencionar habría que hacer equivalencias entre librerías que generen el mismo resultado. Eso llevaría un enorme trabajo y no creo que sea para nada viable así que habría que seguir buscando alternativas hasta dar con una razonable.