Carmack about static analysis

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sat Dec 24 07:33:01 PST 2011


On 12/24/2011 09:11 AM, Derek wrote:
> On Sat, 24 Dec 2011 23:42:41 +1100, bearophile
> <bearophileHUGS at lycos.com> wrote:
>> In theory functional-style is a good to shrink the code, but in D
>> functional-style code is a jungle of (({}){()}) so it's hard to write
>> and hard to read.

As I mentioned once, the proposition of writing functional code in D is 
quite a bit different from other languages. In languages dedicated to 
pure or almost pure functional semantics, there may literally be no 
other way to achieve anything except in functional style; if there is, 
the style is almost invariably stilted.

In D, functional style code must compete with a well honed imperative 
paradigm. And as unpleasant as that may be, sometimes code that uses 
mutation may be "better" than functional code by some metrics.

> I once, long ago, suggested to Walter/Andrei that D is approaching the
> ASCII equivalent of APL. The actual text of D source code can be a
> hindrance to reading the code, let alone understanding what has been
> written. I know it is hyperbole, but some D source modules are close to
> write-only code, meaning that it takes specialist/expert D knowledge to
> understand some source code. I'm not so certain that this is a desirable
> feature of any programming language.

We recently discussed this a bit in connection with the standard 
library. It definitely could be written in a manner that is easier to 
understand for the more casual reader, but that would mean reducing the 
capabilities (e.g. no reduce with multiple parameters) and making it slower.

That being said, I personally find contemporary application D code very 
readable. It's a pleasure to get to it after using C++ at work.

Anyhow, is there anything you have in mind that we have the chance of 
improving at this point?


Thanks,

Andrei




More information about the Digitalmars-d mailing list