¿Qué lenguaje es mejor, C o C++?
c++
Las fortalezas de Java son todas las debilidades de C
La ventaja de C es que es lo suficientemente refinado como para desarrollar cosas de muy bajo nivel y servir como matriz de un nuevo lenguaje
Algunos formatos de sintaxis de c son demasiado rígidos, como
int i;
for(i=0;i <10;i++);
Además de escribir así en Java, también puedes
for(int i=0;i<10;i++);
Para resumir lo anterior
Ventajas:
c debe ser lo suficientemente refinado y simple como para usarse como matriz para otros lenguajes o desarrollo basado en hardware (sistemas operativos, etc.)
Desventajas:
Comparación de productividad, quiero decir, la eficiencia de desarrollo en algunos aspectos del uso de C es muy baja
Hay algunas dificultades que necesitan a lo que se debe prestar atención al aprender C++:
Los puntos de conocimiento son extensos y difíciles. Según la definición de C++ de Scot Mayer en Effective C++ hace unos años, C++ es un lenguaje multiparadigma, que incluye C, programación orientada a objetos y programación genérica. Los programadores deben comprender correctamente muchos conceptos básicos, como la diferencia entre montón y pila, punteros, punteros a punteros, principios internos de funciones virtuales, diseño de memoria de objetos causado por herencia, ambigüedad causada por herencia múltiple, plantillas y derivación del compilador, algoritmos STL. esperar. El contenido de C ++ es muy extenso, por lo que no es fácil aprender y acumular cada punto de conocimiento. Naturalmente, a menudo se produce un uso indebido.
C++ abre la puerta a la programación directa para las API del sistema operativo. Por lo tanto, cuando se utiliza C++ para completar el trabajo, a menudo es necesario aprender una gran cantidad de API relacionadas con la plataforma, y algunas de estas API son muy complejas. . Por ejemplo, la biblioteca COM/COM+ proporcionada por Windows, que se denomina tecnología de pesadilla, en realidad requiere muchos conocimientos básicos para poder manipularla bien. Otro ejemplo: programación orientada a interfaz, tablas de funciones virtuales, patrones de fábrica en patrones de diseño, el origen del infierno DLL de Windows, registro de Windows, serialización, seguridad de Windows, RPC, lenguaje IDL, tecnología de automatización que admite lenguajes de scripting (IDispatch), objetos Contadores de referencia, seguridad de subprocesos y suites y tecnología de plantillas ATL, etc.
En la evolución de C++, debido a la falta de un fuerte patrocinio de empresas comerciales y la falta de bibliotecas de clases C++ multiplataforma bien diseñadas, la mayoría de las personas solo pueden usar la biblioteca estándar de C++, pero la biblioteca cruzada -El efecto de plataforma no es bueno. Hasta hace poco, las bibliotecas modernas de C++ representadas por Boost han desempeñado un papel importante. Al mismo tiempo, los programadores de Java han disfrutado durante mucho tiempo del muy buen soporte del rico JDK de SUN y una gran cantidad de comunidades activas de código abierto (como Apache) también han promovido claramente Java.
Los programadores de C++ tienen un largo ciclo de crecimiento, especialmente muchas empresas en crecimiento en China que ganan dinero realizando proyectos tendrán preocupaciones sobre elegir C++ como lenguaje de programación.
Las ventajas también son obvias:
Suponiendo que los programadores puedan usar bien C++, entonces el programa puede lograr un alto rendimiento y consumir menos recursos. En la era de la computación en la nube, C++ desempeña un papel irreemplazable en muchas empresas clave y ahorra energía al planeta. Por ejemplo, una vez quise implementar un sitio web escrito en JSF en un servidor de EE. UU. La instalación de GlassFish falló porque el número total de subprocesos y procesos centrales de la máquina virtual era limitado y solo podía reemplazarse con un sitio web escrito en C++. Este servidor también ejecuta un programa de servicio TCP escrito en C++ y una base de datos NoSQL.