¿Cuál es el mejor lenguaje de codificación para crear software que pueda ejecutarse en todos los sistemas operativos?

Esta es una pregunta interesante. Lo he pensado mucho.

No hay mejor lenguaje de codificación en este contexto. El software que cree puede provenir de CUALQUIER dominio de aplicación (como web, escritorio, dispositivos móviles, juegos, computación en la nube, computación numérica, ciencia de datos, robótica, Internet de las cosas, aprendizaje automático, realidad virtual, finanzas, telecomunicaciones, etc.).

El software debe satisfacer las limitaciones de rendimiento / memoria de CUALQUIER plataforma operativa (como sistemas integrados, dispositivos móviles, computadoras de escritorio, supercomputadoras).

Su desarrollo debe ser económico y práctico desde una perspectiva empresarial. Esto incluye asuntos tales como la productividad y el “tiempo de comercialización” y las preocupaciones de recursos humanos.

El software debe ser capaz de cumplir con todos los requisitos / expectativas de usabilidad, como “apariencia” (atractivo visual) y capacidad de respuesta.

El problema es que ningún idioma es bueno en todo. Ni siquiera JavaScript. La informática numérica y la ciencia de datos y el aprendizaje automático requieren bibliotecas de soporte sofisticadas de las que carecen muchos idiomas. Muchas aplicaciones en la nube y en el servidor requieren una gran concurrencia o una ejecución rápida que la mayoría de los idiomas no pueden manejar bien. Algunos idiomas son simplemente demasiado grandes para caber en un entorno con memoria limitada. Algunos carecen de las facilidades para el desarrollo avanzado de UI. Todos los idiomas no principales plantearían serios problemas de recursos humanos.

Esta pregunta no define adecuadamente qué se entiende por “mejor”. Y cualquier definición que se te ocurra seguramente afectará a algunas personas de la manera incorrecta. Entonces no hay mejor lenguaje de codificación.

Sin embargo, hay un lenguaje que puede acercarse más que cualquier otro. Como era de esperar, ese lenguaje es Java . (Y esto me entristece porque Smalltalk es mi idioma favorito).

JavaScript Je Hoy es el camino más rápido y, con mucho, el más fácil hacia el mercado.

Tu aplicación:

  1. No requiere una configuración compleja , compilación cruzada y construcción como QT implementa una aplicación en Windows
  2. No tener restricciones de licencia. GTK + es GPL y QT es LGPL (con un precio irrazonable para la licencia patentada para una pequeña startup)
  3. Ejecutar en el escritorio a través de Electron o http://nwjs.io/
  4. Ejecute Native en el móvil a través de React Native
  5. Ejecutar en dispositivos móviles a través de motores basados ​​en WebView
  6. Ejecutar en el navegador (en caso de que cambie su estrategia de mercado)
  7. Estar a salvo de la piratería. (Solo descargue parte del procesamiento de su aplicación al servidor)
  8. Tenga muchas bibliotecas para cualquier caso que necesite

Por otro lado:

  1. Programa de gran tamaño (~ 100 MB para aplicaciones basadas en electrones)
  2. Tiempo de inicio lento (es posible que necesite una pantalla de inicio para eso)
  3. Widgets no nativos (excepto React Native)
  4. Su aplicación puede ser lenta si usa DOM en lugar de renderizado basado en Canvas .

Sí, definitivamente debes apuntar a JavaScript.

Si no te gusta Existen:

  1. Mecanografiado
  2. ClojureScript
  3. Olmo
  4. PureScript

Todos comparten los mismos beneficios para su uso.

Esta es una pregunta tipo “Coca-Cola vs. Pepsi” porque pide opiniones.

Si desea que un programa se ejecute en todos los sistemas operativos (¿qué tal la mayoría?), Entonces necesita un lenguaje “interpretado” en lugar de un lenguaje “compilado”. Esto significa Java, Javascript, Ruby, Python, BASIC … pero no C, C ++, C #, Fortran, Assembly.

La razón es que cuando “compila” un idioma, se compila para un determinado sistema en particular. Si está compilado para Mac, por ejemplo, no se ejecutará en Windows o Linux. Por otro lado, un lenguaje interpretado tiene un intérprete que “compila sobre la marcha”, por así decirlo, residente en el sistema en el que lo está ejecutando. Sin embargo, hay un sacrificio en la velocidad. Los llamados “programas” son “guiones” que el intérprete debe seguir. (Realmente se denominan scripts y estos lenguajes también se denominan “lenguajes de scripting”). Dado que cada sistema tiene su propio intérprete apropiado, generará el código adecuado para esa máquina.

