Date: Thu, 8 Sep 2022 12:30:08 -0400
Forgive the response to my own e-mail, but I want to go into the way I
think C++ proposals ought to work in a bit more detail.
I feel every good proposal needs to outline 3 things:
1. A problem X that many C++ programmers encounter.
2. Existing language tools Y that solve X but do so in bad ways. It
may also be the case that there are no language tools Y at all for
solving X, but if that is the case, it needs to be stated.
3. A proposed language tool Z which solves X in a way better than Y
(if it exists).
The motivation section is where you outline 1 and 2. This is also
where you need to address the primary counter-arguments against 1 and
2:
1. Is X actually a problem many C++ programmers encounter?
2. Are the current solutions Y actually bad?
A motivation section needs to make the case that X is a problem
encountered by many C++ programmers and that the current solutions Y
(if any) really are bad.
Right now, your paper addresses neither point. Now just to be clear,
there are many proposals that basically assume that any working C++
programmer reading the paper recognizes that problem X exists for many
programmers. But you should not take it as a given if it is at all
reasonable to argue that X is a problem.
For example, P0144R0 expects you to understand that returning multiple
values from a function and using those multiple values is a problem
that many C++ programmers encounter. It doesn't try to build the case
for that. But that's because the problem is obvious to working C++
programmers.
I don't feel that the problem your proposal exists to solve is one of
those. I don't feel that "we need to not wrap code in namespace
blocks" is a thing that most working C++ programmers think is a
language problem. So if you want your proposal to be convincing, you
need to address why you believe this is a problem worth solving for a
significant number of C++ programmers. That this is a problem that C++
programmers frequently encounter.
But either way, there needs to be at least a clear statement of the
problem X that needs to be solved. And your current paper just doesn't
have that.
think C++ proposals ought to work in a bit more detail.
I feel every good proposal needs to outline 3 things:
1. A problem X that many C++ programmers encounter.
2. Existing language tools Y that solve X but do so in bad ways. It
may also be the case that there are no language tools Y at all for
solving X, but if that is the case, it needs to be stated.
3. A proposed language tool Z which solves X in a way better than Y
(if it exists).
The motivation section is where you outline 1 and 2. This is also
where you need to address the primary counter-arguments against 1 and
2:
1. Is X actually a problem many C++ programmers encounter?
2. Are the current solutions Y actually bad?
A motivation section needs to make the case that X is a problem
encountered by many C++ programmers and that the current solutions Y
(if any) really are bad.
Right now, your paper addresses neither point. Now just to be clear,
there are many proposals that basically assume that any working C++
programmer reading the paper recognizes that problem X exists for many
programmers. But you should not take it as a given if it is at all
reasonable to argue that X is a problem.
For example, P0144R0 expects you to understand that returning multiple
values from a function and using those multiple values is a problem
that many C++ programmers encounter. It doesn't try to build the case
for that. But that's because the problem is obvious to working C++
programmers.
I don't feel that the problem your proposal exists to solve is one of
those. I don't feel that "we need to not wrap code in namespace
blocks" is a thing that most working C++ programmers think is a
language problem. So if you want your proposal to be convincing, you
need to address why you believe this is a problem worth solving for a
significant number of C++ programmers. That this is a problem that C++
programmers frequently encounter.
But either way, there needs to be at least a clear statement of the
problem X that needs to be solved. And your current paper just doesn't
have that.
Received on 2022-09-08 16:30:40