On Thursday, 29 November 2012 at 12:17:49 UTC, Jonathan M Davis
wrote:
On Thursday, November 29, 2012 12:39:19 Paulo Pinto wrote:
On Thursday, 29 November 2012 at 03:19:55 UTC, Andrei
Alexandrescu wrote:
> On 11/28/12 9:34 PM, Walter Bright wrote:
>> For discussion:
> [snip]
>
> I'd say we better finish const, immutable, and shared first.
>
> Andrei
+1
Fully agree.
Cyclic imports are a minor nuisance that can be easily solvable
with better code architecture.
Turbo Pascal/Delphi is the only language that I know fully
allows
cyclic dependencies between modules. So this is not that
important for most people.
Basic features in the language require static constructors
(e.g. static
variables frequently do), and some things just can't be done
without them.
Andrei's std.benchmark proposal actually doesn't work, because
in order to do
what it does, in needs to mixin in a static constructor and
static destructor
(to set up the benchmarking and record it at the end, I
believe). That
completely falls apart due to cyclical imports. It doesn't
actually cause any
true circular dependencies, but it's treated as such anyway. A
_lot_ of us
have run into this problem and a number of us consider it to be
a huge design
problem in the language. Personally, I'd put it towards the top
of design
mistakes at this point, and I'm very glad to see Walter
actually finally being
willing to do something about this. In the past when I've
brought up similar
solutions, he's been completely opposed to them.
Yes, we have other major issues that need to be resolved, and
those may very
well be of a higher priority, but this is still a very import
issue, and it's
the sort of issue that can probably be implemented with minimal
effort. The
main thing is getting Walter to agree to it and how it will be
done. Once a
decision is made, it wouldn't surprise me if someone like Kenji
were able to
get it done very quickly.
- Jonathan M Davis
Maybe I should keep my mouth shut, because actually I don't
really use D besides some toy experiments, as there is no place
for D in the type of work I currently do, either on the job or
privately.
I like however to point people to D as a possible C++ successor
as way to do some language publicity, and think that these type
of discussions might scare D newbies away in what concerns
language stability, hence my post.
--
Paulo