Function overloading concern
Walter Bright
newshound at digitalmars.com
Fri Mar 10 11:20:36 PST 2006
"Mike Capp" <mike.capp at gmail.com> wrote in message
news:durud0$109b$1 at digitaldaemon.com...
> In article <dur2g6$29us$1 at digitaldaemon.com>, Walter Bright says...
>>I've seen that scheme. It strikes me as excessively complicated.
>>Furthermore, there are no implementations of it, so nobody knows if it is
>>implementable (see "export"), or if it is actually usable (see
>>"namespace").
> In fairness, the proposal is by Daveed Vandevoorde of EDG, who AFAIK are
> the
> only people on the planet who *have* implemented "export". I don't think
> he's
> chucking this stuff out of the window of some ivory tower.
I have the greatest admiration and respect for Daveed. But nobody is smart
enough to reliably predict how useful such a complex addition will be in
practice, or what all the corner cases will be, or how difficult it is to
implement on any compiler other than his own, etc., all based on a paper
proposal.
Bottom line: the committee's track record on invention of complex new
features is poor when they got standardized with no existing implementation
experience (see namespace and export). The committee's record on
standardizing functionality that *has* been extensively tried out is
reasonably good (see STL).
> My main concern about the proposal as it currently stands is that I can't
> see
> how build tools like "make" can possibly work with it. The model is no
> longer
> "compile a bunch of separate objects and throw them at the linker". To
> compile a
> source file you need to have compiled all source files it depends on, and
> all
> source files *they* depend on, and so on. I'm increasing worried that the
> whole
> module concept may not be workable in a language that doesn't allow
> references
> to undeclared symbols at compile time.
I.e., it's a design for something that is complicated and quite unique among
programming languages. It will *fundamentally* change the way C++ programs
are built, probably in unanticipated ways. There's no implementation
experience to see how it will work in a real project.
The risk is that if it gets standardized without being tried, and then
people find out that it is either unworkable, unusable, or has little
benefit in the real world, then it cannot be taken out again (like export).
More information about the Digitalmars-d
mailing list