Porque elegir C# y no un opensource como JAVA

Ir abajo

Porque elegir C# y no un opensource como JAVA

Mensaje por juan_pablo el Miér Mayo 26, 2010 11:46 pm

C# vs JAVA
“C# no es un competidor de Java”. Bien, esto es lo que lo demanda Microsoft; cada vez que alguien escribe o compara Java a C#, Microsoft grita siempre “Es injusto comparar los dos lenguajes”. Mientras que más programadores comienzan a jugar con C#, muchos están comenzando a ver semejanzas fuertes entre las dos lenguajes. Microsoft demanda que C# fue derivado de la familia de los lenguajes de programación C/C++, pero algo queda claro cuando programamos en C# “la amplia similitud con Java” pues C# fue diseñado para superar las limitaciones de ambos lenguajes. El compilador de C# compila directamente el código fuente a MSIL, ya que es el único que ha sido diseñado para escribir código para la plataforma .NET, por lo tanto C# es el lenguaje nativo de .NET.
C# incorpora en el propio lenguaje elementos que a lo largo de los años ha ido demostrándose 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 (muy útil en el mundo financiero), la inclusión de una instrucción foreach que permita recorrer colecciones con facilidad y es ampliable a tipos definidos por el usuario.
En C# se ha optado por hacer que todos los métodos sean por defecto sellados y que los redefinibles hayan de marcarse con el modificador virtual (como en C++), lo que permite evitar errores derivados de redefiniciones accidentales. Además, un efecto secundario de esto es que las llamadas a los métodos serán más eficientes por defecto al no tenerse que buscar en la tabla de funciones virtuales la implementación de los mismos a la que se ha de llamar. Otro efecto secundario es que permite que las llamadas a los métodos virtuales se puedan hacer más eficientemente al contribuir a que el tamaño de dicha tabla se reduzca.
C# es un lenguaje orientado a Componentes, es decir ofrece un amplia variedad de componentes visuales modernos y fácil de usar. La propia sintaxis de C# incluye elementos propios del diseño de componentes además permite definir cómodamente propiedades, eventos y atributos.
C# permite definir, a través de estructuras, tipos de datos para los que se apliquen las mismas optimizaciones que para los tipos de datos básicos. Es decir, que se puedan almacenar directamente en pila (luego su creación, destrucción y acceso serán más rápidos) y se asignen por valor y no por referencia. Para conseguir que lo último no tenga efectos negativos al pasar estructuras como parámetros de métodos, se da la posibilidad de pasar referencias a pila a través del modificador de parámetro ref.
Para facilitar la legibilidad del código y conseguir que los nuevos tipos de datos básicos que se definan a través de las estructuras estén al mismo nivel que los básicos predefinidos en el lenguaje, al igual que C++ y a diferencia de Java, C# permite redefinir el significado de la mayoría de los operadores - incluidos los de conversión, tanto para conversiones implícitas como explícitas - cuando se apliquen a diferentes tipos de objetos. También se da la posibilidad, a través del concepto de indizador, de redefinir el significado del operador [ ] para los tipos de dato definidos por el usuario, con lo que se consigue que se pueda acceder al mismo como si fuese una tabla. Esto es muy útil para trabajar con tipos que actúen como colecciones de objetos
avatar
juan_pablo
Admin
Admin

Mensajes : 64
Fecha de inscripción : 24/05/2010
Edad : 31
Localización : San Miguel de Tucuman

http://programacion-utn.forolunanueva.com

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.