Ahora tenemos que preguntar “¿cuál de estos idiomas interpretados?” A menos que el usuario haya descargado e instalado específicamente los intérpretes, la mayoría de las computadoras no tendrán un intérprete para Ruby o Python, pero generalmente tendrán un intérprete para Java y Javascript de forma predeterminada.

Entonces, a riesgo de ser criticado por otros a quienes les guste los Fords mejor que Chevy, diría Java o Javascript.

Escribir en un idioma para * Todos * Sistemas operativos es una gran pregunta, es casi imposible. Sin embargo, para * most *, es decir, Mac, Windows, Linux, diría que las mejores opciones son C o Java, o quizás Go, según sus necesidades.

Java le proporcionará un entorno muy rico para crear aplicaciones GUI para Mac, Windows o Linux, pero, por supuesto, deberá suministrar JVM, que es bastante fácil, pero es de 70 MB, por lo que si está creando un Juego AAA, a nadie le importan 70 MB, pero si estás haciendo una pequeña utilidad, puede que les importe.

C puede ser bueno para escribir cosas que no son de GUI, o cosas de GUI si muestra un poco de cuidado, pero obtener una GUI que funcione en Mac, Windows, Linux y se vea aceptable en todas ellas, es un poco exagerado, Especialmente la Mac.

Ir más o menos cae en la misma categoría que C, pero a la mayoría de las personas les resultará más fácil escribir.

Si realmente desea apuntar a tantos sistemas operativos como sea posible, es decir, no solo Mac, Windows, Linux, sino muchos bichos raros de los que nunca ha oído hablar, entonces C es su mejor opción, pero incluso entonces, apuntar a * todo * es bastante difícil. Tenga en cuenta que algunas plataformas como Inferno no tienen un compilador de C, plataformas como IBM no uso ASCII por defecto, y plataformas como RISC OS no son remotamente similares a POSIX.

hay un idioma en mente: FORTH

FORTH es tan fácil de implementar que no puedo imaginar ninguna situación que no tenga. Un Forth completo podría ser extremadamente pequeño (compilador, intérprete, editor, etc.) en 4k de memoria. Forth está disponible para JavaScript, Java, C, Python, muchos procesadores diferentes, …

De todos modos, hay algunos inconvenientes, de corse. construir un sistema Forth bien optimizado y de alta calidad llevará una cantidad considerable de tiempo. Programar Forth no es asunto de todos. La biblioteca estándar es muy pequeña.

Forth es un lenguaje que te permite hacer lo que quieras: ningún otro idioma se acerca a eso (puede ser ensamblador), ni siquiera C. Forth te da la máxima libertad, pero tienes que hacerlo todo tú mismo.

Forth (lenguaje de programación) – Wikipedia

Página de inicio de UltraTechnology, Forth, Chips, F21, Jeff Fox, Charles Moore, Video Theatre

JavaScript

Por dos razones realmente.

Primero, el lenguaje tiene que ejecutarse a un nivel más alto que un C, Java, C #, etc. debido a las diferencias de hardware y sistema operativo, estos idiomas por razones de rendimiento deben ejecutarse en un nivel inferior e interactuar más directamente con el sistema operativo en el que se encuentra arriba de. JavaScript, que es un lenguaje de scripts interpretado, solo necesita ser compatible con el intérprete de JavaScript, que por naturaleza está diseñado para ser más portátil y tiene un estándar bien definido que no se basa en un rendimiento extremo. Hay otros lenguajes con secuencias de comandos que siguen este patrón, como python y ruby, pero en este punto JavaScript está más extendido si también tiene en cuenta todas las implementaciones del navegador.

En segundo lugar, JavaScript está en todas partes en los principales sistemas operativos. Está en el nivel del sistema con node, js o se instala fácilmente. Está en cada navegador web que se ejecuta incluso en un nivel superior en la pila. Y si trajo los requisitos de su sistema operativo a Android e iOS y Windows mMobile, etc. JavaScript está presente en todas estas plataformas.

