viernes, 24 de febrero de 2012

.Net - Common Language Specification (CLS)

Uno de los objetivos de diseño de la plataforma .NET fue el ser independiente del lenguaje de programación elegido para el desarrollo de aplicaciones. Para lograr esto es que se creó la Especificación de Lenguaje Común (o CLS, por sus siglas en inglés), que define y estandariza un subconjunto de todas las características soportadas por el CLR y que son necesarias en la mayoría de las aplicaciones. Todos los componentes desarrollados y compilados de acuerdo con la especificación CLS pueden interactuar entre si, independientemente del lenguaje de programación de alto nivel en el que fueron escritos.

Junto con el .NET Framework, Microsoft provee implementaciones de 4 lenguajes compatibles con CLS, junto con sus compiladores:
  • Microsoft Visual Basic .NET
  • Microsoft Visual C# .NET
  • Microsoft Visual J#.NET
  • Microsoft Visual C++.NET
Esto quiere decir que una aplicación escrita, por ejemplo, en Visual Basic.NET, puede incorporar sin problemas nuevas partes escritas en C# o C++ .NET.

Dado que la especificación CLS es un estándar disponible públicamente, ha sido posible que otros diseñadores de lenguajes y compiladores desarrollaran más de una veintena de lenguajes compatibles con la especificación, y por ende interoperables entre si y con los lenguajes desarrollados por Microsoft.

Un punto importante a destacar es que la elección del lenguaje de alto nivel en el que debe escribirse una aplicación .NET prácticamente ha sido reducida a una cuestión de gustos personales y comodidad con la sintaxis. No hay prácticamente motivos tecnológicos sobresalientes que inclinen la balanza hacia algún lenguaje en particular, al menos entre los ofrecidos por Microsoft. Todos utilizan el mismo runtime, todos utitlizan el mismo conjunto de bibliotecas de la misma forma, no existen diferencias notorias de performance entre ellos, todos tienen la misma potencia y todos tienen la misma capacidad de acceso a los recursos y servicios que expone el .NET Framework. De hecho, al cargar y ejecutar un assembly el CLR no sabe en qué lenguaje de programación de alto nivel éste fue escrito, ya que lo que el recibe como entrada es código MSIL.

0 comentarios:

Publicar un comentario