Vous êtes sur la page 1sur 3

C# VS Java

Optativa I

Alumno 09130290 Alexis Gavito

Maestro Dagoberto Rodrguez Rendn

Ciudad Obregn, Sonora, a 24 de agosto de 201

C# vs Java Java y C# son lenguajes de programacin similares, orientados a objetos, y ambos cuentan con un recolector de basura, aunque en Java es nativo, compilacin de rutina, entre otras caractersticas. Java es ms antiguo que C#, ha sido implementado y distribuido libremente. Por contraste, C# y .NET Framework estn basados primeramente en plataformas que operan con Microsoft Windows. Las versiones de Java, en comparacin con las de C#, han evolucionado ms lentamente con respecto a sus caractersticas. Esta aproximacin conservadora al cambio en el lenguaje ha tenido consecuencias que bien han podido ser negativas (evolucin ms lenta para cumplir con las necesidades del programador) y positivas (menos riesgo de adoptar prematuramente aproximaciones que puedan en un futuro probar ser callejones sin salida). Antes de crear C# Microsoft haba implementado una versin modificada de Java, llamada J++ y una versin modificada del JRE. En 1997, Sun Microsystems demand a Microsoft, alegando que Microsoft haba aadido nuevas caractersticas en una manera que contradeca los estndares y convenciones de Sun para la neutralidad de la plataforma de Java, por lo que estas caractersticas violaban el acuerdo de licencia entre Microsoft y Sun. La primera versin de C# implement escasamente las mismas caractersticas que Java, a pesar de que fue deliberadamente ms cercano a C++ en sintaxis. Las diferencias ms notables fueron que C# soportaba delegados y eventos. Los tipos de datos que son soportados por Java y no por C# son slo los decimales de tamao arbitrario, mientras que los tipos de datos soportados por C# que no son soportados por Java son los tipos unificados de sistema, enteros sin signo, nmeros decimales de alta precisin, nmeros complejos, tipos de valor, tipos anulables, tuplas y punteros. C# no soporta clases internas, ni clases annimas locales, mientras que Java no soporta clases parciales ni clases annimas implcitas. En java los enums pueden implementar interfaces, pero los operadores no pueden ser sobrecargados, ni existen indexadores, conversiones implcitas o explcitas. En C# no existen inicializadores de instancia, pero s inicializadores de objeto y de colecciones. Java permite imports estticos pero no permite implementaciones explcitas de interfaces. C# permite parmetros de referencia de entrada y salida, mientras que Java no lo hace. C# no permite finals, aunque a diferencia de Java, permite argumentos opcionales, argumentos nombrados, mtodos generadores, mtodos de extensin, mtodos parciales y mtodos condicionales.

Los arreglos en Java son especializaciones directas implcitamente de la clase Object, mientras que en C# son de la clase System.Array, la cual implementa un nmero de interfaces de coleccin. En Java, los arreglos y las colecciones estn completamente separados y no tienen unificacin. Los arreglos no pueden ser pasados donde las secuencias o las colecciones son esperadas, mientras que C# si permite esto ltimo. Sin embargo, las operaciones que alteren el nmero de elementos (insert, add, remove) arrojarn excepciones, dado que estas operaciones no son soportadas por los arrays en C# Al contrario de Java, C# implementa compilacin condicional utilizando directivas de preprocesador. Tambin provee un atributo Conditional para definir mtodos que son slo llamados cuando una constante de compilacin dada es definida. En cuanto a sus similaridades podemos decir que ambos son relativamente simples, y por ello resultan adecuados para ser lenguajes de programacin considerados como introductorios. Java y C# fueron diseados para ser lenguajes de programacin robustos, y ambos proveen manejo de excepciones y otros mtodos para crear programas que son menos asiduos a crashear. Ambos tienen implementaciones gratuitas, suelen ser soportados por gran variedad de plataformas, tienen soporte cliente-servidor, soporte multimedia, y ambos han ido incrementando en popularidad. Bibliografa Bloch, J. Java Puzzlers: traps, pitfalls, and corner cases, Editorial Addison Wesley, New Jersey, Estados Unidos, 2005, consultado en Agosto de 2013. Jagger J. et al, 11.17: El tipo decimal, Publicaciones Kauf mann, Amsterdam, Holanda, 2007, consultado en agosto de 2013. http://www.cs.yale.edu/homes/hudak/CS112F06/java.html, Java vs C#, agosto de 2013, consultado en agosto de 2013.

Vous aimerez peut-être aussi