Eso dependerá en gran medida de lo que intente lograr. Es imposible crear un archivo ejecutable que se ejecute de forma nativa en todos los sistemas operativos. Por lo tanto, debe haber un intérprete para el código en cada plataforma en la que desee ejecutar ese código.

Eso podría lograrse, por ejemplo, con una aplicación web que usaría el navegador y Javascript para interpretar su código y ejecutarlo. O con una máquina virtual Java que interpretaría su código de bytes para ejecutarlo.

Pero si necesita generar código nativo para ser interpretado en cada plataforma, C probablemente sea el camino a seguir. Su éxito de portabilidad dependerá de una serie de factores (disponibilidad de la biblioteca en todas las plataformas, cumplimiento de los estándares, etc.)

Entonces, nuevamente, la respuesta depende básicamente de qué tipo de aplicación desea desarrollar.

Los lenguajes informáticos son como la moda ir y venir, ninguno se queda demasiado tiempo. Mire a su alrededor COBOL, Fortran, Pascal, … estos fueron los idiomas * estrella * para la aplicación Biz, la aplicación científica, la programación estructural, respectivamente, en los años 60 y 80. Luego, el paradigma cliente-servidor en los años 90 requería un lenguaje GUI enriquecido para la arquitectura de cliente ligero / servidor gordo, dando a luz a PowerBuilder, Visual Basic, etc. En los años 90, OO era la “religión” de TI, por lo que la reencarnación de C en C ++ & Java irrumpió en el mundo.

Cuando la plataforma de arquitectura cambie, también nacerán nuevas herramientas. En la década de 2000, la arquitectura de la aplicación basada en navegador dio lugar a los lenguajes de script JavaScript, PHP (el idioma nativo de Facebook).

En 2010 Ruby (y “Rail” para web), aparece Python, también los teléfonos móviles con CPU multinúcleo capaces de procesamiento concurrente atraen una “religión” diferente, a saber, la Programación Funcional (FP) reencarnada de la antigua Lisp en la comunidad de inteligencia artificial de los años 60 . Para tomar el viaje en el tren Java que, después de 20 años, ya ha sido omnipresente en todas las plataformas (Windows / MacOS / Linux), los lenguajes FP (por ejemplo, Clojure) se ejecutan en JVM para aprovechar las ricas bibliotecas Java. Otros lenguajes FP menos conocidos pero prometedores son Haskell, Scala, LUA con una interesante base matemática teórica basada en categorías.

No hay una mejor herramienta para todos los propósitos, pero seguramente hay UNA mejor herramienta para cada contexto. Si se encuentra en el último contexto de “AI de aprendizaje profundo”, entonces el lenguaje FP es el mejor. Si la aplicación Biz, Java es la norma. Si la aplicación del navegador, JavaScript …

Justo cuando lleno mi caja de herramientas de garaje con diferentes herramientas, por ejemplo. martillo, destornillador, sierra para diferentes tareas, como un profesional de software de TI debemos hacer lo mismo para usar al menos 3 idiomas para el desarrollo de diferentes aplicaciones. Sugiero estos 3 idiomas populares a continuación para los sistemas operativos Windows / Mac OS / Linux:

  1. Java (para aplicaciones Biz),
  2. JavaScript (para aplicaciones basadas en navegador),
  3. Python o cualquier lenguaje FP (para Scientific, AI).

Podría haber variaciones de los 3, como C ++ (reemplazar Java), PHP o Ruby / Rail (reemplazar JavaScript), Go (reemplazar Python), FP (Clojure / Scala / Haskell / LUA). En el mundo móvil, hay 2 transmisiones principales: iOS utiliza Objective-C (de la familia C de OO), Android se ejecuta en Java en una JVM “personalizada” (VM “Dalvik”)

Chacun a son goût (francés: cada uno tiene su propio gusto, o “Belleza en los ojos del espectador”, “各 花 入 各 眼”).

Desde mi experiencia de contratación de programadores, es la habilidad / conocimiento requerido, pero no el lenguaje específico, lo que le dice a un buen programador. Conocer un cierto lenguaje, como COBOL, hace que un desarrollador de Cliente-Servidor falle, o que esté demasiado arraigado en C / C ++ o en cualquier lenguaje de procedimiento / imperativo, hace que un codificador FP sea muy elegante.

¿Desea crear software de forma graciosa?

