03-12-2021, 06:16 AM
(03-10-2021, 07:21 AM)deanhills Wrote: Why are all software updates ADDING MB only, and not deleting MB that are no longer needed? Like isn't that a weakness of the software in its own right and counter productive? Maybe even a security risk?
The short answer for the ever increasing size of software in general, be it an OS, a browser, a CMS etc... is the ever increase in software complexity..
From my own experience in coding Web Application of various projects, the initial versions are always humble features-wise and extending in few thousands of lines of code. The more features we cram into them be it in functionalities or in design, the more larger and larger they get, hence the more lines of code you add (ie the more kb they compile.)
It's true that the larger a program is, the more complex it gets (for debugging and maintaining) and the more susceptible to vulnerabilities it becomes. This is why programmers always try to 'put their programs through a diet' everytime they add a wave of features into it (ie become larger), a process that they call optimization and code housekeeping that tries to eliminate all the deprecated features (/portions of code) while optimizing the rest. This process always results in the program 'loosing some weight'. If you don't see that too often, it should be because the newly added features obscure/compensate the removed parts of it.
It's the same process that goes into the Operating systems area too. New features added compensating for the deprecated ones that are removed. The only difference is that an OS needs drivers to function and to my mind if there is one database that keeps getting bigger each and every year it's the drivers database (the one that comes with the Linux kernel or the M$$'s Windows.) Hence the ever increasing size!..
This is why I don't necessarily agree that we can systematically associate the bigger size in software with bloat; yes, it can be that in some cases but it's not necessarily the case in all, as explained above; ie it's just an increase in software complexity..