So, that code gets me thinking about premature optimization. In the "verschlimmbessern born of optimizing the wrong thing because you didn't use measurement to guide your efforts" sense.
The rule of thumb I hear is that, in a mature product, reading and maintaining code takes about 10 times as much effort as writing it in the first place. I've never tried to measure this myself, but it doesn't seem to be wildly off from what I see at work, so let's go with it. Let's also assume, for the sake of argument, that these AI tools double the productivity of people writing new code. Or, equivalently, they halve the time it takes to write it. (This is a lot more than what I see people typically claim, but I'm trying to steelman and also it makes the math easier.)
Anyway, this would imply that, speaking purely in terms of raw productivity (not, say, security or correctness) the AI coding assistant is a net win when the code that's written using it is less than 5% more difficult to maintain.
And I'm inclined to think that, if Copilot & friends are enabling more people to write more code that looks like what we see in this article (also not wildly off from what I see at work), then it's hard to see how they could possibly be making codebases where they are used less than 5% more expensive to maintain.
Can you elaborate on this part? I am trying to understand.
> in a mature product, reading and maintaining code takes about 10 times as much effort as writing it in the first place
Wouldn't that imply that rewriting a mature codebase from scratch would take ten times less effort than reading and maintaining it?
I only saw two instances where (different) management approved a complete rewrite of a working product and in both cases it turned out to be a disaster, because it is easy to severely underestimate how much effort it will take to match the features, quality and performance of the old codebase. I suspect it is almost universally better to refactor the old codebase incrementally.
Based on that, I take that you mean something else and I didn't get your point.
If a line of code belongs in a project with one file and a main() function, the presumption of impact of that code line on overall code paths is trivial.
If that line of code belongs in a library procedure used by a million LOC project, presumption cannot be done if you don't the project internals and tooling.
Rewriting entire systems or frameworks because one thinks that it's hard to implement a certain class of features is almost always a recipe for disaster.
Every line of code in the first implementation is there for a reason -- it has an implicit history, and implements a requirement. If that requirement is not captured elsewhere, then the prerequisite for /re/writing a system is to read the first implementation, understand the implicit requirements in the code, capture those requirements (or explicitly eliminate them if incorrect), and /then/ start writing version two. So /re/writing a system is a strict superset of both reading a previous implementation and implementing, and is thus harder than either.
> So /re/writing a system is a strict superset of both reading a previous implementation and implementing, and is thus harder than either.
As you said, every line in the old product had a reason to be. You can learn that reason in two ways: the way it was done in the first place, or by analyzing the old code. My argument is that the amount of effort required in both cases is in the same ballpark -- it will depend on a number of factors such as the quality and quantity of the documentation and testing in the old product, the availability of people who worked on the first product, etc.
So, no, rewriting a system is not automatically more work than writing the original one. But it is certainly not automatically less work either, and many people make the incorrect assumption that rewriting a system is going to take much less work than fixing the existing one.
That said in any non-trivial project, writing in the first place and rewriting aren't too different from each other in practice.
Assuming someone doesn't have the ability to maintain a consistent and always-accurate mental map of tens of thousands of lines of code, most of which they probably didn't write themself and some of which they might have never actually looked at before, they're going to very rapidly reach a point where most of the work involved in adding a new feature consists of reading existing code to understand how it behaves and how the new code needs to interact with it. So the expensive part of adding new code to a work in progress, and the expensive part of rewriting existing code, are more-or-less one and the same.
You spin up a fresh server from a cookie cutter image that lets you create a practically unlimited number of identical servers.
That's not even remotely like how rewriting code works. Rewriting code is more comparable to what spinning up a fresh server was like a quarter century ago. So, back in the days where they were important things because spinning up a new one was an unholy PITA and literally never went off without a hitch.
"Lower prices" doesn't necessarily mean they just suddenly and immediately drop. That's no surprise; dropping prices purely out of the goodness of your heart isn't terribly good business practice. Also, for a lot of retail, MSRP is MSRP, and that's a pretty big anchor point.
What I'd expect instead, based on my having taken exactly one class in economics as an undergraduate, is subtler effects that play out over time. Maybe the general growth in prices over time slows down a titch until a new equilibrium point is met. Maybe wages rise a little bit because retailers can afford to pay their employees more. Maybe life gets easier for smaller businesses that have less negotiation power than the multinational behemoths. Maybe some bank executive somewhere decides not to buy that third luxury car at the same time as ten thousand restaurant owners decide that, just today, they will treat themselves to an espresso drink from the coffee shop instead of making drip coffee at home. That kind of thing.
I think maybe that last example is most interesting to me, because it calls attention to how merchant/consumer is a false dichotomy and things are always a bit more subtle than how the news likes to make us think they are.
> What I'd expect instead, based on my having taken exactly one class in economics as an undergraduate, is subtler effects that play out over time.
As a PhD student in Econ, I am glad to see that you learned something about how to actually apply this work. Thanks for making my day after some rough grading.
> What I'd expect instead, based on my having taken exactly one class in economics as an undergraduate, is subtler effects that play out over time. Maybe the general growth in prices over time slows down a titch until a new equilibrium point is met. Maybe wages rise a little bit because retailers can afford to pay their employees more. Maybe life gets easier for smaller businesses that have less negotiation power than the multinational behemoths. Maybe some bank executive somewhere decides not to buy that third luxury car at the same time as ten thousand restaurant owners decide that, just today, they will treat themselves to an espresso drink from the coffee shop instead of making drip coffee at home. That kind of thing.
To veer a little off-topic, this is why my biggest economic policy dream would be banning or severely restricting ads and marketing.
The fees you describe are a few percent points. The average B2C company spends 10-15% of their budget on what is, for the most part, a zero-sum game with their competitors. Even ignoring all the aesthetics and societal benefits, imagine the boon to overall productivity.
obviously gradually, and over many years, to make the transition manageable. e.g. increase taxation on marketing expenses by a few % a year so it is less and less financially viable.
I think massively restricting advertising is probably also the only way (well, pretending it's remotely politically feasible) to move away from the horrid pile of perverse incentives and their consequences that is the modern technology landscape.
>because it calls attention to how merchant/consumer is a false dichotomy
Yes! People forget that the many merchants in this country are also participants in this consumer economy as well. I think one's exposure to mom&pops/small businesses informs this view greatly. One can be forgiven of seeing merchants as faceless corporations if the entire shopping experience has happened at faceless multinationals (...of whom's profits contribute to many consumer's 401ks!)
And also Merchants are in many ways the "edge compute" of the long, very complex tangle of suppliers, wholesalers, service providers, and (of course) the bank. All which entail transactions that, in isolation, looks very similar to merchant-consumer.
I haven't paid to read the linked article, but the abstracts do differ significantly. Perhaps the work in the above link is presumably not representative of the final published version, which is about 20 pages shorter. That could just be formatting differences, though. About 60% of the pages in the earlier version are figures and tables, many of which get, but do not fill, a dedicated page. The author has presumably had ~5 years to keep working on it in the intervening time. That could either be a good thing or a bad thing, depending on various factors including one's own opinion on how the scientific process should work.
Personally, I'm always pretty a priori skeptical of this style of economic "natural experiment". I'm rather fond of economist Ronald Coase's observation that, "if you torture the data long enough, it will confess." And 5+ years is a long time to spend p-hacking one set of data. But it's hard to know what all is in a 30-page paper based on just a 150-word abstract. So I would encourage people to be very cautious about getting too caught up in dissecting and discussing this without taking some time to digest the whole thing first. Arguably Hacker News is just not the right venue in the first place because it's set up to reward opinions that people can assemble in a matter of minutes, and digesting and understanding the merits of a 30-page economics paper probably deserves more like a week's worth of time.
My understanding is that excise taxation is generally agreed upon as the preferred method for governments to manipulate the market, both because it incurs fewer deadweight losses and because it tends to actually work better.
So, what if we get rid of all these complicated rent control and rent freezes and affordable housing schemes, and instead just implement a rent tax, to be paid by the landlord, and make it progressive? I don't know exactly how it should scale; you wouldn't want it to be just by rent because that would have a regressive impact on families who have kids, because they need more space and more space naturally costs more. Maybe price per square foot?
At least in my city this would probably also reduce real estate prices in general, because a huge source of demand for houses is actually real estate speculators who buy up houses and then put them on the market as rental units. I gather, based on one conversation with an acquaintance who had been a realtor but was looking to pivot into this line of business, is that a lot of what's fueling that is, in effect, not-exactly-loopholes in US and local housing, lending and tax laws - many of which are ostensibly aimed at making housing more affordable - that allow people with sufficient resources to financially engineer together a speculative source of income while externalizing all the risk onto everyone but themselves.
Most demand for houses is from people. Most price increases are due to a lack of supply that exceeds population growth. Most lack of supply is caused by it being illegal to build higher / more dense, and a variety of other rules and regulations.
Landlords are for the most part capitalizing on these broader market / regulatory trends.
No, price increase is mostly due to inflation trends. When there is an inflation trend the house market follows, for example in London, after the start of the war in Ukraine things like gas and gasoline price went up which created a legit price increase for products that depends on those. But we've also seen an increase in rent. And that's because estate agents knew that since there was an inflation trend people were expecting to pay more. So the whole market went up with no significant change in supply and demand.
You’re wrong and you don’t know what you’re talking about, I don’t mean to be rude but it’s more than just inflation. There is a mismatch between number of people and number of housing starts, it’s been this way for 20 years. Estate agents charge more because people will pay it because anyone who can’t afford it goes homeless or moves somewhere else.
In London, where housing delivery has long trailed short of need, the population rose by 3.4 for every new home.
This mismatch of housing supply and need has had drastic consequences for affordability. Rents increased 2.0 per cent per year in England on average over the last decade, according to data from Hometrack. Growth ranged from 2.4 per cent per year in London, where housing delivery was lowest relative to population growth. In the North East, by contrast, housebuilding all but kept pace with population growth and rents grew just 0.7 per cent per year.
The ratio of house prices to earnings, another basic measure of housing affordability, increased from 6.9 in 2010 to 7.8 in 2019 across England. In the North East, where we delivered almost as many homes as people, homes became more affordable. In London, where housing supply falls far short of need, the ratio of house prices to earnings has ballooned.
A large part of the price in indeed related to offer vs demand but that's the basics for any market.
Now it's funny because you also say "Estate agents charge more because people will pay it because anyone who can’t afford it goes homeless [...]".
So it isn't just offer and demand isn't it?
When you think about it, even in areas like London the housing market is not liquid nor uniform enough for the offer vs demand model to apply. You don't rent/buy home like you buy strawberries.
In about 1 year there was no significant increase in demand and the supply stayed the same but everybody saw its rent increase.
Edit: Also we should not mix-things up, the housing market is very different in outliers like London compared to the more global market. Here we're in the context of those outliers (Paris, London, etc.)
I don't understand the downvotes. I honestly think what that is saying is true in a black and white way.
Grandparent says:
"get rid of all these complicated rent control and rent freezes and affordable housing scheme..."
I think this is fertile for discussion. Rent freezes didn't work in Argentina (extreme example), my opinion is they don't work anywhere. But oversupply does reduce prices, as happened with evergrande in China.
IMO interest in not having an oversupply bursting a bubble is precisely what parent is talking about.
Compare and contrast with Paraguay where you can build whatever you want whenever and there is an ample supply of housing and very little in rental returns.
Argentina is a great example. That said rent is also cheap in Buenos Aires. But I think that is due to the economy rather than rent control.
You’re right in that affordable housing in any real sense would be MASSIVELY unpopular with voters. You’d be looking at cutting values in half to reach 2000s levels of affordability or 75% to get to 1970s levels.
The best that can be done is freezing house prices nominally (or close to it) and then let inflation take over as supply increases.
People are really bad at working out constant dollars and have loans, as long as the nominal value is steady or going up slightly, they don't really care if the absolute value has dropped because of inflation.
> Most price increases are due to a lack of supply that exceeds population growth.
Citation definitely needed.
In my opinion, cheap credit (i.e. low interest rates) is the primary culprit. It has created an awful lot of 'artificial demand' for properties as investments as opposed to demand for properties to be used as homes. In most markets I look at, the proportion of underutilised properties has been rising (second homes, short term rentals, land banking, etc).
Here in NZ the sharp rise in interest rates caused a sudden and significant increase in homes available for sale and homes available to rent. Where did they come from?
The problem with taxing rent is you have to ask: do you also tax the "imputed rent" of owner-occupiers?
It's politically difficult to do so, but if you don't you end up with an even bigger barrier to mobility and entry to the property class as you have to pay more until you can save up for a deposit.
(I don't think you can make the tax incidence on renters zero)
There are failures of excise taxation to address the problem, in part due to political objections and blocks to taxation in the first place, while there are very long running examples of quality public housing making a competitive check on excess private rents in city markets.
A few choice paras (if people don't read the full article):
"The forthcoming general election is once again likely to be dominated by claims about a housing shortage and a dire need to build more homes. Housebuilding is an article of faith across the political spectrum. The evidence, however, does not support this thinking. Quite the reverse. Over the last 25 years, there has not just been a constant surplus of homes per household, but the ratio has been modestly growing while our living situations have been getting so much worse. In London, as the Conservative Home blog notes, there is a terrible housing crisis “even though its population is roughly the same as it was 70 years ago”, when the city was still extensively bomb-damaged by the second world war."
"The supply issue continues to dominate the discourse despite the US having more homes per capita than at any point in its history, and the UK’s homes-per-capita ratio actually exceeds the US’s."
"In terms of the Organisation for Economic Co-operation and Development countries, the UK has roughly the average number of homes per capita: 468 per 1,000 people in 2019. We have a comparable amount of housing to the Netherlands, Hungary or Canada, and our housing stock far exceeds many more affordable places such as Poland, Slovenia and the Czech Republic."
That argument presumes that housing is consumed the same way it was 70 years ago, and that the location of the housing is irrelevant.
I know lots of places where there are empty, cheap houses. They're not close to any good jobs, the only Internet they have is 3G, and the schools suck because the county is poor (because no one wants to live there).
I also suspect housing consumption per-capita is up as people move out younger and marry later. Especially in population centers.
I'm not sure what they're pointing to as the reason for housing prices if it's not supply and demand.
And you either have to make the "cheap places" more desirable (which raises their prices, but lowers pressure elsewhere) or you have to build more housing in the desirable areas.
You also have the issue that if someone does have a house, no matter what kind of house, it's a hassle and a half to move, so you have to provide some pretty darn strong incentives to get people to move.
My house ain't great, but I'd need something like $10-20k to consider moving to a nearly identical or even somewhat better house, just because of the costs and hassle associated with moving.
I think the main argument they are making is that affordability is less a demand/supply issue and more a tax policy issue. Implication being: if you cap rental income, you'll see a fall in private landlords but not necessarily less housing stock than if there were no rent controls.
>I'm not sure what they're pointing to as the reason for housing prices if it's not supply and demand.
They are saying the uncapped rental market makes housing as an asset class extremely profitable i.e. simple supply & demand argument is not strong enough alone to be the only driver.
Housing per capita may not be the best measurement, if households are changing. What may have been two parents and some kids in one house after the war may now be two separate households because of divorce, etc.
everything is paid by the renters, and if the price is not high enough (to turn a risk-weighted profit) it will be removed from the market.
(if there's a high enough vacancy tax and/or security costs against squatting, then eventually it will be sold. which is a one time boon for the market, but it ends up crowding out new developments for a while, and altogether this just leads to crazy waitlists and the usual discrimination.)
I don't know anything about the French rental homes market but in the USA there's ample headroom in lessor profits to take a haircut without triggering the second-order effect that you hypothesized. Landlord income as a share of GDP (again, in the USA) stands at a post-War high, having increased 15x from its low around 1990.
Landlords have a huge and largely unearned cashflow and the thing about taxes is it's best to try to raise them where the money is.
Rental supply is fixed in the short term. Therefore landlords have no pricing power unless they are colluding assuming theyre trying to maximize profit and not giving tenants a deal. Landlord goal is to rent every unit for maximum amount, that means renters set the price by competing with each other.
Kind of the same deal as rent control in a lot of ways, right? What you get is a short-term suppression of market rates that slowly get internalized by the supply-side until prices more/less return to the original equilibrium
> People who don't understand market pricing are against rent taxes because they think landlords can pass them through.
If all rents are taxed, what is the market mechanism to avoid pass though?
It seems as if a more fair approach would be to increase tax rates on income from rents. That way a rentier would not defer maintenance, the costs of which would be deducted from income and not taxed, as opposed to front-loading the tax to the rent transaction and thus encouraging deferred maintenance to preserve income.
The problem — again, in America — is that residential rents are by far the largest component of unreported income. Exemptions mean nothing to petty criminals who are already not effectively taxed.
The market mechanism that precludes tax pass-through is the price is already set as high as the market will bear. If landlords could raise the rent to pass through a new tax then they would have done so already without the tax.
Where do you find that residential rent is highest unreported income? Last figure from IRS I see is 2014-2016 and rent was a quarter the size of non-farm proprietor: https://www.irs.gov/pub/irs-pdf/p1415.pdf#page23
What percentage of total rents are unreported? One would expect that the majority of rents are collected by professional management companies subject to reporting requirements that make underreporting unfeasible. Maybe that is an incorrect baseline?
What makes you think that rents are already as high as the market will bear? After all, rents keep rising, right?
And even then, I no longer believe that "removes as much friction as possible compared to local functions" is a desirable goal in the first place.
Over the course of my short 20-year career, I've encountered far too many applications that accumulated terrible performance or reliability problems that were directly attributable to their authors feeling a bit too comfortable about getting chatty with the slow, unreliable remote procedure calls.
By contrast, the most successful microservices shop I ever worked at was very conscientious about doing nothing to hide the messiness of RPC. (Ease the implementation, yes, but not hide the messiness.) And that seemed to foster a culture of being much more thoughtful about interaction patterns and data flows and how they might contribute to or detract from the overall performance and stability of the system.
One of the author here. I definitely agree that you get markedly lower reliability and performance one you move a local function call to be remote. So, we're definitely not advocating that moving a local function call to be remote is inherently virtuous.
However, I've found the abstraction to be useful when someone _has_ already made the decision to refactor their service out to be a separate service.
If we renamed regulatory terms of art every time members of the public misinterpreted them, we would be changing terminology so often that we'd end up with everyone being confused, not just some people.
It was for manufacturing. It's not as great as one would hope for actually playing. The city has an ordnance that says that you need a special "public place of amusement" license if you have more than 3 machines and are open to the public, and it can be rather expensive. So places to play are generally limited to a relatively small number of barcade-type venues that tend to be loud and crowded.
I prefer the pinball scene in Milwaukee. Seemingly every neighborhood has at least a few relaxed, cozy bars with a decent number of machines in the back room, and there are also a few decent venues that are open to minors.
I don't know Portland as well, but based on what little time I've spent there it seemed like the situation was more similar to what it's like in Milwaukee. I've stumbled across some great old classic machines when I was there.
Seattle is like this too. There seems to be one or two machines in a lot of bars, particularity the sleepy ones. There are a few dedicated pinball bars as well which are always fun to kill an hour or two in.
The organizer of a pinball tournament league I used to participate in expressed regret about buying his own machine. The up-front price of buying one isn't terrible, no. What he disliked was that he felt committed to that one single machine, and ended up playing it so much that he was thoroughly bored of it within a year.
You're not committed, though. It's not that hard to resell and buy another one, or even find a partner to trade machines with. I've done that quite a few times. I have 5 machines at home, but have rotated through close to a dozen this way in the last couple years.
OK, so this is definitely something to follow up on. But also, that other recall for the warning lights being too small that the article mentions really caught my eye. Seems like Tesla failed the brown M&M test[1] on that one.
The rule of thumb I hear is that, in a mature product, reading and maintaining code takes about 10 times as much effort as writing it in the first place. I've never tried to measure this myself, but it doesn't seem to be wildly off from what I see at work, so let's go with it. Let's also assume, for the sake of argument, that these AI tools double the productivity of people writing new code. Or, equivalently, they halve the time it takes to write it. (This is a lot more than what I see people typically claim, but I'm trying to steelman and also it makes the math easier.)
Anyway, this would imply that, speaking purely in terms of raw productivity (not, say, security or correctness) the AI coding assistant is a net win when the code that's written using it is less than 5% more difficult to maintain.
And I'm inclined to think that, if Copilot & friends are enabling more people to write more code that looks like what we see in this article (also not wildly off from what I see at work), then it's hard to see how they could possibly be making codebases where they are used less than 5% more expensive to maintain.
reply