C# (pronunciado "si sharp", C sostenido o C Almohadilla) es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA e ISO.
Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET el cual es similar al de Java aunque incluye mejoras derivadas de otros lenguajes (más notablemente de Delphi y Java). C# fue diseñado para combinar el control a bajo nivel de lenguajes como C y la velocidad de programación de lenguajes como Visual Basic.
C# significa, "do sostenido" (C corresponde a do en la terminología musical anglo-sajona). El símbolo # viene de sobreponer "++" sobre "++" y eliminar las separaciones, indicando así su descendencia de C++.
C#, como parte de la plataforma .NET, está normalizado por ECMA desde diciembre de 2001 (ECMA-334 "Especificación del Lenguaje C#"). El 7 de noviembre de 2005 acabó la beta y salió la versión 2.0 del lenguaje que incluye mejoras tales como tipos genéricos, métodos anónimos, iteradores, tipos parciales y tipos anulables. Ya existe la versión 3.0 de C# en fase de beta destacando los tipos implícitos y el LINQ (Language Integrated Query).
Aunque C# forma parte de la plataforma .NET, ésta es una interfaz de programación de aplicaciones; mientras que C# es un lenguaje de programación independiente diseñado para generar programas sobre dicha plataforma. Aunque aún no existen, es posible implementar compiladores que no generen programas para dicha plataforma, sino para una plataforma diferente como Win32 o UNIX.
En la actualidad existen los siguientes compiladores para el lenguaje C#:
Microsoft .NET framework SDK incluye un compilador de C#, pero no un IDE.
Microsoft Visual C#, IDE por exelencia de este lenguaje, versión 2002, 2003 y 2005.
#develop, es un IDE libre para C# bajo licencia LGPL, muy similar a Microsoft Visual C#.
Mono, es una implementación GPL de todo el entorno .NET desarrollado por Novell. Como parte de esta implementación se incluye un compilador de C#.
Delphi 2006, de Borland Software Corporation.
dotGNU Portable.NET, de la Free Software Foundation.
Metas del diseño del lenguaje:
El estandard ECMA lista las siguientes metas en el diseño para C#:
C# debe ser un lenguaje simple, moderno, de propósito-general de programación orientada a objetos.
El lenguaje, las implementaciones de aquí en delante, deben proveer soporte para principios de ingeniería de software tales como chequeo estricto de tipos de datos, chequeo de límites de arreglos, detección de intentos de usar variables no inicializadas, y recolección de basura automática.
Se espera que el lenguaje sea usado para desarrollar componentes de software que se puedan usar en ambientes distribuidos.
Portabilidad de código fuente es muy importante, tal como es portabilidad del programador, especialmente para programadores familiarizados con C y C++.
Soporte para internacionalización es muy importante.
Se espera que C# sea adecuado para escribir aplicaciones desde las más grandes y sofisticadas como sistemas operativos hasta las más pequeñas funciones.
Aunque las aplicaciones en C# estén orientadas a ser económicas respecto a los requisitos de memoria y proceso, el lenguaje no fue hecho para competir directamente en velocidad o tamaño con C o lenguaje ensamblador.
|