It's a good summary. It's basically the security argument for shared
libraries. (People used to also support shared libraries on the basis
of reducing disk and phsicaly memory usage, but those concerns are
much less interesting today.)
It also highlights the difference between an organization like Ubuntu
and an organization like Google. On the one hand, pushing a new
shared library can fix a security issue for all applications at once.
On the other hand, pushing a new shared library can break an
application that was not tested with that library--or if you do it
very badly it can break all applications at once. The question is:
what do you build, and what do you test?
Ubuntu builds systems libraries and it tests system libraries. Then
it pushes them out, and hopes that applications continue to work.
That is, of course, almost always true. And while occasionally some
obscure application may break, that application was almost certainly
doing something wrong, and it's not Ubuntu's application anyhow.
Google build complete programs and it tests complete programs. Each
program is pushed out on its own release schedule. Because the
programs do not use shared libraries, they will continue working
reliably even as other programs and libraries are changed. (Changes
to the kernel are a different story, of course.) If Google programs
used shared libraries, and a shared library push broke some obscure
program, that program would almost certainly be doing something
wrong--but until that problem was fixed, some Google service would not
be working, and in the worst case a great deal of money would be lost.
When a security issue is found and fixed, each program is rebuilt and
retested on its own schedule--and, yes, for a serious security issue
that may be a crash schedule. But that still seems like the right
tradeoff.
To put it another way, when Ubuntu accidentally breaks an application
that was not written correctly, it doesn't matter very much to Ubuntu.
But when Google does it, it does matter a great deal to Google. On
the other hand, when Ubuntu finds a security problem, it has no way to
force application developers to rebuild their programs, but Google
does have a way to do that. So Ubuntu supports the use of shared
libraries, and Google does not.
Obviously there is no one right answer. I think we should solve the
shared library issues. I think we should make that a priority for the
1.4 release.
Ian