Re: [AD] Namespace again (was Problems with gcc 3.1)

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


"a.mottola@xxxxxxxxxx" wrote :

> Agreed. And I know that many people will not agree, but I'd REALLY like
> to push for these prefixes to be inserted *before* Allegro 4 gets
> released...

I do too.

> Any modern API worth of its name has prefixed functions to
> avoid all the problems we've had; only Allegro is sticking with
> unprefixed names for compatibility sake. Now I'm not against backward
> compatibility, I indeed think it's a good thing, but a .0 release may
> have the right to break compatibility, in sight of the future. IMHO
> it's better to break it now than waiting for the 5.0 release (whenever
> it'll be) or - even worse - breaking the API in a WIP after the 4.0.

I think that if we don't break backward compatibility at 4.0 then
*never* we will. Because 4.0 will be the first multi-platform official
release so there will be more games that will be developped with. And
when it will be time to release 5.0, 6.0, ... There will have some
people to say : "No ! We can not break the API for 5.0 release. Just
think to the thousands games that have been developped so far and that
will not compile with Allegro anymore". Does this remember you something
?

> The whole idea of providing #defines in a "allegro3.h" header for
> backward compatibility, defining prefixed functions as old ones is
> nice, but I have serious doubts it'll ever fully work. Actually I think 
> it could just contribute the lib to be messier...

Obviously it does already. I remember I read in Shawn's "Allegro Porting
Document" that #defines should be avoided everywhere it is possible
since there are some interdependencies issues that can not be solved.
And he was talking of the good old ALLEGRO_COLOR_DEPTH_8 and al.
Nowadays not only these #defines have not been removed but we are about
to add some !

> 
> So I'm for a more drastic change, and add prefixes all over the library
> now, without messing up with defines or whatever dirty hacks to keep
> compatibility; some words about this could be clearly specified in the
> docs. This brings the following possible scenario:
> 
[snip]

Anyway, we can leave at least the last WIP release with the old API on
Sourceforge. This way coders can keep on developping their
multi-platform game without updating to the new API. Of course they will
be stuck to that "last WIP" and will not be able to use the new
functionnalities but it is the price to pay.

[snip]

> I don't like the idea of updating my programs to a new prefixed API, as
> many (all?) of you. But I think time has come to take the decision,
> before it's too late and Allegro 4 gets known worldwide for its
> confused API (ok, maybe I'm exagerating, but you got it).

My guess is that if we do not break the API for 4.0 then NEVER we will. 
Just my 2 cents...
(Remember that the Win9x series is backward compatible with DOS and that
it took almost 6 years to M$ to get rid of this legacy :)

> 
> Ok, I'm now wearing my fireproff suit preparing for flames... =)

Do you have another suit for me ? :)

	Bertrand.



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/