domingo, 2 de septiembre de 2012

Java VS. C#



Java VS. C#

  • En C# podes desarrollar apliacciones de escritorio con WindowsForms (al menos que estes usando proyecto Mono con los QTSharp y GTKSharp creo que es asi...) y desarrollo web solamente con ASP .NET

    En el caso de Java podes dearrollar aplicaciones de escritorio con AWT, Swing, Ecliopse SWT, JSeamless, QTJava) y podes desarrollar paginas Web o sitios web con simplemente Servlets, JSP, Struts, Webwork, Java Server Faces, Velocity, Spring Web y Spring MVC, Tapestry, Stripes, Wicket, GWT, y demas.

 



  • Suele preferirse Java también por  razones políticas que por razones técnicas. En primer lugar Java es gratuito, y no hay que pagar la licencia para ".NET", por que se entiende que no existen las herramientas para desarrollar en cada uno de sus componentes por separado (VB, C#, etc...). Dicen que esta razón es muy simplista pero estamos hablando de cientos de dólares. Y aparte C# (se puede decir que todo ".NET") es simplemente una copia de Java que Microsoft hizo con plenas intenciones monopólicas.


    C# visto desde un programador de Java

    Ambos lenguajes son de nueva generación; ambos incluyen características avanzadas, como recolección de basura, que facilitan las tareas de programación. Además, ambos son muy parecidos sintácticamente.
    En estos lenguajes se realiza una compilación a un lenguaje intermedio: Java a bytecode, y C# a MSIL (Microsoft Intermediate Language). En ambos casos, ese lenguaje intermedio puede ser ejecutado en una máquina virtual apropiada.
    Las similitudes de C# con Java son tan grandes que las diferencias se pueden detallar en un breve espacio de tiempo.
    A diferencia de Java, en C# incluso los tipos básicos (int y compañía) son objetos, lo que le hace un lenguaje aún más orientado a objetos. Además, permite la sobrecarga de operadores y tiene espacios de nombres, que terminan siendo muy parecidos a los paquetes en Java.
    Se permiten las clases anidadas y existen los destructores, que son invocados de forma automática por el recolector de basura. Las funciones puede recibir listas de parámetros de longitud no conocida y en C# existe el concepto de propiedades, concepto muy habitual en los objetos de GLib, y hay nuevas reglas de visibilidad "internal" y "protected internal" que hacen referencia a la visibilidad de proyecto.
    Los eventos siguen un esquema similar al modelo de subscripción que nos encontramos en GLib o Swing. 
     




    Opiniones acerca de Java:
    Java es un lenguaje de programación que presenta muchas ventajas, pero también tiene desventajas:
    • Un mismo código corre en varias plataformas, llamese Windows, Linux, Mac...
    • Es relativamente sencillo de usar, aunque por supuesto hay que tener conocimientos de programación.
    • Elimina las grandes desventajas del C++ como pueden ser los punteros.
    • Es el lenguaje más usado para crear paginas en internet (parte de ellas)
    • Es el lenguaje usado para aparatos inteligentes (aun no presentes en España)
    A parte de esto la gran desventaja es que al ser un lenguaje interpretado requiere de mucha máquina para ir bien, aunque en los últimos tiempos, la tecnología esta muy avanzada así que esto dejará de ser un problema dentro de algún tiempo.
     

 

4 comentarios:

  1. Se ve que eres novato, tus comentarios son muy simples.

    ResponderEliminar
  2. java y c# los dos son copias de c++ y c. Sun microsistem y microsoft hicieron sus lenguajes quitando y poniendo algunas cosas de estos dos lenguajes de programacion, es tan evidente que java y c# son copias de c y c++ que si aprendes estos ultimos te resulta muy sencillo aprender java, c#, phyton, perl y la mayoria de los lenguajes de programacion conocidos.
    c# y java son copias no es solo c#.

    ResponderEliminar
  3. que ordinario el comentario de Ambiorix, ya que java no es copia de ningun lenguaje, de que esta basado en otros lenguajes como c y c++ nadie lo niega pero que sean copias jamas, ya que c y c++ son lenguajes demasiado artesanales es mas si uno se pone a programar sin utilizar el nuevo estandar tendria que crear los String a mano utilizando los malloc y realloc(que manera mas asquerosa de hacer las cosas), LO QUE SE DEBE ENFOCAR ES QUE java no soporta herencia multiple mientras que c y c++ si(que asco el plimorfismo) PERO EN FIN c# es una copia mejorada de c++ y java, de ambos lenguajes sacaron lo mejor y lo juntaron, algo que me gusta de c# son los wraper y web service...

    ResponderEliminar
    Respuestas
    1. Ariel los wrappers y los web services no son parte del c# sino del .net Framework.

      Eliminar