Benchmarking en distintos lenguajes
Franco Catrin L.
fcatrin en tuxpan.com
Mar Dic 4 14:30:33 CLST 2007
"Horst H. von Brand" <vonbrand en inf.utfsm.cl> ha escrito:
> Franco Catrin L. <fcatrin en tuxpan.com> wrote:
>> "Horst H. von Brand" <vonbrand en inf.utfsm.cl> ha escrito:
>> > Java es un completo desastre. Obliga a la gente a escribir montones de
>> > cosas completamente incomprensibles (de lo OOP, y heredar, e incluir
>> > bibliotecas, y...) para un simple "Hola, mundo!".
>> Mal ejemplo porque para un simple "Hola, mundo!" el codigo de Java (o
>> C#) no es muy diferente al de C
> public class HelloWorld
> {
> public static void main(String[] args )
> {
> System.out.println( "Hello world" );
> }
> }
>
>
> Que es esa basura de "public class"? Porque el archivo se tiene que llamar
> asi? Que es "public static void"? Porque "System.out"? Y la larga lista de
> etc que aparecen en cuanto quieres leer algo, o definir tus propios datos.
>
>
> #include <stdio.h>
>
> main()
> {
> printf("Hello, world!\n");
>
> return 0;
> }
>
>
> Elegante. Clasico. ;-)
>
Veamos un simple cambio de este sencillo ejemplo. Ahora queremos
pasar el nombre del "saludado" por parametro. En Java quedaria como :
(sin validar)
public class HelloWorld
{
public static void main(String[] args )
{
System.out.println( "Hello " + args[0] );
}
}
Y en C quedaria como:
#include <stdio.h>
main(int argc, char *argv[])
{
printf("Hello, %f\n", argv[1]);
return 0;
}
Que es eso del argc? y el "*" ?
Ya no es tan elegante ;)
>> En cuanto a lenguajes, siempre le hice el quite al C, y me costo tanto
>> entender su sintaxis para utilizar punteros/referencias que me salia
>> mas comodo generar el .ASM para ver que diablos estaba haciendo el
>> compilador.
> Alo? Tierra a Saturno!?
> O tuviste la desgracia de tener un /pesimo/ profesor, o leiste los textos
> equivocados. El Kernighan y Ritchie "The C Programming Language" es un
> clasico, con merecida razon. Libros como el "Software Tools" de Kerighan y
> Plaugher (no la version en Pascal!) son escenciales para aprender a
> programar bien. Y en <http://www.lysator.liu.se/c> hay harto sobre la
> cultura C.
Tuve un buen profesor. Esa historia es de antes de entrar a la
universidad, y mi unico texto disponible en ese tiempo era la ayuda
contextual del compilador. Internet era inalcanzable fuera del mundo
universitario.
"The C Programming Language" de K&R lo conocí mas tarde, pero lo
encontré demasiado C'ista para mis gustos, a la larga alguien tiene
que entender lo que uno escribe.
>> En lenguajes como C# o Java simplemente se usa la
>> politica de "todo es referencia" salvo los tipos básicos.
> Prefiero un lenguaje en que "solo es referencia lo que dije que es
> referencia"... o al menos "todo es referencia", esta mezcolanza de "es" y
> "no es" solo sirve para confundir.
He visto aplicaciones grandes escritas en C (en empresas), y el
problema con dejar eso en manos de la voluntad del programador es que
se pueden perder horas o dias porque algun pastel olvido poner un "*".
En el caso de C# y Java no puedes mezclar tipos con y sin referencia,
por lo tanto no existe tal mezcolanza. O es o no es, y el programador
tiene que ser muy explicito cuando quiera que eso que es, deje de
serlo. (boxing/unboxing).
>> Al final
>> igual aprendí C pero no me convence de que sea buena idea utilizarlo
>> para enseñar
> No es ideal, pero es bastante mejor que todas las alternativas que conozco
> (salvo tal vez Scheme, pero ese va a otra parte...)
>> (idem para Pascal y sus "tongos").
> Dentro de lo que es manejo de punteros, es /harto/ decente. Lo feo de
> Pascal esta en la imposibilidad de escribir cosas genericas y crear
> bibliotecas, y el forro que es manejar strings. Alli Modula II es lindo
> (aunque un tanto rigido).
Y que tal el manejo de string en C? jijiji ;)
--
Franco Catrin L.
http://www.tuxpan.com/fcatrin
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
Más información sobre la lista de distribución Linux