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:La aplastante realidad

    (Puntos:2, Informativo)
    Buff. Vamos a ver si puedo contestar a todo esto sin dejarme las huellas dactilares en el teclado...

    Claro, los programadores de C tenían miedo en aplicar POO... De hecho en Linux tienes un ejemplo de OO con C completo.
    Perdona pero no entiendo qué quieres decir con en esta frase. Te lo digo sin acritud, de verdad, es que no lo entiendo.

    Por otro lado, C++ no es "C + Clases" o "C + POO". Si crees eso, es que no has programado en C++ en serio.
    Sí, estoy de acuerdo. Conozco bien C++, mi libro de cabecera fue una vez el "librito" de Sousptrup.

    Sí, vamos, muuuucho mejor que las binutils de GNU o Microsoft
    Esto es una característica del enlazador, no del lenguaje en sí. El enlazador GNU ld toma todo el código contenido en un módulo .o. Por ejemplo:
    Si tu tienes los módulo objeto mod_a.o, mod_b.o y mod_c.o dentro de la biblioteca mylib.a, cuando enlaces a tu programa (usando ld) una función contenida en mod_a.o ld incrustrará mod_a.o enterito dentro de tu ejecutable, aunque sólo uses una función. El enlazador de FreePascal en este sentido es mucho mejor. Insisto.

    Ale!! Venga!! Y qué mas. Irás a decir ahora que el compilador de "Pascal" (a ver de qué Pascal hablas) es mejor que "gcc", "cl" o "icc". Otra cosa es que el código que escribas en C sea una mierda inoptimizable y el de Pascal una obra maestra. Contra eso no hay manera de ganar.
    Ya lo he dicho muchas veces en otros hilos en este mismo foro, sólo hay un Pascal: FreePascal/Delphi (son prácticamente idénticos). El Pascal de los años 70/80, llamado UCDS Pascal y otros nombres, ya no existe. Murió. Fin.

    Los tiempos de compilación son mucho menores, lo siento, no tengo a hora a mano un enlace pero no debe ser difícil buscar una estadística en Google. La diferencia en proyectos grandes se aprecia claramente, no hablo de milisegundos.

    Por cierto, ¿porqué la mayoría de la gente compara Pascal con C? A pascal hay que compararlo con C++, no con C.

    Claro, un Makefile tiene algo que ver con C... Sí, será eso. Por otro lado, espero que me reveles cómo podrías tú hacer un proyecto como Linux o un videojuego sin un Makefile.
    Los Makefiles no tienen que ver con C pero se usan muy a menudo para invocar al compilador automáticamente. En pascal, esto no es necesario porque los programas tienen una sentencia del tipo "uses MiModulo.pas;" así que el compilador sabe lo que tiene que hacer. Es posible incluso compilar directorio a directorio recursivamente.

    Sí, fíjate... Con Visual Studio hacer una DLL es dificilííísimo, y con gcc también.
    En pascal existe la palabra reservada "library" que le indica el compilador que aquello es una DLL, no un *.EXE. La generación de una DLL en las distintas plataformas es automática.

    El problema es que la especificación de C/C++ no contempla el concepto de "biblioteca", de modo que no hay una palabra reservada en el lenguaje para indicarle al compilador que el código residirá en una DLL. Esto provoca que generar una DLL en las distintas plataformas sea una pesadilla.

    Por ejemplo: Para especificar cuáles son las funciones de inicialización/finalización de la DLL tienes que usar atributos de función, por ejemplo, en GCC se hace así:

    void __attribute__ ((constructor)) init() { //... }
    void __attribute__ ((destructor)) fini() { //... }
    pero esta notación depende de la plataforma, depende del compilador (GCC, BSC, MSVC, etc). Las opciones en la línea de ordenes para generar la DLL también son diferentes en cada plataforma, etc. Conclusión: crear una biblioteca no es que sea compli
    --
    "Es un milagro que la curiosidad sobreviva a la educación reglada" (Albert Einstein)
    [ Padre ]