Diferencia entre C++ C#


La primera diferencia que podemos notar entre C++ y C# es su nombre, es decir, C++ nació como una mejora del lenguaje C. Siendo el más, más (++) un juego que Bjarne Stroustrup utilizó para afirmar que C++ era mejor, o suponía mejoras ante C. Recordemos que el ++ es un operador de incremento.

Luego está C#, que nace en el año 2000 por Microsoft para hacer competencia al lenguaje Java. C# se promovió como una mejora de C++, de hecho, C# lo podríamos llamar C++++ ya que la almohadilla (#) se puede ver como cuatro signos de más (+) en cuatro puntos diferentes. ¿Pero a qué nos referimos con “mejor” que el lenguaje anterior? ¿Es que acaso hay un mejor o peor lenguaje? Si así lo fuera, entonces actualmente no se utilizaría lenguajes como C en algunas empresas, y eso no pasa. 

En otra entrada escribimos sobre el mejor y peor lenguaje de programación. Y como habíamos dicho, eso no existe. Todo lenguaje se adapta a las necesidades de cada programador. Así pues, podemos entender lo siguiente. 

C, es un lenguaje de bajo nivel. C++, es un lenguaje de medio nivel. C#, es un lenguaje de alto nivel. Pero no debemos confundirnos. Habría que entender el concepto del nivel. No porque C sea de bajo nivel y C# sea de alto, C# va a ser mejor. Nada que ver. 



Los niveles de cada lenguaje hablan de la abstracción con la que se puede trabajar en el mismo. Para entender esto basta solo con darse cuenta de cuánto ha ido evolucionando la tecnológica hoy en día. Las aplicaciones que se están desarrollando son alucinantes, ¡hay programas que necesitan 16 GB de memoria RAM! Así que la eficiencia con la que debe trabajar el programador tiene que ser muy rigurosa. He ahí la diferencia entre C++ y C#. 

A mayor eficiencia, mayor es el tiempo que se necesita para desarrollar un programa, a mayor tiempo, mayor son los costos. El problema que existía hace años es que con lenguajes como C tardábamos un montón en crear el software, esto porque es un lenguaje estructural y no acepta la POO. Entonces nace C++ y con él, el tiempo de programación reducía. Se hacía programas más rápidos y con todas las características que la POO nos ofrece. Sin embargo, a pesar de darnos eficiencia en nuestras aplicaciones, seguíamos demorando al crearlas. Eso era un problema, porque hay ocasiones donde la optimización del programa para hacerlo más eficiente y menos pesado a tal fin que consuma la menor cantidad de recursos, ofreciendo la mejor calidad en su funcionamiento, no era tan necesario.  

Hay veces que queremos hacer nuestros programas rápido, dejando a un lado la optimización del software. Para eso está C#, para programar con rapidez, para aprovecharse de la POO y para no concentrarse en manipular la memoria dinámica y dejando a un lado la capa de abstracción que nos ofrece C o C++. 

Con C++ podemos hacer programas de alto nivel siendo los mismos muy eficientes, pero el tiempo y el presupuesto monetario incrementa. Con C# podemos hacer programas de alto nivel, siendo los mismos muy eficientes, pero no al nivel que puede llegar uno hecho en C++, no obstante, el tiempo y el presupuesto monetario disminuye. 

Como aclaración, no decimos que en C# no se pueden hacer programas eficientes, si no, nadie lo utilizaría. Pues se hace, pero no al nivel que se puede hacer en C++. 

Existen más diferencias que podríamos denotar, pero vamos a dejarlo hasta aquí. Y volvemos a recalcar que no hay un mejor ni peor lenguaje de programación, pues cada uno se apega a las necesidades del programador. 

No hay comentarios