🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #15919

Re: Qt vs GTK

#15919
From: Joaqu�n Cuenca Abela
Date: Wed, 31 May 2000 00:00
87 lines
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-mail
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>

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)