Tue, 28 Jul 2009 04:53:02 -0400, bearophile thusly wrote: > Such optimizations require brain and maybe even planning. So they have > to be discussed first.
The discussion or collective community opinion won't help a bit. Walter is the only person who decides what goes into the spec and what doesn't. > If > implemented correctly, the first optimization changes the running time > enough to encourage a different programming style (for example Phobos2 > can be rewritten a lot, using just delegates instead of strings). Functions that take functions as parameters can be dangerous for readability since they allow adding custom control structures. I think the idea in D has been to provide all possible control structures as built-in features. For example foreach, foreach_reverse, soon we probably get foreach_with_filter, foreach_parallel_for_2cores, foreach_parallel_for_4cores etc. The advantage of built-in features is that they remain compatible everywhere. A third party library writer (e.g. tango developpers) may create a tango_foreach_for_2cores and phobos group soon creates phobos_foreach_for_2cores. And some game library designer might create gamename_foreach_for_2cores. It's dangerous to give too much power to the language users. And this is what happens if you start supporting these 'high order functions' with good optimizations. Cause it's possible to optimize them too well with the knowledge we have today of programming languages. > Already done since few months, I fear. When people don't like me > anymore, I'll leave. I'm not interested in a career in trolling. The D developers are supposed to solve practical issues, not take part in latest academic discussion. > > Bye, > bearophile
