Sunteți pe pagina 1din 4

C# Caractersticas

Sencillez de uso
C# elimina muchos elementos aadidos por otros lenguajes y que facilitan su uso y
compresin, como por ejemplo ficheros de cabecera, o ficheros fuentes IDL. Es por ello
que se dice que C# es auto contenido. Adems, no se incorporan al lenguaje elementos
poco tiles, como por ejemplo macros, herencia mltiple u operadores diferentes al
operador de acceso a mtodos (operador punto) para acceder a miembros de espacios de
nombres.
Modernidad
Al ser C# un lenguaje de ltima generacin, incorpora elementos que se ha demostrado a
lo largo del tiempo que son muy tiles para el programador, como tipos decimales o
booleanos, un tipo bsico string, as como una instruccin que permita recorrer
colecciones con facilidad (instruccin foreach). Estos elementos hay que simularlos en
otros lenguajes como C++ o Java.
Orientado a objetos
C# como lenguaje de ltima generacin, y de propsito general, es orientado a objetos. C#
no permite la inclusin de funciones ni variables globales que no estn incluidos en una
definicin de tipos, por lo que la orientacin a objetos es ms pura y clara que en otros
lenguajes como C++. Adems, C# soporta todas las caractersticas del paradigma de la
programacin orientada a objetos, como son la encapsulacin, la herencia y el
polimorfismo.
Recoleccin de basura
Todo lenguaje incluido en la plataforma .NET tiene a su disposicin el recolector de basura
del CLR. Esto implica que no es necesario incluir instrucciones de destruccin de objetos
en el lenguaje.
Seguridad de tipos
C# incluye mecanismos de control de acceso a tipos de datos, lo que garantiza que no se
produzcan errores difciles de detectar como un acceso a memoria de ningn objeto, por
ejemplo. Para ello, el lenguaje provee de una serie de normas de sintaxis, como por
ejemplo no realizar conversiones entre tipos que no sean compatibles. Adems, no se
pueden usar variables no inicializadas previamente, y en el acceso a tablas se hace una
comprobacin de rangos para que no se excedan ninguno de los ndices de la misma. Se
puede controlar as mismo los desbordamientos en operaciones aritmticas,
producindose excepciones cuando se produzcan.
Instrucciones seguras
Para evitar errores comunes como se producan programando en otros lenguajes, en C# se
han impuesto una serie de restricciones en el uso de instrucciones de control ms
comunes. Por ejemplo, la evaluacin de toda condicin ha de ser una expresin
condicional y no aritmtica, como ocurra por ejemplo en C o en C++. As se evitan errores
por confusin del operador igualdad con el de asignacin. Otra restriccin que se impone
en la instruccin de seleccin switch, imponiendo que toda selectora de la instruccin
finalice con una instruccin break o goto que indique cul es la siguiente accin a realizar.
Unificacin de tipos
En C# todos los tipos derivan de una superclase comn llamada System.Object, por lo que
automticamente heredarn todos los miembros definidos en esta clase. Es decir, son
objetos. A diferencia de Java, en C# esta caracterstica tambin se aplica para los tipos
bsicos.

Extensin de modificadores
C# ofrece, a travs de los atributos, la posiblidad de aadir a los metadatos del mdulo
resultante de la compilacin de cualquier fuente informacin adicional a la generada por
el compilador que luego podr ser consultada en tiempo de ejecucin a travs de la
biblioteca de reflexin de .NET.
Eficiente
En C#, todo el cdigo incluye numerosas restricciones para garantizar su seguridad, no
permitiendo el uso de punteros. Sin embargo, y a diferencia de Java, existen
modificadores para saltarse esta restriccin, pudiendo manipular objetos a travs de
punteros. Para ello basta identificar regiones de cdigo con el identificador unsafe, y
podrn usarse en ellas punteros de forma similar a como se hace en C++. Esta
caracterstica puede resultar de utilidad en situaciones en las que se necesite gran
velocidad de procesamiento.
Compatible
Para facilitar la migracin de programadores de C++ o Java a C#, no slo se mantiene una
sintaxis muy similar a la de los dos anteriores lenguajes, sino que el CLR tambin ofrece la
posiblidad de acceder a cdigo nativo escrito como funciones sueltas no orientadas a
objetos, tales como las DLLs de la API de Win32.

Java

