std.compress
Max Samukha
maxsamukha at gmail.com
Tue Jun 4 23:51:04 PDT 2013
On Wednesday, 5 June 2013 at 06:18:54 UTC, Walter Bright wrote:
> On 6/4/2013 9:44 PM, Max Samukha wrote:
>> On Tuesday, 4 June 2013 at 18:46:49 UTC, Walter Bright wrote:
>>> On 6/4/2013 11:43 AM, Timothee Cour wrote:
>>>> writing generic code.
>>>> same reason as why we prefer:
>>>> auto y=to!double(x) over auto y=to_double(x);
>>>
>>> The situations aren't comparable. The to!double case is
>>> parameterizing with a
>>> type, the compress one is not. Secondly, compress(lzw) does
>>> ABSOLUTELY NOTHING
>>> but turn around and call lzw. It adds nothing.
>>
>> That "absolutely" based on limited personal experience is the
>> biggest D's problem.
>
> I've seen an awful lot of abstractions over the years that
> provided zero value.
I understand. But I've also seen a lot of abstractions over the
years that seemed useless initially but were discovered to be
extremely useful later (Bayes theorem is an example - it took 300
years to find a concrete use for it). So "a compelling use case"
is not a sufficient criterion for evaluating usefulness of
abstractions.
>
> You need to provide a compelling use case to justify another
> layer of complexity. "generic code" is not a compelling use
> case. It's already generic.
>
> Note how these components are to be used:
>
> src.lzwCompress.copy(dst);
>
> Your proposal is:
>
> src.compress(lzw).copy(dst);
>
> I.e. zero value, as so far all compress() does is call lzw().
That's not my proposal. Honestly I didn't even take a close look
at it. I just felt like it was time to attack you - there is an
explicit permission for casual trolling you gave.
>
> The whole point of range-based pipeline programming is you can
> just plug in different components. There is no demonstrated use
> case for adding another layer.
Ok.
>
> I am actually wrong in saying it has zero value. It has
> negative value :-)
In this particular case, maybe.
More information about the Digitalmars-d
mailing list