2009-08-06 9 views
8

Como un stickler de C++, esto realmente me ha estado molestando. Siempre me ha gustado la idea del "marco independiente del lenguaje" que Microsoft creó hace aproximadamente una década. ¿Por qué han dejado caer la pelota con esta idea? ¿Alguien sabe el razonamiento detrás de esto?¿Por qué WPF no admite C++. NET, como lo hace WinForms?

+0

Supongo que el equipo del compilador de C++ no tiene suficiente personal, y mantener dos idiomas (C++ y C++/CLI) es una carga excesiva. C++/CLI estará muerto de todos modos con VS11, y estará escribiendo objetos COM con la ayuda de extensiones de compilador ligeras, que en mi humilde opinión es mucho más sana (y tan amigable con .NET como C++/CLI). Prefiero un compilador correcto para un idioma que un compilador falso para dos idiomas. –

Respuesta

4

Parte de la razón será que el soporte de C++ es en realidad dos idiomas en uno: las variantes nativa y CLI; esa carga de desarrollo adicional ha sido reconocida por el equipo de Visual C++ como la razón por la que la integración adecuada de MSBuild se retrasó (¿retrasos ?, no lo he comprobado en 2008 o posterior) detrás de otros idiomas.

Otra parte será la generación de código durante la compilación que se realiza en una compilación de C# para admitir, p. la "magia" vinculante; He descubierto que incluso en F #, no entiendes que "simplemente está sucediendo".

1

También me molesta, si lo hubieran soportado, podríamos migrar nuestro código C++ a una nueva GUI mucho más fácil y más barato que básicamente reescribir todo en C#. Nos cuesta una fortuna rehacer nuestras aplicaciones, justo lo que queríamos en una recesión.

Imagino que el razonamiento es que C# es popular (y no tan multiplataforma como C++) por lo que han decidido mantener sus esfuerzos de desarrollo al mínimo requerido.

2

Si fuera yo, mi razonamiento sería que C++ .Net no debería usarse para escribir GUI.

No estoy tratando de ser sarcástico aquí, tal vez alguien me puede mostrar el error de mis maneras, pero no creo que sea una buena idea. Estoy jugando con uno en este momento y el desarrollo mucho más lento que si la aplicación se hubiera escrito en C#. Mi sensación es que si se requieren funciones en C++. Net o solo C++ regular para la aplicación, parece que una mejor idea sería crear una DLL para hacer el trabajo pesado y podría interactuar con C#.

+2

es simplemente porque C# tiene todo el esfuerzo puesto para que sea más fácil. Podrían hacer eso con C++, si quisieran. Simplemente no lo hacen. – gbjbaanb

+0

¿Hay alguna buena razón para hacerlo? –

+0

¿Existe una buena razón para tener un tiempo de ejecución de múltiples idiomas, si resulta demasiado trabajo para admitir la programación de la GUI en todos los idiomas? –

0

Puede hacer WPF con C++ administrado.

La razón es que casi toda nueva programación de aplicaciones ahora se realiza en JavaScript, Java, VB.NET o C#: todos los lenguajes de GC. El énfasis está en una mayor calidad para un conjunto de habilidades más bajo y C++ exige demasiado del desarrollador, las empresas quieren que las personas escriban el código de error de registro en su primer día.

C++ para aplicaciones es principalmente para el mantenimiento de aplicaciones existentes o donde se requiere un rendimiento extremo. Los controladores de dispositivos y el sistema operativo aún se escriben con frecuencia en C++, pero incluso eso está cambiando (Coyotos es Cbit, E #, Cosmos/Mosa son C#, Singularity/Midori).

Cuestiones relacionadas