Puede elegir BotCretor, que puede crear cualquier software y software de automatización de marketing en redes sociales que desee sin ningún conocimiento profesional de programación.

  • Fácil de usar

El simple clic del mouse y los comandos de arrastrar y soltar crearán el software que desea, no necesita conocer ningún conocimiento profesional de programación.

  • Extremadamente inteligente y potente

BotCreator no solo puede crear herramientas web automáticas rápidamente, sino que también puede operar automáticamente programas de escritorio. Incluso puede simular personas reales para registrar actividad en su página web.

  • Compilar y vender

Con un simple clic del mouse, su idea puede convertirse en una pieza de software independiente que puede vender directamente a clientes y empresas. Cree un programa real que se ejecute sin tener que comprar nada extra y véndalo sin pagar regalías. El poder está en tus manos para convencer a todos de que contrataste a un costoso equipo de programadores. También puede utilizar nuestra licencia integrada y el sistema de actualización automática para su software, todo está listo para usted.

Ganar dinero en minutos

Puede vender o compartir sus bots en nuestra Tienda BotCreator, y podemos ayudarlo a promocionar sus productos entre nuestros grandes usuarios, puede comenzar a ganar dinero con solo unos pocos clics.

Como se argumentó en la respuesta de Garry Taylor a ¿Cuál es el mejor lenguaje de codificación para crear software que pueda ejecutarse en todos los sistemas operativos?

puede que no haya tal lenguaje, a menos que Limbo lo sea … y tendría que implementarse como compilación en C.

De todos modos, solo hay unos pocos que importan, y luego Julia es el mejor idioma.

No puedo decir mucho más a menos que tenga requisitos adicionales.

La GUI será un problema, independiente del idioma. C y C ++ no admiten GUI de forma nativa , y de todos modos no son los mejores. Ni siquiera dijo que una GUI era un requisito (podría ser backend web o solo CLI que le interese).

Si está apuntando a “móvil”; Android, iOS o ambos (entonces estás en problemas …), entonces Julia debería funcionar eventualmente … y para compilar en Web Assembly.

Para aclarar:

C (y C ++) es muy portátil, muchos lenguajes compilan a C y obtienen el mismo beneficio. Julia2C de Intel podría ser una opción si eso realmente te importa. Sin embargo, C y C ++ son lenguajes malos, a tener en cuenta a menos que realmente desee y sepa (probablemente de manera incorrecta) que la ayuda sobre las alternativas.

Java (y JavaScript) es muy portátil, simplemente no es tan bueno como un idioma (o cualquiera de los lenguajes que compilan a Java [bytecode]).

JavaScript es similar para un objetivo, algo así como para un sistema operativo (el navegador) dentro de un sistema operativo. Es el peor idioma que puede encontrar, pero es un buen compilador de destino (asm.js) o Web Assembly.

Muchas cosas útiles aquí. Ciertamente, si desea producir software a través de sistemas operativos, es importante tener un ecosistema bien definido y altamente portátil que incluya bibliotecas, herramientas de desarrollo, etc.

Interpreté la pregunta un poco diferente. Ahora no creo que sea lo que el OP tenía en mente, pero es una noción interesante: ¿cómo puedes escribir un programa que se comporte igual en una amplia variedad de plataformas? Si este es el problema, entonces debe seguir con los idiomas de alto nivel. C y C ++ serían desastrosos, porque hay demasiada definición en el lenguaje que es “implementación definida” o “no especificada”. Quizás haya algunas buenas herramientas de tipo pelusa para ayudarlo a evitar problemas de no portabilidad, pero evitarlos como la peste si quisiera que un programa se ejecutara en múltiples entornos. No me malinterpreten, en realidad disfruto programando en C. Solo estoy reconociendo que, si escribo algo no trivial, probablemente no estoy 100% seguro de que no haya algo que funcione en el sistema con el que probé pero fallará en otra parte.

Si este es el problema, entonces la mayoría de los lenguajes de alto nivel con una semántica bien definida deberían estar bien. Los idiomas con una máquina virtual como Java o ECMAScript / Javascript serían buenos. Creo que la gente ha descubierto cómo escribir Javascript independiente del navegador (¿sí?). Haskell, Scheme, OCaml, Scala, Python, Ruby, etc., etc., todo parece plausible.