Lenguaje simple
Java posee una curva de aprendizaje muy rpida. Resulta relativamente sencillo escribir
applets interesantes desde el principio. Todos aquellos familiarizados con C++ encontrarn
que Java es ms sencillo, ya que se han eliminado ciertas caractersticas, como los
punteros. Debido a su semejanza con C y C++, y dado que la mayora de la gente los
conoce aunque sea de forma elemental, resulta muy fcil aprender Java. Los
programadores experimentados en C++ pueden migrar muy rpidamente a Java y ser
productivos en poco tiempo.
Orientado a objetos
Java fue diseado como un lenguaje orientado a objetos desde el principio. Los objetos
agrupan en estructuras encapsuladas tanto sus datos como los mtodos (o funciones) que
manipulan esos datos. La tendencia del futuro, a la que Java se suma, apunta hacia la
programacin orientada a objetos, especialmente en entornos cada vez ms complejos y
basados en red.
Interpretado y compilado a la vez
Java es compilado, en la medida en que su cdigo fuente se transforma en una especie de
cdigo mquina, los bytecodes, semejantes a las instrucciones de ensamblador.
Por otra parte, es interpretado, ya que los bytecodes se pueden ejecutar directamente
sobre cualquier mquina a la cual se hayan portado el intrprete y el sistema de ejecucin
en tiempo real (run-time).
Robusto
Java fue diseado para crear software altamente fiable. Para ello proporciona numerosas
comprobaciones en compilacin y en tiempo de ejecucin. Sus caractersticas de memoria
liberan a los programadores de una familia entera de errores (la aritmtica de punteros),

ya que se ha prescindido por completo los punteros, y la recoleccin de basura elimina la


necesidad de liberacin explcita de memoria.
Seguro
Dada la naturaleza distribuida de Java, donde las applets se bajan desde cualquier punto
de la Red, la seguridad se impuso como una necesidad de vital importancia. A nadie le
gustara ejecutar en su ordenador programas con acceso total a su sistema, procedentes
de fuentes desconocidas. As que se implementaron barreras de seguridad en el lenguaje y
en el sistema de ejecucin en tiempo real.
Indiferente a la arquitectura
Java est diseado para soportar aplicaciones que sern ejecutadas en los ms variados
entornos de red, desde Unix a Windows Nt, pasando por Mac y estaciones de trabajo,
sobre arquitecturas distintas y con sistemas operativos diversos. Para acomodar requisitos
de ejecucin tan variopintos, el compilador de Java genera bytecodes: un formato
intermedio indiferente a la arquitectura diseada para transportar el cdigo
eficientemente a mltiples plataformas hardware y software. El resto de problemas los
soluciona el intrprete de Java.
Portable
La indiferencia a la arquitectura representa slo una parte de su portabilidad. Adems,
Java especifica los tamaos de sus tipos de datos bsicos y el comportamiento de sus
operadores aritmticos, de manera que los programas son iguales en todas las
plataformas.
Estas dos ltimas caractersticas se conocen como la Mquina Virtual Java (JVM).
Alto rendimiento
Hoy en da ya se ven como terriblemente limitadas las aplicaciones que slo pueden
ejecutar una accin a la vez. Java soporta sincronizacin de mltiples hilos de ejecucin
(multithreading) a nivel de lenguaje, especialmente tiles en la creacin de aplicaciones de
red distribuidas. As, mientras un hilo se encarga de la comunicacin, otro puede
interactuar con el usuario mientras otro presenta una animacin en pantalla y otro realiza
clculos.
Dinmico
El lenguaje Java y su sistema de ejecucin en tiempo real son dinmicos en la fase de
enlazado. Las clases slo se enlazan a medida que son necesitadas. Se pueden enlazar
nuevos mdulos de cdigo bajo demanda, procedente de fuentes muy variadas, incluso
desde la Red.

Ventajas de JAVA:

Es una fuente abierta, as que los usuarios no tienen que luchar con los impuestos sobre
patente pesados cada ao

Independiente de la plataforma

La poder de Java API sea alcanzada fcilmente por los reveladores

Java realiza la coleccin de basura de las ayudas, as que la gerencia de memoria es


automtica

Java asigna siempre objetos en el apilado

Java abraz el concepto de especificaciones de la excepcin

lengua de la ayuda de la Multi-plataforma y ayuda para los tela-servicios

Usando JAVA podemos desarrollar aplicaciones web dinmicas

Permite que usted cree programas modulares y cdigos reutilizables

Javascript
Python
Php

S-ar putea să vă placă și