Dave Held wrote:
-----Original Message----- From: Alvaro Herrera [mailto:[EMAIL PROTECTED] Sent: Friday, April 22, 2005 12:06 PM To: Tom Lane Cc: Dave Held; pgsql-hackers@postgresql.org Subject: Re: [HACKERS] Woo hoo ... a whole new set of compiler headaches!! :)
[...] Why don't we rewrite Postgres in D?
http://www.digitalmars.com/d/
:-D
I see the smiley, but moving to C++ isn't just about switching
to the latest fad language.
No, it's about moving to the fad language about 2 generations back ...
First of all, you would literally
have to rewrite it to use D. There would probably need to be
very little work to make the Postgres codebase a conforming set
of C++ programs (mostly renaming variables/types named 'class', 'virtual', 'bool', etc.). Second, you can find a decent C++
compiler on virtually every platform that has a C compiler.
Third, C++ offers real advantages in type safety, exception
handling, resource management, and even performance.
Unless you did a major rewrite it's hard to see any great advantages. There are over 600,000 lines of code in Postgres by my rough count. The potential rewrite effort is enormous. A thorough job would probably consume a release cycle just on its own.
Also, "virtually every platform" isn't good enough - we have a number of oddballs in our supported list, and it would have to include at least those.
Even doing something as simple as writing a stored procedure in C is somewhat awkward because of all the boilerplate casting that must be done. I'm fairly certain that most of the macros in the stored procedure interface could go away if a C++ API were created.
On the downside, some of us (including me) have much more experience in and ease with writing C than C++. I could certainly do it - I write plenty of Java, so OO isn't a closed book to me, far from it - but ramping up in it would take me at least some effort. I bet I'm not alone in that.
So this would not be cost-free - very far from it.
cheers
andrew
---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq