Conceptos Básicos del Lenguaje C Sharp


Csharp: Csharp (C#) es un lenguaje de programación que toma las mejores características de lenguajes preexistentes como Visual Basic, Java o C++ y las combina en uno solo. El hecho de ser relativamente reciente no implica que sea inmaduro, pues Microsoft ha escrito la mayor parte de la BCL usándolo, por lo que su compilador es el más depurado y optimizado de los incluidos en el .NET Framework SDK. Fácil de aprender, por lo que está orientado a programadores noveles.

C# (leído en inglés “C Sharp” y en español “C Almohadilla”) es el nuevo lenguaje de propósito general diseñado por Microsoft para su plataforma .NET. Sus principales creadores son Scott Wiltamuth y Anders Hejlsberg, éste último también conocido por haber sido el diseñador del lenguaje TurboPascal y la herramienta RAD Delphi.

Aunque es posible escribir código para la plataforma .NET en muchos otros lenguajes, C# es el único que ha sido diseñado específicamente para ser utilizado en ella, por lo que programarla usando C# es mucho más sencillo e intuitivo que hacerlo con cualquiera de los otros lenguajes ya que C# carece de elementos heredados innecesarios en .NET. Por esta razón, se suele decir que C# es el lenguaje nativo de .NET
La sintaxis y estructuración de este lenguaje es muy similar a la de C++, ya que la intención de Microsoft con C# es facilitar la migración de códigos escritos en estos lenguajes a C# y facilitar su aprendizaje a los desarrolladores habituados a ellos. Sin embargo, su sencillez y el alto nivel de productividad son equiparables a los de Visual Basic.

Durante el desarrollo del .NET Framework, sus bibliotecas de clases fueron escritas mediante una compilador de código administrado denominado Simple Managed C (SMC). En enero de 1999, Anders Hejlsberg, creador de lenguajes como Turbo Pascal y Delphi, formó un equipo para diseñar un nuevo lenguaje, cuyo nombre inicial fue Cool (C-like Object Oriented Language). Microsoft quiso mantener dicho nombre como definitivo pero por razones de registro de marca tuvo que echarse para atrás.

En julio de 2000, durante la Professional Developers Conference, el lenguaje había sido renombrado a C# y todas las librerías de clases y el runtime de ASP.NET fueron portadas a C#. Los creadores del lenguaje Java decían que C# era un clon de Java sin ninguna novedad ni innovación a lo que Anders Hejlsberg contestó que “C# es ‘no un clon de Java’ y es mucho más cercano a C++ en su diseño”.

Desde el lanzamiento de C# 2.0 en noviembre de 2005, los lenguajes C# y lenguajes Java han evolucionado en trayectorias cada vez más divergentes, convirtiéndose en algo menos similares el uno del otro. Una de las primeras diferencias principales vino con la adición de los genéricos en ambos lenguajes, con implementaciones muy diferentes.
Además, C# ha añadido varias características importantes para dar cabida a programación de estilo funcional, que culmina con las extensiones LINQ con C# 3.0 y el empleo de tipos anónimos, métodos de extensión y expresiones lambda. Las extensiones LINQ ayudan a los desarrolladores a reducir mucha cantidad de código “repetitivo” que está incluido en las tareas comunes como consultar una base de datos. análisis de un archivo xml o búsqueda a través de una estructura de datos, cambiando el énfasis sobre la lógica de programación real para ayudar a mejorar la legibilidad y mantenibilidad.
El nombre C# fue inspirado por la notación musical donde una almohadilla (#) indica que la nota escrita debe hacerse un semitono más alto en el tono. Esto es similar al nombre del lenguaje C++, donde “++” indica que una variable debe ser incrementada en 1. El símbolo de la almohadilla (#) también se asemeja a una ligadura de los cuatro símbolos “+” (en una cuadrícula de dos en dos), lo que implica que el lenguaje es un incremento de C++ tal y como se puede observar en la siguiente imagen.


Actualmente la versión del lenguaje más moderna de C# es la 6.0. En sucesivos artículos veremos los fundamentos de trabajar con la plataforma .NET y del lenguaje C#.

Características

Alguna de las características aquí señaladas no son exactamente propias del lenguaje sino de la plataforma .NET en general. Sin embargo, también se comentan aquí también en tanto que tienen repercusión directa en el lenguaje, aunque se indicará explícitamente cuáles son este tipo de características cada vez que se toquen:

Sencillez: C# elimina muchos elementos que otros lenguajes incluyen y que son innecesarios en .NET.

Modernidad: Incorpora en el propio lenguaje elementos que son muy útiles para el desarrollo de aplicaciones y que en otros lenguajes como Java o C++ hay que simular, como un tipo básico decimal que permita realizar operaciones de alta precisión con reales de 128 bits, la inclusión de una instrucción foreach que permita recorrer colecciones con facilidad y es ampliable a tipos definidos por el usuario, la inclusión de un tipo básico string para representar cadenas o la distinción de un tipo bool específico para representar valores lógicos.

Orientación a objetos (OO): Como todo lenguaje de programación de propósito general actual, C# es un lenguaje orientado a objetos, aunque eso es más bien una característica del CTS que de C#. Se diferencia en este enfoque OO respecto al de otros lenguajes como C++, en que C# es más puro en tanto que no admiten ni funciones ni variables globales sino que todo el código y datos han de definirse dentro de definiciones de tipos de datos, lo que reduce problemas por conflictos de nombres y facilita la legibilidad del código.

Orientación a componentes: La propia sintaxis de C# incluye elementos propios del diseño de componentes que otros lenguajes tienen que simular mediante construcciones más o menos complejas. Es decir, C# permite definir cómodamente propiedades (similares a campos de acceso controlado), eventos (asociación controlada de funciones de respuesta a notificaciones) o atributos (información sobre un tipo o sus miembros).

Instrucciones seguras: Para evitar errores muy comunes, en C# se han impuesto una serie de restricciones en el uso de las instrucciones de control más comunes.

Comentarios

Entradas populares de este blog

Introducción a la Programación Básica en C Sharp