6 ms·
No real groundbreaking insight, but an interesting overview nonetheless. My takeaway is that, zooming out from software, society at large is living in a state
by yuvadam 2y ago
No real groundbreaking insight, but an interesting overview nonetheless.
My takeaway is that, zooming out from software, society at large is living in a state of ever-increasing complexity. We see this in politics, economics, public infrastructure, climate, and of course technology.
The key pattern is that it's always easier to build upon existing systems and work around practical constraints than it is to fix fundamental problems. Software bloat is just one manifestation of this broader tendency in human civilization to accumulate complexity rather than address root causes.
- jakub_g 2y agoIt's insane how complicated laws and taxes are, with layers of layers of new rules on top of old ones. Which often ends up with different courts not aligning "what is the tax for carrots" because of contradictory rules etc.
- graemep 2y agoTaxes are a great parallel in many ways: 1. massively complex 2. issues are fixed by adding more complexity (to fix a security issue, close a loophole). 3. users do not understand how it works (but nonetheless have strong opinions). 4. there is never more than token attempt to clean up bloat (although lots of talk about it) 5. The complexity leads to unintended consequences. As an example if a business pays an employee in the UK: 1. the business (employer NI) pays a payroll tax on the amount paid 2. they deduct another tax (employee NI) based on he employee's weekly income (but if self employed it depends on annual profits, if both its gets complicated). 3. another tax based on the employee's annual income ("income tax"). The second tax is often thought by people to be hypothecated to fund the NHS (many decades ago it funded, and gave people paying it the right to use, the govt funded healthcare before the NHS) or to be used to pay their pension (its hypothecated to do so, but is mostly used to pay current pensions, but for the last few decades how much you pay is not linked to how much you get, which depends on how may years you either paid it, or just fell short of paying it, or claimed certain benefits). its main real purpose these days is to disguise the fact that you pay more tax on earned income than unearned income. A consequence of this is that one person businesses that work through company (rather than directly self employed) will pay themselves as employees just short of threshold at which income tax start and then pay themselves dividends because corporation tax + income tax on dividends comes to less than employer's NI, employee NI plus income tax. So, one loophole and a lot of complexity, but any attempt to change it is strongly opposed by people who gain from the current system, but the real reason it continues is that most people do not understand how it all works. Quite a lot of people do not really understand how even the simplest of those taxes works.
- ralferoo 2y agoI'm in exactly that situation, and I find it interesting how many web pages there are that present the question "how to most tax-efficiently pay yourself as a director" and then only consider two options - at the primary threshold (when the employee starts paying tax and NI on the income) or at the lower secondary threshold (when the employer starts paying NI on the income). There's almost no discussion about the overall taxation burden of taking money out of the company via dividends compared to income tax above the primary threshold (which for normal people is the same as the "tax free allowance"). As you've alluded to, if your total income is in the "basic rate 20%" band, then this is actually cheaper overall paid as dividends (21% for company and 8.75% personally) compared to salary (13.8% for company and 28% personally). However, once you're above that and into the "higher rate 40% band, it's less clear cut. At that point, it's still slightly better to pay yourself in dividends (21% for company and 33.75% personally) compared to salary (13.8% for company and 42% personally), but the decision becomes more nuanced because you might prefer to receive a salary anyway so that your dividend allowance is still free for dividends from other investments. Once you're into the "additional rate 45%" bracket, paying dividends is actually a higher overall tax burden. Actually, the best way to get money out of a company is via a SIPP as an employer contribution, which is zero rate for tax for both company and employer. Although I can't shake the feeling that actually the deferred tax liability (income tax on 75% of it, many years in the future when it's many times its current value) is actually significantly worse than maxing out an ISA and paying the income tax up-front, so if I wasn't already doing that the decision is less clear. But like you say, it's all complexity upon complexity, and life would be much easier if all income was treated the same both in personal tax and taking money out of a company.
- graemep 2y agoTrue, there are multiple complexities I did not even touch on. The child benefit clawback, and the reduction to the personal allowance and a lot more. I only really trying to illustrate the complexity of the relatively simple and very common case of an employer paying a typical employee.
- jakub_g 2y ago> any attempt to change it is strongly opposed by people who gain from the current system This is modern world in a nutshell.
- carlosjobim 2y agoUnder the current monetary system, taxes have to be as complicated as possible, in order to force the government currency to be used in every imaginable transaction. The primary purpose of taxation is this. Actual revenue is second priority. This is why more efficient or more fair taxation will never be introduced.
- hulitu 2y ago> The key pattern is that it's always easier to build upon existing systems Is it though ? I've seen a lot of programs using 1 or 2 functions from a library, but, nevertheless, linking the whole library. Doing an ldd in /usr/bin is an exercise in horror.
- lmm 2y ago> I've seen a lot of programs using 1 or 2 functions from a library, but, nevertheless, linking the whole library. Exactly. Because it's easier. Of course it would be much better to split that library up into smaller libraries so you only linked the part you actually needed, but then people on HN will go crazy about "thousands of dependencies".
- zozbot234 2y agoWhy does this even matter? The system will only ever load code into RAM that's actually used by the final binary, because code is fetched as-needed from disk/mass storage.
- lmm 2y agoThat other code is still taking up address space and making the symbol table bigger (and therefore slower to use). And someone might want to use your program in a context where they don't have so much disk available. More importantly these giant libraries become hard to upgrade and therefore hard to make changes to.
- zozbot234 2y agoAddress space is abundant enough on 64-bit platforms that we even waste a lot of it on security mitigations. Symbols tables are overhead, but loading multiple libs also involves all sorts of overhead. The disk space argument makes the most sense, but binary code doesn't take up a lot of disk space these days; a vast majority is typically used for data, media, the latest large AI model etc. Having larger shared libraries also means you no longer have to statically link that included code into multiple separate executables.
- samantp 2y agoAgree, not much insight. Since it was Pike, I started curiously, just to realise that there was not much about what to do about the issue, other than a superficial “choose dependencies wisely”. The doc had already ended :(
- bayindirh 2y agoSometimes, even the wisest person in the crowd has to talk simply, not to offer solutions, but spark a discussion.
- smoghat 2y agoJoseph Tainter’s Collapse of Complex Societies should be required reading. I don’t care your major. It should be required reading.