Sin embargo, un lugar donde se caen muchos idiomas es el soporte de concurrencia. Muchos terminan usando pthreads, y eso puede conducir a un comportamiento impredecible (¡como si los hilos no fueran lo suficientemente impredecibles!). Todavía no he aprendido Go, así que tal vez sea una elección. Pero Erlang y Elixir son definitivamente buenas opciones: usan la máquina virtual Erlang y tienen una especificación de lenguaje secuencial estricta y de alto nivel, y su modelo de concurrencia es independiente del sistema operativo. Tienen su propio planificador, etc. como parte de su tiempo de ejecución. Esto se hizo específicamente para que pudieran ejecutarse de manera consistente en múltiples plataformas, incluidos pequeños conmutadores telefónicos integrados en la década de 1980. Esto significa que la concurrencia de mensajes y ubicación transparente funciona igual en todos los entornos a los que se ha portado, y se ha demostrado que se puede implementar en dispositivos integrados de tamaño relativamente pequeño.

Por supuesto, siempre puedes hackear cosas de nivel inferior en C, pero pensé que el interrogador intentaba evitar eso.

Bueno, la mayoría de los sistemas operativos tienen un navegador web, así que solo apunta al navegador y estarás bien.

Teóricamente, una aplicación de JavaScript debería poder ejecutarse en todo, desde un escritorio hasta un refrigerador inteligente (prácticamente, las diferentes plataformas tendrán diferentes paradigmas que funcionan mejor en ellas: el mouse y el teclado no son lo mismo que el tacto no es lo mismo que la TV control remoto).

Luego también está la “lingua franca”, el lenguaje C. Pero allí tendrá que manejar aún más detalles de la plataforma usted mismo.

Esta no es una respuesta explícita, ya que hay muchas soluciones posibles, pero me gustaría sugerir a Haxe como uno de los idiomas únicos más aplicables para este problema.

Inicio – Haxe – El juego de herramientas multiplataforma

Este lenguaje es un lenguaje de kit de herramientas, lo que significa que es un conjunto de abstracciones y primitivas que pueden compilarse en una variedad de otros lenguajes diseñados para diversas arquitecturas. Esencialmente, el compilador “traduce” de forma inteligente una única base de código Haxe a una variedad de idiomas diferentes que luego se pueden compilar utilizando sus respectivos kits de herramientas nativos. Además, Haxe puede compilar a algunos lenguajes interpretados como Python, PHP o Javascript.

Esto hace que Haxe sea altamente efectivo para aplicaciones multimedia multiplataforma como los videojuegos, pero no es popular y, desafortunadamente, no se ve ampliamente.

En este momento, Javascript. Un idioma no es suficiente. Necesita que todo el ecosistema de bibliotecas sea multiplataforma también. Entonces, para:

  • Servidor back-end en Linux, OSX, Windows, lo que sea: Node.js
  • Aplicaciones de escritorio tradicionales en Linux, OSX, Windows, lo que sea: Electron
  • Aplicaciones para iOS, Android y otras plataformas móviles: Apache Cordova / PhoneGap
  • Clientes de navegador web: todo es Javascript

Supongo que se ejecutan localmente y aplicaciones GUI intensivas / orientadas al usuario.

Java, Python o Javascript (Node.js) son las mejores apuestas para eso. Node.js es el menos maduro del lote. Eso no significa que sea la peor opción.

C # o Visual Basic son alternativas sólidas, pero en la práctica no alcanzarían tantos sistemas operativos.

Además, Python no sería un éxito en dispositivos móviles.

Como otros han sugerido, depende exactamente de qué sistema operativo desea orientar y si necesita una GUI. Si desea Windows, Linux y MacOS, tiene muchas opciones: C / C ++ / C #, Python, Ruby, Perl, Javascript, Java están disponibles en este sistema operativo. Me imagino que Haskell, Go y Julia están disponibles en los tres sistemas operativos. Dependiendo de lo que haga su programa, es posible que algunos códigos deban personalizarse. Hoy, la mayoría de los idiomas se ejecutan en los tres grandes sistemas operativos.

Si desea desarrollar para teléfonos inteligentes y tabletas, entonces no sé de nada que se ejecute en todas las plataformas. Los iPhones requieren Swift u Objective-C, que no funciona en nada más. El desarrollo de Android generalmente es Java. No sé qué se usa en los teléfonos con Windows, pero Google dice XAML para la GUI y C # o Visual Basic.

