¿Qué lenguaje es adecuado para desarrollar la unidad?
Mira el resumen del webmaster.
Por supuesto, las consecuencias las tienes que considerar tú mismo.
Primero, aquí hay un extracto de InfoQ
En Unity3D, ¿cuál es mejor, C# o JS?
La pregunta más común es: ¿Cuál se ejecuta más eficientemente, los juegos U3D escritos en JS o los juegos U3D escritos en C#?
La respuesta más común es: C#, porque js es dinámico: C#, porque js es dinámico. Ciertamente no es tan bueno como un lenguaje compilado.
La segunda pregunta más común es: ¿Cuál es más rápido y mejor para mí, js o C#?
La segunda respuesta más común es: js es adecuado para el desarrollo personal, ágil y rápido; c# es adecuado para el desarrollo empresarial, estandarizado y estricto.
Organicemos las diferencias entre C# y UnityScript de la misma manera que discutimos las diferencias entre javascript y C#, es decir, primero en orden de esencia y después de rendimiento. Además, respondamos las dos preguntas anteriores.
Similitudes esenciales
La primera parte del artículo mencionó que UnityScript y C# son lenguajes al mismo nivel y también necesitan pasar por la transición del código fuente a CIL. lenguaje intermedio y finalmente el proceso de compilación para el lenguaje local. Entonces, en esencia, lo que terminas ejecutando es lenguaje de máquina nativo compilado a partir de CIL. Pero C# es realmente más rápido, entonces, ¿cuál es el problema?
Una posible respuesta, pero no la única, es que UnityScript y C# generan el lenguaje intermedio CIL de forma diferente.
Esto es muy simple, al igual que el problema var mencionado anteriormente. Si usa Object para manejar vars, inevitablemente necesitará realizar muchas operaciones de boxeo y unboxing, lo que tendrá un gran impacto en la eficiencia.
Entonces, sí, C# es más rápido, pero la razón es que UnityScript implica operaciones frecuentes de boxing y unboxing, lo que a su vez genera un código CIL diferente al de C#, no porque UnityScript sea un lenguaje dinámico que no requiere compilación. .
La realidad es muy simple
¿Debo usar C# o UnityScript para el desarrollo? Si no quiere pensar en la eficiencia, solo quiere pensar en cómo se siente al desarrollar, entonces le diré mi opinión: aprecie su tiempo y manténgase alejado de UnityScript.
En primer lugar, debemos aclarar algunos hechos:
UnityScript es un lenguaje de terceros, concretamente Boo, que nació en la plataforma .NET. Boo, es un lenguaje de terceros para la plataforma. La diferencia entre el llamado lenguaje de terceros y C# es si eres una persona real o si tu padre es Lao Wang, el vecino. La diferencia puede ser completa y tridimensional. El soporte de la comunidad, el mantenimiento del código e incluso la calidad del código CIL compilado pueden variar ampliamente. Antes de elegir UnityScript, pregúntate si has oído hablar de Boo. No olvide la relación de UnityScript con Boo.
UnityScript y JavaScript no tienen nada que ver entre sí excepto que se parecen. En JavaScript eres como un pez en el agua, pero en UnityScript un poco de descuido puede enterrar peligros ocultos, y algunos peligros ocultos pueden estar ocultos en lo más profundo. Y UnityScript también es un lenguaje estático que también necesita ser compilado, así que no sé por qué elegirlo como lenguaje de desarrollo haría que alguien se sintiera rápido.
Soporte de complementos. Parece que la mayoría de los complementos están escritos en C#.
Bueno, si no te interesan los tres puntos anteriores, entonces no está mal que eches un vistazo a la actitud oficial.
El equipo oficial de la U3D elaboró un gráfico de proporción de uso del idioma basado en el análisis de datos.
A partir de Unity 5.0, se suspenderá la compatibilidad con la documentación para el lenguaje Bu ya que el uso del lenguaje es esencialmente insignificante. Además, la opción para crear un guión de tela desde el menú "Crear guión de tela" desaparecerá. La actitud del equipo de U3D hacia las secuencias de comandos en tela es un buen indicador del futuro de UnityScript, que está estrechamente relacionado con las secuencias de comandos en tela.
Al mismo tiempo, el equipo de U3D está trasladando su soporte a C#, lo que significa que la documentación, los ejemplos y el soporte de la comunidad estarán centrados en C#, porque C# tendrá la mejor documentación y el código más detallado. ejemplos, y Mayor número de participantes en la comunidad.
Gracias a INFOQ por proporcionar el artículo original.