Es importante comprender que hay muchos lenguajes basados en C, pero que haya varias versiones no significa que sean iguales. De hecho hay versiones que tratan de ser similares en sintaxis pero que se utilizan absolutamente diferente plataforma y características.
Un ejemplo de esto es el lenguaje C# (C Sharp). C# es un lenguaje que apareció como opción programativa dentro del entorno de desarrollo llamado Visual Studio de Microsoft. Se utiliza allí como un lenguaje intermedio que al compilarse se transforma en un lenguaje común (common language) que es el que finalmente se compila para producir un ejecutable dependiente de las Frameworks de Microsoft (las cuales debemos tener instaladas si pretendemos que nuestros desarrollos funcionen)
C# (en realidad su verdadero nombre es C#.NET) es entonces uno de los tantos lenguajes que podemos utilizar en Visual Studio. Otro lenguaje que podemos utilizar en Visual Studio es el Visual Basic.NET y estos dos lenguajes al igual que otros que también podemos utilizar tienen cambios solo de sintaxis pero no de orden ni de estructura. Por eso independientemente del sublenguaje que elijamos en Visual Studio .NET los códigos serán idénticos linea a linea aunque con palabras cambiadas.
ej: http://converter.telerik.com/
Esto significa que un programa hecho en C#.NET lo podemos traducir en VB.NET (visual basic .NET) y dicha conversión resultaría en exactamente la misma cantidad de lineas de código, lo que demuestra que internamente y en estructura son iguales (aunque diferentes en palabras clave).
Por ese motivo es que ni C#.NET ni VB.NET se parecen realmente a sus antecesores, si no que ambos son una adaptación. Un lenguaje totalmente diferente pero que suena parecido a los lenguajes en los que pretenden basarse.
Justamente porque C#.NET y VB.NET son lenguajes de Visual Studio de Microsoft es que ambos son referidos en nuestra area de Visual Studio y no en esta Area referida a C++ y ANSI C.
?Que diferencia hay entre C, ANSI C y C++?
Comencemos por aclarar que estos tres lenguajes si tienen origenes y caracteristicas similares y propias del lenguaje original que es el lenguaje C.
La diferencia entre estos 3 es la siguiente:
Lenguaje C: Es el primero de los tres. El mas antíguo; y es el que sentó las bases todos los lenguajes basados en C.
Lenguaje C++: Es una versión mejorada del C original con capacidades aumentadas especialmente referidas a la programación orientada a objetos (POO). Este lenguaje aunque es similar en muchos aspectos al original C tiene instrucciones y comandos que cambian totalmente del C original. Por eso podemos considerar que C++ a pesar de ser mejor en capacidades y características desvirtúa un poco el lenguaje original C.
Ansi C: Debido a que entre C y C++ hay diferencias sustanciales no solo en capacidades sino también en su sintaxis, este último confunde y desvirtúa algunas características programáticas del lenguaje original, por lo que genera confusión entre los que deciden comenzar a estudiar uno u otro lenguaje. El problema que surgió es que al aparecer otros entornos de programación basados en C no sabian en cual de los dos basarse. Asi es como surge ANSI C. Ansi C es básicamente un standard internacional que creó las bases programativas en C para que no se desvirtúe su estructura y sintaxis en futuras versiones. Al ser un standard, aprender ANSI C permite al programador aprender un lenguaje que será standard en varias plataformas. Por ejemplo, en la actualidad hay infinidad de dispositivos de hardware programables (por ejemplo Arduino). Aprendiendo ANSI C nos estamos asegurando que todos aquellos entornos basados en dicho standard mantendrá la estructura y la sintaxis siempre intacta.
Ansi C es entonces simplemente un standard internacional respecto a como se debe programar C en diferentes plataformas permitiendo al programador portabilizar sus códigos a todo aquellas interfaces compatibles con ANSI C.
Aquí en Escuela Informática abordaremos en este apartado todo lo referido a estas 3 modalidades del mismo lenguaje.
Ni C++ ni C# ni el antiguo Turbo C se pueden considerar C standard.
Entonces en conclusión, para que no se dervirtúe la programación standard en lenguaje C es que se crea el standard ANSI C que también ha tomado el nombre de ISO C mas referencial a ser un standard dentro de las cuales (ya que hay varias versiones de este standard) la mas utilizada es la versión C90.
Varios entornos de desarrollo en lenguaje C y C++ permiten configurarse en modo ANSI o ISO C. Los frontends o IDE mas conocidos para programar en C, C++ y ANSI C son:
- Code Blocks
- Dev C++
- Eclipse
- GNAT
- CodeLite
- NetBeans
- MonoDevelop
y hay muchos mas, pero quizas uno de los mas utilizados sea Code::Blocks por ser gratuito, muy potente y multiplataforma ya que lo encontramos en versiones para Windows y para Linux.
No son las computadoras el único ámbito donde podemos programar en C, C++ y ANSI C.
En los celulares con Android también encontramos entornos de programación muy completos. Uno de los mas potentes es:
CxxDroid
Este entorno de programación puede configurarse en C, C++ e incluso en modo ANSI C.
En futuros artículos nos iremos adentrando en este apasionante mundo de la programación en lenguaje C.