Date: Sun, 27 Nov 2022 12:11:22 -0500
Let evolution runs its course freely
James, Nadir, and Sebastian: Thank you for your comments and questions.
Nadir, I believe we are on the same page—I have nothing to add/subtract
to/from your comments.
James, I believe you haven’t read my original posting—my apologies if I am
mistaken and repeating myself unnecessarily: I believe C++ is on the right
track by evolving itself over time. However, the ideal backward
compatibility requirement as imposed hinders natural selection, which is at
the core of evolution. As I said earlier: evolution involves not only the
addition of new, worthy features to the gene pool but also the elimination
of the old and nasty ones.
Take a house metaphor. We continuously have been hoarding all new modern
tools and storing them in this house, which has a limited capacity. The
limitation here refers to our cognitive capacity. The bar you set for a
“good” C++ programmer is raised every three years and, unfortunately, “the
sky is the limit” does not apply to most mere mortals.
Some people still do not believe that evolution is real because the changes
are imperceptible to individuals. I do not believe changes in C++ from one
standard to another should be too drastic; otherwise, the C++ community
would be alienated. So, if the C++26 standard removes some archaic features
in your hypothetical scenario, a codebase developed with C++23 standards
would work very well with C++26 in all likely scenarios.
Sebastian, thank you for providing several options for me to choose from to
make my position clearer; however, I do not have the temerity to suggest
which features should be removed and which features should be preserved.
Yet if you force me to do so, I would say the features that might go to the
chopping block would be (1) those that are strongly discouraged from using
and (2) those that make the life of a modern compiler designer horrible—I
suspect your options C through F may be the closest ones to the criteria
above.
Best,
--mehmet kayaalp
James, Nadir, and Sebastian: Thank you for your comments and questions.
Nadir, I believe we are on the same page—I have nothing to add/subtract
to/from your comments.
James, I believe you haven’t read my original posting—my apologies if I am
mistaken and repeating myself unnecessarily: I believe C++ is on the right
track by evolving itself over time. However, the ideal backward
compatibility requirement as imposed hinders natural selection, which is at
the core of evolution. As I said earlier: evolution involves not only the
addition of new, worthy features to the gene pool but also the elimination
of the old and nasty ones.
Take a house metaphor. We continuously have been hoarding all new modern
tools and storing them in this house, which has a limited capacity. The
limitation here refers to our cognitive capacity. The bar you set for a
“good” C++ programmer is raised every three years and, unfortunately, “the
sky is the limit” does not apply to most mere mortals.
Some people still do not believe that evolution is real because the changes
are imperceptible to individuals. I do not believe changes in C++ from one
standard to another should be too drastic; otherwise, the C++ community
would be alienated. So, if the C++26 standard removes some archaic features
in your hypothetical scenario, a codebase developed with C++23 standards
would work very well with C++26 in all likely scenarios.
Sebastian, thank you for providing several options for me to choose from to
make my position clearer; however, I do not have the temerity to suggest
which features should be removed and which features should be preserved.
Yet if you force me to do so, I would say the features that might go to the
chopping block would be (1) those that are strongly discouraged from using
and (2) those that make the life of a modern compiler designer horrible—I
suspect your options C through F may be the closest ones to the criteria
above.
Best,
--mehmet kayaalp
Received on 2022-11-27 17:12:01