Date: Thu, 30 Mar 2023 16:22:54 +0300
On Thu, 30 Mar 2023 at 14:52, Timur Doumler <cpp_at_[hidden]> wrote:
> My comment eluded to my current understanding that, given that it is impossible to satisfy both use cases, vendors have basically decided to prioritise the former over the latter. It seems that you agree this is what is happening? It also seems that you are saying this is because the majority of users fall in the former camp? Is this understanding correct?
Mostly - it's not a question of numeric majority. The non-google users
don't have a reasonable alternative. They can't recompile the world
all the time. That's simply not an option for them, especially in
cases you mentioned where they can't recompile, because they don't
even have
the code. Google can recompile, and they can use non-standard
libraries at scale, and they can write and maintain them. For them
it's
just a gripe, not a showstopper.
So yeah - vendors choose a relatively minor inconvenience for some
large-scale expert users (even if that inconvenience means they can't
use a standard library
in all cases, but hopefully still can in some) and making the use of
the library possible for other users. The alternative is making the
use of it
impossible to users who don't have the capacity to roll their own,
while allowing large-scale expert users to just use it directly. I
would guesstimate
the numbers of users are ridiculously tilted in that comparison, too,
but as explained above, that doesn't really matter - it's about what
those
users can and can't do.
It's also worth keeping in mind that some of those users couldn't
build C++ code to save their life. They don't write C++. They just use
C++ libraries underneath, while their own code and builds thereof
might be something completely different, like Java. Causing a need
to recompile indirect dependencies due to rampant ABI breaks would be
downright terrible to them.
The situation gets even more tragic when we're talking about a
possible ABI break in the system C library, instead of a C++ library.
Now you have *every* user depending on it, and for even more of them,
the idea of having to recompile C code is completely foreign,
when they program in python or whichever language that might not even
use glue libraries to talk to C++ code, but will use the C library.
> My comment eluded to my current understanding that, given that it is impossible to satisfy both use cases, vendors have basically decided to prioritise the former over the latter. It seems that you agree this is what is happening? It also seems that you are saying this is because the majority of users fall in the former camp? Is this understanding correct?
Mostly - it's not a question of numeric majority. The non-google users
don't have a reasonable alternative. They can't recompile the world
all the time. That's simply not an option for them, especially in
cases you mentioned where they can't recompile, because they don't
even have
the code. Google can recompile, and they can use non-standard
libraries at scale, and they can write and maintain them. For them
it's
just a gripe, not a showstopper.
So yeah - vendors choose a relatively minor inconvenience for some
large-scale expert users (even if that inconvenience means they can't
use a standard library
in all cases, but hopefully still can in some) and making the use of
the library possible for other users. The alternative is making the
use of it
impossible to users who don't have the capacity to roll their own,
while allowing large-scale expert users to just use it directly. I
would guesstimate
the numbers of users are ridiculously tilted in that comparison, too,
but as explained above, that doesn't really matter - it's about what
those
users can and can't do.
It's also worth keeping in mind that some of those users couldn't
build C++ code to save their life. They don't write C++. They just use
C++ libraries underneath, while their own code and builds thereof
might be something completely different, like Java. Causing a need
to recompile indirect dependencies due to rampant ABI breaks would be
downright terrible to them.
The situation gets even more tragic when we're talking about a
possible ABI break in the system C library, instead of a C++ library.
Now you have *every* user depending on it, and for even more of them,
the idea of having to recompile C code is completely foreign,
when they program in python or whichever language that might not even
use glue libraries to talk to C++ code, but will use the C library.
Received on 2023-03-30 13:23:07