C Sharp (lenguaje de programación)

C # (pronunciado see sharp) es un lenguaje de programación multi-paradigma de propósito general que abarca la tipificación estática, tipificación fuerte, ámbito léxico, imperativo, declarativo, funcional, genérico, orientado a objetos (basado en clases) y disciplinas de programación orientadas a componentes .C # fue desarrollado alrededor de 2000 por Microsoft como parte de su iniciativa .NET y luego aprobado como estándar internacional por Ecma (ECMA-334) en 2002 e ISO (ISO / IEC 23270) en 2003. Fue diseñado por Anders Hejlsberg, y su equipo de desarrollo está actualmente dirigido por Mads Torgersen, siendo uno de los lenguajes de programación diseñados para Common Language Infrastructure (CLI). La versión más reciente es 9.0, que fue lanzada en 2020 en .NET 5.0 e incluida en Visual Studio 2019 versión 16.8.Mono es un proyecto gratuito y de código abierto para desarrollar un compilador multiplataforma y un entorno de ejecución (es decir, una máquina virtual) para el idioma.

Objetivos de diseño

El estándar Ecma enumera estos objetivos de diseño para C #: El lenguaje está destinado a ser un lenguaje de programación orientado a objetos simple, moderno, de propósito general. El lenguaje y las implementaciones del mismo deben proporcionar soporte para los principios de la ingeniería de software, como la verificación de tipos sólida, la verificación de límites de matriz, la detección de intentos de usar variables no inicializadas y la recolección automática de basura. La solidez, la durabilidad y la productividad del programador del software son importantes. El lenguaje está diseñado para su uso en el desarrollo de componentes de software adecuados para su implementación en entornos distribuidos. La portabilidad es muy importante para el código fuente y los programadores, especialmente aquellos que ya están familiarizados con C y C ++. El apoyo a la internacionalización es muy importante. C # está diseñado para ser adecuado para escribir aplicaciones para sistemas alojados y embebidos, desde los muy grandes que usan sistemas operativos sofisticados hasta los muy pequeños que tienen funciones dedicadas. Aunque las aplicaciones C # están pensadas para ser económicas con respecto a los requisitos de memoria y potencia de procesamiento, el lenguaje no estaba destinado a competir directamente en rendimiento y tamaño con C o el lenguaje ensamblador.

Historia

Durante el desarrollo de .NET Framework, las bibliotecas de clases se escribieron originalmente utilizando un sistema compilador de código administrado llamado "C simple administrado" (SMC). En enero de 1999, Anders Hejlsberg formó un equipo para construir un nuevo lenguaje en ese momento llamado Cool, que significaba "lenguaje orientado a objetos similar a C". Microsoft había considerado mantener el nombre "Cool" como el nombre final del idioma, pero decidió no hacerlo por razones de marca registrada. Para cuando el proyecto .NET se anunció públicamente en la Conferencia de desarrolladores profesionales de julio de 2000, el lenguaje había sido renombrado C #, y las bibliotecas de clases y el tiempo de ejecución de ASP.NET se habían trasladado a C #. Hejlsberg es el diseñador principal y arquitecto principal de C # en Microsoft, y anteriormente estuvo involucrado en el diseño de Turbo Pascal, Embarcadero Delphi (anteriormente CodeGear Delphi, Inprise Delphi y Borland Delphi) y Visual J ++. En entrevistas y artículos técnicos, ha declarado que las fallas en la mayoría de los principales lenguajes de programación (por ejemplo, C ++, Java, Delphi y Smalltalk) impulsaron los fundamentos del Common Language Runtime (CLR), que, a su vez, impulsó el diseño del lenguaje C #. sí mismo. James Gosling, quien creó el lenguaje de programación Java en 1994, y Bill Joy, cofundador de Sun Microsystems, el creador de Java, llamaron a C # una "imitación" de Java; Gosling dijo además que "[C # es] una especie de Java con confiabilidad, productividad y seguridad eliminada". Klaus Kreft y Angelika Langer (autores de un libro de secuencias de C ++) declararon en una publicación de blog que "Java y C # son lenguajes de programación casi idénticos. Repetición aburrida que carece de innovación", "Casi nadie afirmará que Java o C # son lenguajes de programación revolucionarios que cambió la forma en que escribimos los programas "y" C # tomó prestado mucho de Java, y viceversa. Ahora que C # admite el boxeo y el unboxing, tendremos una característica muy similar en Java ". En julio de 2000, Hej