Como otros han señalado, no existe un mejor lenguaje de programación que funcione en todos los sistemas operativos, porque ningún lenguaje funciona en todos los sistemas operativos . La pregunta tendría más sentido si delineara los sistemas operativos deseables.

Incluso después de delimitar los sistemas operativos deseables, la cuestión de cuál es el “mejor” requiere definir algunas preferencias, como la facilidad de desarrollo, la conformidad con la interfaz / experiencia de usuario nativa, la velocidad de ejecución, los marcos de dominio de programación, la escalabilidad, entre otros criterios.

Sin ningún detalle sobre lo que esta pregunta significa “mejor” y qué sistemas operativos, me queda usar mis propios criterios de “mejor” y los sistemas operativos a los que me dirijo. Para programar aplicaciones relativamente simples en Windows, Mac OS, Linux, Apple iOS, Android, Servidor y HTML, prefiero LiveCode. El lenguaje LiveCode es uno de los idiomas más fáciles de aprender. Su IDE funciona como un intérprete interactivo (ver resultados inmediatamente), compila el código de la plataforma nativa utilizando una sola API LiveCode y proporciona muchas funciones de arrastrar y soltar tanto para los elementos de la interfaz de usuario como para los widgets de código.

Yo diría JavaScript . Con el marco Electron, puede usar fácilmente JavaScript, HTML y CSS para desarrollar aplicaciones de escritorio que funcionen en los principales sistemas operativos (es decir, macOS, Linux y Windows). Será similar a la creación de una aplicación web, pero el marco Electron proporciona muchos elementos que necesitará para desarrollar la interfaz de usuario para aplicaciones de escritorio, como elementos de menú y métodos abreviados de teclado sin reinventar la rueda. Hay algunas aplicaciones bien conocidas creadas con JavaScript / HTML / CSS en Electron, incluidos Microsoft Visual Studio Code, Slack y Atom.

Una ventaja es que puede reutilizar parte de su base de código para aplicaciones móviles desarrolladas en JavaScript / HTML / CSS utilizando el marco Ioninc.

Probablemente ECMAScript o Java / Scala, tal vez en el futuro incluso C #.

No estoy seguro acerca de Python, pero creo que también debería ser bastante similar en todas las plataformas “estándar” ( OS X, Linux, Windows ).

Si se hace correctamente, C / C ++ también sería una opción dependiendo de la cantidad de código que dependa de la plataforma. Pero, por supuesto, ¡debería preocuparse por el código dependiente de la plataforma!

Sin embargo, tan pronto como trabaje con gráficos, creo que una aplicación web (ECMAScript) o un programa basado en JVM serían las mejores opciones. También puede usar OpenGL y usar una biblioteca para el código de creación de ventanas dependiente de la plataforma cuando usa un lenguaje como C / C ++, sin embargo, interactuar con hardware como dispositivos de E / S, por ejemplo, mouse de teclado, el almacenamiento aún sería un obstáculo.

Si también desea incluir dispositivos móviles con Android o iOS, las cosas se complican … Sin embargo, WebApps aún debería ejecutarse como se esperaba. Además, hay algunas herramientas para C # de Xamarin .

Elija sabiamente y tenga un gran día,

Adrian

Creo que no hay una respuesta a esta pregunta porque un lenguaje no es suficiente para crear software, necesita bibliotecas y acceso a las instalaciones del sistema operativo.

Por ejemplo, Windows usa una convención de nomenclatura de archivos diferente en comparación con RISC OS o RSX-11M. También es probable que las API para acceder a las funciones del sistema tengan nombres diferentes en los diferentes sistemas operativos. Algunos incluso pueden no tener la función. (Dijiste “todos”)

Para apuntar a muchos (dudo que obtenga todos) tendrá que apuntar al mínimo común denominador como JavaScript en un navegador, posiblemente usando un lenguaje de nivel superior y compilando a JavaScript y quizás usando un servidor de fondo para alojar el verdadero trabajo.

Otra alternativa podría ser mirar algunas tecnologías de VM que intentan proporcionar un entorno más independiente del sistema (JVM, Smalltalk, Forth) para ver si son compatibles con los sistemas operativos que desea.

Los idiomas y los compiladores son solo herramientas. No espero que pueda haber una sola “mejor” herramienta para crear software para todas las circunstancias, al igual que no esperaría usar una sola para construir una mesa de madera.