Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Re:Yo no uso Java.

    (Puntos:0)
    por pobrecito hablador el Viernes, 01 Julio de 2005, 07:00h (#542549)

    En java si hay enums, tarde, quizás, pero los hay.

    Yo te pongo ejemplo de lo de "puntero a función" y tú de enum :-P. De todas formas el problema más así es que supongo que Color.BLUE seguirá siendo un int.

    Las estructuras no ofrecen ninguna ventaja sobre las clase, al menos, yo no se las veo. Supongo que me puedes aclarar este punto.

    Las estructuras son tipos de datos "valor" en lugar de "referencia". Vamos, una coordenada, de la que no vas a heredar ni hereda de nada, que es un dato que no tiene una semántica por detrás, puede ser perfectamente un struct evitando que el GC tenga que hacer nada con él. Son además más eficiente en arrays, por ejemplo. Por tanto tienen un tratamiento más eficiente de esa información. Pero claro, si quiero algo eficiente... no uso Java :-P :-P :-P

    Las funciones no existen en java. Se llaman métodos.

    Ya, ok, en el post anterior llámalo "puntero a método", o mejor, "delegate".

    Si de verdad quieres utilizar punteros a métodos en java, puedes realizar algo parecido con java.lang. Me parece correcto "abolir" el uso de punteros a funciones en lenguajes OO. Para eso, se inventó la herencia y el polimorfismo.

    Ya, pero en C# o Python, por ejemplo, puedes hacer:

    C#
    delegate void pf();
    class A{
    public void metodo1(){
    Console.WriteLine("hola mundo");
    }
    public void metodo2(){
    llama(new pf(metodo1));
    }
    public void llama(pf f){
    f(); }
    public static void Main(){
    (new A()).metodo2(); }
    }

    O, lo que es más útil:
    public void Main(){
    Timer t = new Timer(metodoALlamar,null,100,Timeout.Infinite);
    t.Start();
    }
    Sin tener que declarar el metodoALlamar en una nueva clase que herede de Runnable y cuyo método run sea metodoALlamar (o declarar esa clase embebida en la función). Simplemente quiero que se llame a esa función, y eso escribo.

    Y en Mono ya están soportados los delegates anónimos:
    public static void Main(){
    int numero = 0;
    //Creo un botón con GTK, winforms, WxNET o lo que sea...
    boton.Clicked += delegate{
    numero++;
    Console.WriteLine(numero);
    }
    }

    De manera que creas un delegado embebido, y con acceso a las variables locales de donde lo creas.

    Vamos, que a mí no me parece correcto "abolir" el uso de punteros a funciones en lenguajes OO :-P

    En cuanto a leer cadenas del teclado... pues no se como se hace... hace años que no utilizo eso. Pero recuerdo que era complejo, cierto. Pero ¿hoy en día, quien lee cadenas de teclado en un programa?

    No lo sé, yo no. Pero es una sola muestra de hasta qué punto es engorrosa la API de Java. O sea, en C# Console.ReadLine, en Python raw_input, en C++ cin, en C scanf, en Bash read... y en Java, venga, una clase entera para ello

    Pero ok, vamos a por otros ejemplos. Cómo lees un fichero en Java? (en plan simple)

    O en un descuido, paso null como parámetro String al constructor de un ImageIcon. ¿Qué es lo lógico que debería ocurrir?

    Bueno, eso igual es un bug. Mmmm... qué me dices de compatibilidad entre versiones? O sea, que ahora para meter generics, cojan y se carguen lo anterior te mola? En plan yo tenía mis
    Vector v = new Vector();
    v.add(new Integer(5));
    y ahora eso está deprecado, porque en lugar de hacer una de java.util.generics; con un Vector que tire de generics, van y se cargan el anterior. Por poner un ejemplo, vamos.

    Porque haber, que IDE como Eclipse tienes en C#?.

    Si te refieres a lento de narices, ninguno xD. Na, es coña. Mmm... SharpDevelop [icsharpcode.net]? No tiene la calidad de Eclipse, pero bueno, va avanzando. También el VS.NET de m$ te puede servir a prueba de concepto de que puede haber algo parecido a Eclipse en C#

    Yo hasta ahora, e

    [ Padre ]
  • Re:Yo no uso Java.

    (Puntos:0)
    por pobrecito hablador el Viernes, 01 Julio de 2005, 07:55h (#542574)
    " Bueno, java no es lento, eso es una falacia, beneficiada por la deficiente maquina virtual de Microsoft."

    Pero tío, la MJVM está más que muerta. Todo el mundo usa la máquina de la propia Sun. No barras para casa tan descarado que se nota mucho. La máquina de Sun es lenta de veras. Ocurre incluso en los móviles que corren con j2me, donde microsoft no tiene nada nada que ver.
    [ Padre ]