Discussion:
request for feedback: n2698 - generic functions and parametric types
(too old to reply)
Leandro T. C. Melo
2022-11-29 12:31:54 UTC
Permalink
Hi everyone,

I'm working on:

- n2698 Enabling Generic Functions and Parametric Types in C

The proposal is still a draft, but it already is quite complete; I even provide a prototype for it.

If you're interested in taking a look at the proposal, here it is:

- https://ltcmelo.com/n2698.pdf

I'd appreciate any feedback a lot.

Thank you,
Leandro
Tim Rentsch
2023-01-02 15:48:13 UTC
Permalink
Post by Leandro T. C. Melo
Hi everyone,
- n2698 Enabling Generic Functions and Parametric Types in C
The proposal is still a draft, but it already is quite complete; I
even provide a prototype for it.
- https://ltcmelo.com/n2698.pdf
I'd appreciate any feedback a lot.
This proposal is painfully bad, along a variety of axes.

Perhaps the most important axes are that it isn't clear exactly
what is being proposed, and to the extent that what is being
proposed is evident it looks like it is not very well thought
out. The constructs described look like they are more or less a
trimmed-down version of C++ templates, but with an even worse
syntax than templates (and I can't tell what differences there
might be in the semantics, in areas where the two overlap).

Also the writing and presentation are awful, which really doesn't
help.

I am sympathetic to the idea that C might benefit from having
some kind of template or parameterized type mechanism, but what
is suggested in this proposal is not it.

Specific comment: don't use the word "generic". C already has a
construct that could be called "generic", namely _Generic.
Leandro T. C. Melo
2023-01-03 11:32:21 UTC
Permalink
Post by Tim Rentsch
This proposal is painfully bad, along a variety of axes.
Perhaps the most important axes are that it isn't clear exactly
what is being proposed,
The proposal (draft) describes, with examples, how a programmer writes generic functions/parametric types and how a compiler translates them in stages; what's left unclear in your opinion?
Post by Tim Rentsch
and to the extent that what is being
proposed is evident it looks like it is not very well thought
out.
Could you justify this claim?
Post by Tim Rentsch
The constructs described look like they are more or less a
trimmed-down version of C++ templates,
Why do you think so?
The constructs involved in the proposal, along with the instantiation mechanism―which isn't based on template argument deduction rule/two-phase name lookup―, aren't borrowed from C++.
In terms of the expressivity of the design, it's sort of a "trimmed-down version" of C++ templates, just as it's a trimmed-down version of generics in C#/Java/Go, typeclasses in Haskell, etc.
Post by Tim Rentsch
but with an even worse
syntax than templates (and I can't tell what differences there
might be in the semantics, in areas where the two overlap).
If you don't like the syntax, fine... but there shouldn't be a single overlap in the semantics; could you point out to me what you refer to?
Post by Tim Rentsch
Also the writing and presentation are awful, which really doesn't
help.
Again, without a justification (e.g., in terms of writing/presentation criteria), your statement doesn't have any credibility.
Post by Tim Rentsch
I am sympathetic to the idea that C might benefit from having
some kind of template or parameterized type mechanism, but what
is suggested in this proposal is not it.
What a cliché.
Post by Tim Rentsch
Specific comment: don't use the word "generic". C already has a
construct that could be called "generic", namely _Generic.
_Generic is addressed in the proposal; where the use of the word "generic" is intentional (and explained).
Tim Rentsch
2023-01-29 18:57:04 UTC
Permalink
Post by Leandro T. C. Melo
Post by Tim Rentsch
This proposal is painfully bad, along a variety of axes.
Perhaps the most important axes are that it isn't clear exactly
what is being proposed,
The proposal (draft) describes, with examples, how a programmer
writes generic functions/parametric types and how a compiler
translates them in stages; what's left unclear in your opinion?
Post by Tim Rentsch
and to the extent that what is being
proposed is evident it looks like it is not very well thought
out.
Could you justify this claim?
Post by Tim Rentsch
The constructs described look like they are more or less a
trimmed-down version of C++ templates,
Why do you think so?
The constructs involved in the proposal, along with the instantiation
mechanism?which isn't based on template argument deduction
rule/two-phase name lookup?, aren't borrowed from C++.
In terms of the expressivity of the design, it's sort of a
"trimmed-down version" of C++ templates, just as it's a trimmed-down
version of generics in C#/Java/Go, typeclasses in Haskell, etc.
Post by Tim Rentsch
but with an even worse
syntax than templates (and I can't tell what differences there
might be in the semantics, in areas where the two overlap).
If you don't like the syntax, fine... but there shouldn't be a single
overlap in the semantics; could you point out to me what you refer
to?
Post by Tim Rentsch
Also the writing and presentation are awful, which really doesn't
help.
Again, without a justification (e.g., in terms of
writing/presentation criteria), your statement doesn't have any
credibility.
Post by Tim Rentsch
I am sympathetic to the idea that C might benefit from having
some kind of template or parameterized type mechanism, but what
is suggested in this proposal is not it.
What a cliche.
Post by Tim Rentsch
Specific comment: don't use the word "generic". C already has a
construct that could be called "generic", namely _Generic.
_Generic is addressed in the proposal; where the use of the word
"generic" is intentional (and explained).
Your earlier posting said "I'd appreciate any feedback a lot",
and feedback is what I gave. Were you actually looking for
someone to have an argument with? I don't see any appreciation
expressed in your comments.
Leandro T. C. Melo
2023-01-29 22:35:53 UTC
Permalink
Post by Tim Rentsch
Your earlier posting said "I'd appreciate any feedback a lot",
and feedback is what I gave. Were you actually looking for
someone to have an argument with? I don't see any appreciation
expressed in your comments.
You're correct, that was my mistake: I should've said constructive feedback. Yours was destructive; and with vague criticism and evidences you might have not read the proposal through.

I'd still give you my genuine appreciation if you make your feedback constructive, e.g. by answering the questions I left to you.
Loading...