Pregunta

El estándar C ++ 0x está en camino de completarse. Hasta ahora, he incursionado en C ++, pero evité aprenderlo a fondo porque parece que me faltan muchas características modernas que me han estropeado en otros idiomas. Sin embargo, estaría muy interesado en C ++ 0x, que aborda muchas de mis quejas. ¿Alguna estimación, después de que se ratifica el estándar, en cuanto a cuánto tiempo llevará a los principales proveedores de compiladores proporcionar implementaciones razonablemente completas y de calidad de producción? ¿Sucederá lo suficientemente pronto como para revertir la disminución de la popularidad de C ++, o es demasiado poco, demasiado tarde? ¿Crees que C ++ 0x se convertirá en "C ++"? dentro de unos años, ¿o cree que la mayoría de la gente se apegará al estándar anterior en la práctica y C ++ 0x será un hijastro bastardo, algo así como C99?

¿Fue útil?

Solución

No veo ninguna razón por la cual C ++ 0x no deba ser adoptado. La comunidad de C ++ es mucho más progresista que C.C siempre tuvo la intención de ser un "lenguaje ensamblador portátil", por lo que las personas que lo usan no están realmente muy interesadas en nuevas características sofisticadas. C ++ se extiende mucho más, y aún no he oído hablar de un programador de C ++ que no estaba esperando ansioso 0x. (También tengo la impresión de que la comunidad C ++ es mucho más estricta y realmente no quiere moverse fuera del estándar hacia un comportamiento indefinido, lo que implica que elija C ++ 03 o C ++ 0X en lugar de la mitad). híbrido implementado. Los programadores de C tienden a estar mucho más relajados al respecto y parecen felices de usar C89 con solo un par de características y encabezados de C99 mezclados)

Sin embargo, pasarán algunos años antes de que Microsoft se ponga al día, al menos. Visual Studio 2010 admitirá un pequeño puñado de características de C ++ 0x (lambdas, decltype y un par de otras), pero la gran mayoría no será compatible. Tendremos que esperar a VS2012 o lo que sea que sea la próxima versión, para tener un soporte algo completo.

Con GCC / G ++, la situación es mucho mejor, ya que la mayor parte del estándar ya se ha implementado allí (al comité estándar no le gusta adoptar características que no se han implementado y probado en un compilador real, y un La horquilla GCC se usa a menudo para eso)

Pero probablemente todavía tomará algún tiempo lograr que esté estable y listo para la producción.

Acerca de la "disminución de popularidad" de C ++, realmente no lo veo. No creo que C ++ haya disminuido significativamente en popularidad en los últimos años. Los desarrolladores de RAD ya se han lanzado, por supuesto, a .NET, Python u otros lenguajes o plataformas. Pero donde se usa C ++ hoy en día, no hay muchas alternativas viables, y no hay razón por la que deba disminuir su popularidad.

Otros consejos

No sé de otros proveedores, pero de what Tengo visto , Microsoft planea incluir cuatro características del lenguaje C ++ 0x en Visual C ++ 2010:

  1. referencias de valor
  2. auto
  3. lambdas
  4. afirmación estática

Aunque este es un pequeño conjunto de características de C ++ 0x, son importantes. Algunos permitirán a los programadores escribir código mucho más compacto (auto, lambdas) y sin errores. Algunas (como las referencias de rvalue) permiten que las bibliotecas sean más eficientes. A Microsoft le gustan las lambdas como habilitador para la computación paralela .

En mi humilde opinión: auto solo hará que sea mucho más fácil usar plantillas que más programadores lo harán. Y es de esperar que esto aumente la demanda de más funciones C ++ 0x de Microsoft y todos los proveedores.

Microsoft también actualizará su implementación de la Biblioteca estándar de C ++, pero no conozco los detalles. Creo que están modificando algunas clases de contenedor para aprovechar la semántica de movimiento de referencia rvalue. Y creo que incluyen más TR1.

Algunas implementaciones ya están en camino a C ++ 0x: ( gcc ) Mi intuición dice que la compatibilidad con C ++ 0x estará disponible en los principales compiladores con bastante rapidez; sin embargo, todavía existe un gran cuerpo de código heredado que debe mantenerse.

Las versiones más nuevas de gcc ya admiten muchas de las características de C ++ 0x: http: // gcc.gnu.org/projects/cxx0x.html

Microsoft incluirá compatibilidad con C ++ 0x en Visual Studio 2010 a finales de este año (una vista previa de tecnología comunitaria ya está disponible).

No creo que se convierta en "C ++" pronto, pero algunas personas optarán por agregar partes de la nueva sintaxis donde tenga sentido en su código.

No hago mucho C ++ en estos días, pero a las personas con las que hablo les encanta o sienten que la belleza de C ++ está en el control que obtienen, y que si querían un lenguaje con todas esas características adicionales, ' d use C # / Java.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top