[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] MMX Transform for Win32



On, Mon Mar 10, 2008, Brian Fisher wrote:

> On Mon, Mar 10, 2008 at 2:40 PM, Marcus von Appen <mva@xxxxxxxxxxxx> wrote:
> >  C++ adds a lot of unnecessary overhead, limits the portability and makes
> >  anything just a bit harder.
> >

[...]

> goals of templating using just C. What specific overhead would someone
> expect to be added simply by using C++ compilers?

Due to my experience, several C++ compilers take much more time to
compile the code and create bigger binaries. Additionally several C++
compilers lack a good optimization due to C++'s nature, especially when
it comes to stuff like advanced classes, operator overloading,
templates, etc.

> In terms of portability, in terms of agg code, it's already highly
> tested and developed to be portable, and it doesn't use stl or other
> c++ portability pitfalls. So the issue would just be the portability
> of C++ in general - so what platforms don't have c++ compilers that
> are readily available if not already built in to the same package that
> provides C compiling?

Many small devices ship with rather slim compilers, which often either
do not support C++ or use e.g. the 2.95 G++ backend, which is known to
be not the best ;-). 

I do not say, let's drop agg, but please keep it optional and seperate
it in a way we can build the rest of the modules still with a C
compiler. Changing the whole build system to C++ would be a bad idea in
my opinion and really limits it.

Besides that there's only the 2.4 version of agg we can stick to, which
is another bad thing due to features and stuff later versions (will)
have. But I guess we just have to live with it then.

> As far as the idea of C++ making anything just a bit harder - I
> completely disagree in that C++ is a much better C compiler (scoping
> of variables, declare them anywhere you want, a bool type) so
> everything is easier until you run into a C++ construct you just
> haven't learned yet.
[...]

I do not really get what you say here, but anything mentioned above
(scoping, declare, bool) is also covered by C compilers implementing the
C90/C99 subsets (so nearly any except the really old ones and the MS C
compilers up to at least VS.NET 2005) :-).

Regards
Marcus

Attachment: pgpcdShRjp1oo.pgp
Description: PGP signature