Article View: es.comp.os.linux.programacion
Article #15919Re: Qt vs GTK
From: Joaqu�n Cuenca Abela
Date: Wed, 31 May 2000 00:00
Date: Wed, 31 May 2000 00:00
87 lines
4202 bytes
4202 bytes
In article <8h0ao3$ivf$1@news.unizar.es>,
"J.A. Gutierrez" <spd@daphne.cps.unizar.es> wrote:
>
> :> Todo es cuestion de gustos, pero lo indiscutible es que C es mucho
mas
> :> portable que C++.
Y aun asi lo estamos discutiendo... :)
> : Que sistema conoces que no tenga disponible un compilador de C++?
> : Incluso los mas exoticos como QNX/Photon tienen uno...
>
> no es problema de que lo tenga disponible o no.
>
> Es indiscutiblemente menos portable:
>
> - los ficheros objetos no son portables, por definicion, diferentes
> compilardores utilizan diferentes "mangleados"
>
> - C++ se ha estandarizado muy recientemente, y aun hoy entre
> diferentes compiladores existen diferencias significativas que
> hacen que el mismo codigo compile en unos y falle en otros.
Francamente, esto es algo muy raro.
> A modo de ejemplo, recientemente he tenido que trabajar con
> el codigo de otra gente, que trabaja con una version no demasiado
> reciente de g++.
> Intente compilar todo con el compilador nativo de mi sistema
> y no hubo manera; como las librerias son incompatibles, ademas
> tube que recompilarlas con el g++; y como encima en lugar de
> las STL utilizaban la libg++ (ya obsoleta), pues a compilarla
> tambien...
Lo que comentas no es problema de C++ sino de las bibliotecas
utilizadas, y exactamente el mismo problema te lo encuentras con
C. Por ejemplo, el siguiente programa:
#include <stdio.h>
#include <strings.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
char *tmp = strdup (argc > 1 ? (const char *) argv[1] : "");
printf ("%s\n", tmp);
free (tmp);
}
que compila (o deberia, no lo he probado :) en linux, pero que no lo
hace (o puede no hacerlo, tampoco lo he probado) en windows. Hay
cientos de peque~nas funciones que tienes disponibles con las
bibliotecas que acompa~nan a un compilador y que no te vienen con
otro compilador (otro peque~no ejemplo que me viene a la mente,
stricmp de VC y strcasecmp de GNU que hacen exactamente lo mismo, pero
claro, si usas stricmp con gcc o strcasecmp con VC estas jodido).
Este problema fue el que origino la creacion de glib, pero no esta tan
extendido fuera de linux como para poder utilizarlo y dormir tranquilo.
> (me diras: bueno, es que ese codigo no estaba hecho siguiendo
> el standard; pero lo cierto es que cogiendo cualquier codigo
> al azar hecho en C, por guarro que sea, es mas facil que se
> compile en cualquier compilador de C que lo mismo para C++)
No, te dire: bueno, pero al menos en C++ tienes una biblioteca
*estandar* lo suficientemente completa. Si alguien no la usa es su
problema. El problema aqui es que en C no tienes ninguna biblioteca
comparable a STL que todos los compiladores soporten.
La segunda parte de tu parrafo ("cualquier codigo al azar hecho en
C...") simplemente no es cierto. C++ "correcto" es igual de portable
que C "correcto". El problema es que con C "correcto" (entiendase por
correcto que no utilice una biblioteca que sea un estandar para todos
los compiladores) te faltan montones de peque~nas funciones muy utiles,
y C++ "correcto" es perfectamente utilizable (STL contiene todo lo que
se le puede pedir a una biblioteca de ese tipo).
Un saludo!
--
Joaqu�n Cuenca Abela
e-mail: cuenca@ie2.u-psud.fr
Sent via Deja.com http://www.deja.com/
Before you buy.
Technical Details
Message-ID:
<8h2sf0$16s$1@nnrp1.deja.com>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<392B29F4.7495B443@dsitelecom.com> <392C2370.CE753338@menta.net> <39310F26.B0069152@dsitelecom.com> <39315D3D.F52A68BC@menta.net> <8gv7lb$c3c$1@nnrp1.deja.com> <8h0ao3$ivf$1@news.unizar.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,35d602ec9d69b87 X-Google-Attributes: gidf86c8,public From: Joaqu�n Cuenca Abela <e98cuenc@my-deja.com> Subject: Re: Qt vs GTK Date: 2000/05/31 Message-ID: <8h2sf0$16s$1@nnrp1.deja.com> X-Deja-AN: 629401538 References: <392B29F4.7495B443@dsitelecom.com> <392C2370.CE753338@menta.net> <39310F26.B0069152@dsitelecom.com> <39315D3D.F52A68BC@menta.net> <8gv7lb$c3c$1@nnrp1.deja.com> <8h0ao3$ivf$1@news.unizar.es> X-Http-Proxy: 1.0 x65.deja.com:80 (Squid/1.1.22) for client 193.55.28.182 Organization: Deja.com - Before you buy. X-Article-Creation-Date: Wed May 31 11:19:08 2000 GMT X-MyDeja-Info: XMYDJUIDe98cuenc Newsgroups: es.comp.os.linux.programacion X-Http-User-Agent: Mozilla/4.72 [en] (X11; I; Linux 2.2.12 i686)