The big question I’ve been struggling with in regards to the free trade debate is this:
Is cheap labor a legitimate source of comparative advantage?
I increasingly don’t think that it is. Yes, we get products more cheaply. But those products are made in countries with fewer labor restrictions, often in places that are not democratic, where workers cannot vote for changing laws. We’re effectively saying we want democracy where we live, for our own white collar professions, but we don’t want to be shackled by those restrictions for how we get rich, or how we enjoy our wealth. We’re effectively telling local blue collar workers that we’re okay with their level of work being taken over by people with less rights than themselves.
That increasingly doesn’t feel just. Comparative advantage makes sense for natural differences between countries, such as availability of natural resources or favorable weather for certain types of crops. But not for fundamental human rights.
The thing is, for those workers in "poor" countries, this is a step up. My wife can tell you what two months' work for $300 meant to subsistence farmers in Guatemala. They were happy to get it.
You may say "Sure, they're poor and exploited, but that doesn't make it morally right for us to exploit them just a little less". I agree, up to a point. But insisting on first-world working conditions (including pay) mean that very few of them get hired. This leaves almost all of them poor and exploited, without even the option of "slightly less exploited". Who does that help?
The CIA under Eisenhower overthrew the government of Guatemala when trade unionists were elected on the promise of eight hour workdays and better conditions for field workers.
What do you think the country would be like today if we hadn't killed the union leaders and installed a dictator friendly towards US business?
I hate hearing this. I don't even understand how good unions are an inherently anti-conservative thing. I cannot understand why the US would fail to build up countries in its sphere of influence in order to encourage gratitude. A crutch can help you grow and recover or it can hobble you, and everything I've ever heard about our influence in central and south America has suggested we've hobbled them. -- I hope I'm just ignorant and wrong.
Unions aren't inherently anti-conservative, here's an example of a discussion that identifies specific positive aspects of unions.[1]
In particular, that discussion helps us define a "good" union: one that adds value for both the business and the workers it mediates between.
What makes a "bad" union, then? Well, in some industries, organization of labor won't add much value, so there won't be demand for their services. Union leaders will honestly believe they add value (like many organizations that can't acknowledge they're no longer in demand) and will lobby for laws to force unionization against the will of workers and businesses. That will become a bad union; its efforts will center preserving its own existence.
Worse, unions depend on solidarity, so the good unions will have to side with the bad unions if they want to be able to strike effectively.
And then their critics won't percieve any meaningful distinction between good and bad unions.
They would be making closer to 3000 every two months instead of 300. It wouldn't be a utopia, but it'd be a lot better than if we hadn't bled Latin America dry for our benefit.
My point is that a factory moving overseas isn't some platonic transaction. There is a history and a context to why labor is so cheap and regulations are so lax.
How, in your world, would they be making closer to 3000 every two months?
[Edit: Forming unions doesn't automatically lead to rising wages - or if it does, it may do so at the price of fewer jobs. It isn't automatically going to lead to all the subsistence farmers getting good-paying factory jobs.]
> There is a history and a context to why labor is so cheap and regulations are so lax.
In Latin America, perhaps. In China? Korea, back in the day? Vietnam?
> CIA under Eisenhower overthrew the government of Guatemala when trade unionists were elected on the promise of eight hour workdays and better conditions for field workers.
This isn’t quite the whole story. A significant proportion of Guatemalan land was owned by the United Fruit Company (whose leadership/ownership included significant overlap with Eisenhower’s administration†), but the company was not using the land. The Guatemalan government wanted to buy the unused land back from the company at the price they declared it to be worth on their tax forms. The company went to the US government and whined that their private property was being expropriated.
† “John Foster Dulles, who represented United Fruit while he was a law partner at Sullivan & Cromwell – he negotiated that crucial United Fruit deal with Guatemalan officials in the 1930s – was Secretary of State under Eisenhower; his brother Allen, who did legal work for the company and sat on its board of directors, was head of the CIA under Eisenhower; Henry Cabot Lodge, who was America's ambassador to the UN, was a large owner of United Fruit stock; Ed Whitman, the United Fruit PR man, was married to Ann Whitman, Dwight Eisenhower's personal secretary.”
It's one thing to pay a lower wage for the same work - especially when the cost of living varies considerably. But I don't really think there's anything that justifies inhumane or unsafe working conditions.
I think it's worth questioning whether "a step up" is preferable to possible forward-thinking alternatives - the belief in free-market capitalism has, as I see it, created this dilemma in the first place, to the point where the only two options are to exploit more or exploit less. I'd say this totalizing logic actually hinders progress, similar to being stuck in a local maximum.
> The thing is, for those workers in "poor" countries, this is a step up.
Not if the companies can help it. Just because they're in a low labor cost country doesn't mean that they want to pay any more than the minimum they can there - they're not looking to give a step up, they're looking for the minimum cost to attract a sufficient workforce.
Everybody always talks about these jobs as if they are necessarily great jobs. They may be great, maybe if the company has some sort of local political arrangement that would stay favorable if the jobs stay good, maybe if the management is simply bad and is accidentally paying more than the prevailing rate. But, on the other hand, these jobs are often with awful subcontractors who pay bargain basement wages even for the area, cut safety corners, demand unpaid overtime, and have any potential union leaders killed.
Is cheap labor a legitimate source of comparative advantage?
That really is the big question.
It worked out OK for the pre-China era of "Asian tigers". Japan, Korea, and Taiwan had a labor cost advantage and exported heavily to the US. Their standard of living went up, wages went up, and they lost the labor cost advantage.
Then the next round - Bangladesh (world leader in T-shirt production), Vietnam, Thailand. Labor costs are still low, but the countries are not big enough to seriously hurt the US.
But they were not as big as China. China is 3x the size of the US in population, close in GDP, and has industrialized very fast. The US can't absorb that shock. Eventually, China may lose the labor cost advantage; it's already declined quite a bit as wages go up. But for now, the US is taking a big hit on this.
>Eventually, China may lose the labor cost advantage; it's already declined quite a bit as wages go up.
According to Peter Zeihan's The Accidental Superpower (2014), manufacturing in China has gone from being one quarter as expensive as in Mexico to 25% more expensive. He expects that the US shale and natural gas boom will further reduce costs in Mexico and the US.
Let me play the devil’s advocate: you buying those products is measurably better for those disadvantaged blue collar workers, than you not buying it (on a 10 year horizon IIRC - There are some UN studies on this, on phone and can’t find them right now).
So you are damned if you don’t enjoy them, damned if you do (but a bit less). Obviously, it is better if you could improve their situation to the point where their labor stops being cheap.... but how can you do that?
> Obviously, it is better if you could improve their situation to the point where their labor stops being cheap.... but how can you do that?
The big thing missing from this conversation is how the US/multi-national corporations use international organizations like the IMF and World Bank to force "structural adjustment" policies that end up degrading labor protections, forcing countries to privatize all gov't functions, etc. We have played a big role in the destruction of their "situation". Both historically through colonialism and still actively today with IOs and structural adjustment policies
I'm sympathetic to that idea, to some extent. Foreign workers would indeed be happy to get a marginal increase in their income, even if those wages and working conditions are well below developed-country standards.
But, then, aren't we just making a trade at that point? I will fire 100 local blue collar workers, and hire 100 foreign workers who will do their job for less. I hurt 100 people, help 100 people, and along the way pocket some extra cash for myself. I think most moral systems would have a problem with this. It is generally thought of as immoral to rend one person in order to help one other.
(Yes, things get complicated when you hurt N people to help more than N people, depending on the number of extra people helped and the kind of hurt. For example, sacrificing soldiers in order to save an entire country. Generally speaking though, most moral systems have a problem with hurting people against their will except in extraordinary situations involving very large numbers. Does this trade situation qualify as that? I'm skeptical that is does.)
There has to be a better way. Some way where we aren't harming local blue collar workers, but are still helping foreign nations develop, while giving those foreign nations on the path of strong worker protections and wages that we have here.
It is generally thought of as immoral to rend one person in order to help one other.
Not when it comes to buying things, which is what this situation is.
Blue collar workers in the US (or other developed nations) don't have a moral demand on you to purchase their labor at the same rate forever. If someone across the street (or across an ocean) is selling the same product for less money it's perfectly fine to buy it from them instead.
Do you think it's immoral when you, say, switch from Verizon to AT&T to get a cheaper rate on your cell phone plan?
The thing is that US workers have a lower bound on the fee they can charge for their labor, due to minimum wage laws. Those laws were enacted because we as a country believe there's a moral duty to ensure a minimum quality of life for it's working citizens (and in extension humans in general). Letting industries who would historically underpay US workers to instead just underpay some other countries workers defeats the whole purpose of those minimum wage laws, causing a worse quality of life then if nothing was done at all. Countries that want to treat its citizens well need to reign in that globalist behavior.
That's because most vulnerable workers are either skirting labor laws through the gig economy or have given up and dropped out of the labor pool altogether, which means for whatever reason they don't get counted in the unemployment rate
To whatever extent that is happening, there is no evidence that it has happening more today than it was happening 50 years ago (before globalization) so comparing the unemployment rate of today to the unemployment rate then is still a perfectly valid comparison.
OPs comment asserted that developed world workers were being hurt specifically because of the combination of free trade and a minimum wage caused unemployment. My comment was refuting that specific argument.
The stats you mention are interesting but not relevant to OPs assertion that a wage floor in developed nations was problematic in a free trade world.
> The thing is that US workers have a lower bound on the fee they can charge for their labor, due to minimum wage laws. Those laws were enacted because we as a country believe there's a moral duty to ensure a minimum quality of life for it's working citizens (and in extension humans in general).
Also: things cost more in the US. You can't survive on 3rd world sweatshop wages in the US, even if they were permitted by abolishing minimum wage laws.
How much of that is just the recursion though? If a bus driver in Washington got paid the same as a bus driver in China, they couldn't afford to take the bus. Except that if they got paid the same as a bus driver in China, it would cost less to take the bus.
> How much of that is just the recursion though? If a bus driver in Washington got paid the same as a bus driver in China, they couldn't afford to take the bus. Except that if they got paid the same as a bus driver in China, it would cost less to take the bus.
Very little, actually. Bus drivers need to buy more than bus tickets: even if you reduced their wages to third-world levels and reduced bus ticket prices to third-world levels, bus drivers still get sick and need to pay the doctor? Are you going to push doctor salaries down to third-world levels too? What about education, etc? At some point, you're just going to be pushing wages down across the economy and importing massive levels of inequality.
Expecting to people to take massive pay cuts and enact massive deflation in the name of market liberalism is frankly an ideologically-blinkered, impractical, stupid idea. It entails too much pain for little to no actual gain. The only people happy with the results would be a s small minority of oligarchs and ideological purists.
> If someone across the street (or across an ocean) is selling the same product for less money it's perfectly fine to buy it from them instead.
The people across the ocean in this instance are working obscene hours under deplorable conditions. When you take your business to these overseas firms you are effectively telling your local workers "these are the conditions I think you ought to be working under."
Except it's even worse because you don't have the stones to say it to their face.
If you don't take your business to them, you're effectively telling local workers that they should work under even worse conditions for less pay. Except that you somehow doublethink yourself into imagining that you're being noble.
In some cases they are, but as the people across the ocean have gotten richer (much much richer) their working conditions have improved dramatically. Success!
Have they? The state of labour laws in the countries which produce cheap goods sold to Western countries seem generally poor, especially given the timeframe for which this has been happening. It's also suspect how work is treated merely as a matter of wage and benefits rather than a question of the nature of wage labour itself.
Unequivocally yes! Understanding this ironclad fact is one of the most important things to understand about changes in the world economy over the last 50 years.
China has gone from a country full of subsistence farmers to a country of middle class wage earners.
That wasn't really the question being asked - the question concerned more, whether, for instance, people feel happy working for wages, under working conditions that seem set fifty years in the past to any Western observer, and what the quality of life is like in conjunction with the regimes which typically administer these policies. The argument, to me, seems rather similar to the argument the English bourgeoisie made during the industrial revolution - and it rings even less true when you realize that this new wage earning class is largely not composed of the same group of people who were subsistence farming.
From the perspective of a critic of wage labour (and class society), one form of domination in substinence farming has been replaced by arguably a quantitatively better but much more cunning and egregious one, which disguises its aims through the mantra of freedom to buy and sell - and you won't find many people who would give up that freedom now. That doesn't mean the freedom is desirable, it just means it's better than what came before.
I don't have a hard time saying that people's live are a lot better when they make enough money to afford things like reliable shelter, a better diet, access to medical care (Chinese lifespans have nearly 2Xed in 70 years) & modern transportation.
In addition, while working in a factory making iPhones might not be the best of jobs, it's a hell of a lot better breaking one's back on the rice patties every day.
My point is that the comparison is disingenuous, you're comparing the thoughts and feelings of people situated in one group of time to the ones today, and it doesn't address the fact that wage labour brings its own, more transparent problems - alienation, risk, and domination among them.
When you compare living conditions and material benefits, of course the world is better, but that comes at the moral cost frequently expressed as "sweatshops are necessary because the country becomes richer and you get better living conditions". I don't know how this is justified, this kind of trade-off is not justified by any major ethical system, including most serious forms of utilitarianism.
Consider the case of a Chinese peasant farmer who has has land confiscated by the regime, so now he gets to make iPhones to earn a wage so he can spend it on buying food and shelter and medical care. The conditional freedom of needing to sell one's product (whether that is a material thing the peasant makes, or the labour power the iPhone factory worker produces) hasn't been eliminated, it's just changed form.
You claim to be able to reduce these factors to a comparison in which you can say one is better than the other, and I'm not convinced the reduction is sound. Most people, even our iPhone factory worker, would think that there is (and there should be) more to life than the wage and its spending.
Chinese people used to starve to death all the time because they couldn't afford to buy food. Now that happens much less often because China has gotten much richer through international trade.
>Do you think it's immoral when you, say, switch from Verizon to AT&T to get a cheaper rate on your cell phone plan?
This is an astounding comparison that seems to aim to reduce questions of exploitation down to questions of personal morality, rather than the actual historical development of the systems we have and the ones we like to see. Is it immoral to switch phone providers? I don't think so. Is the system in which switching a cell phone provider can actually harm labourers morally questionable, even on the grounds that liberal egalitarians set out? For sure.
In regards to swapping cell phone plans, sure: If a cell phone company were to die because too many of their customers switched to a better competitor, that would be difficult for the employees of that company.
But that's an entirely different situation than the matter at hand, where we're talking about the United States government's policies on trade and the impact on our entire labor class and their fate within our own borders.
The entire point of an economy is to serve humanity. We're all participating in this circus to put food on our tables, provide for our children, grow, and enjoy life. We cannot lose sight of that fact. We have an obligation to see labor not as just cogs in a machine, but rather as constituents whose well-being we have an obligation to protect.
(I have to say, and I'm sure you don't mean it, but you comparing a human being to a cell phone plan is among the more callous things I've read on these forums. It might behoove you to sprinkle a bit more empathy in your language, just a tiny bit.)
In the vast majority of circumstances you aren't firing an individual American and hiring an individual from China. You're just choosing to buy something from a giant corporation that manufactures goods in China instead of a competing giant corporation that manufactures goods in the US. Switching cell phone providers is just like switching from American Giant (made in America) to some other purveyor of sweaters that manufactures overseas.
Are you saying that you think you have a moral obligation to buy things made by American workers, who are universally wealthier and have access to a much stronger social safety net, than Chinese workers?
If anything it seems like it would be the opposite to me.
This discussion and the original post has been what the United States government’s trade policy ought to be, not the morality of an individual’s purchasing choice (say, to buy a Chinese-made sweater or a US-made one). I think the question you’ve asked is interesting, but I don’t see how it’s pertinent to the matter at hand.
It's pertinent to the matter at hand because trade policy is about enforcing this sort of morality at a large scale. If it is, in fact, immoral to buy goods from China then we can enforce that through trade policy that restricts free trade.
But if it's not, then we shouldn't restrict free trade.
> Let me play the devil’s advocate: you buying those products is measurably better for those disadvantaged blue collar workers, than you not buying it (on a 10 year horizon IIRC - There are some UN studies on this, on phone and can’t find them right now).
Maybe in some cases.
However, you then have labor in those countries trying to struggle for the same protections and advances in wages that workers in the US struggled for, but they are struggling against a far more powerful corporate entity that has the backing of a more corrupt/disfunctional government while also having diversified options to break and weather strikes.
Then you have to add to that all the non blue collar workers who have had their subsistence livelihoods destroyed through land seizures for resource extraction.
Most of the benefits of globalization roll uphill (richer citizens, especially in richer countries extract most of the benefits) the trickle down is minuscule to non-existent.
Yes people still have challenges and problems. But at the end of day, there are hundreds of millions fewer people in poverty than there were just a few decades ago. None of what you're saying justifies that the alternative would have been better, where most of these people remained poor subsistance farmers.
> , there are hundreds of millions fewer people in poverty than there were just a few decades ago.
And how much of that is due to globalization and how much of that is due to the growth of local economies? How much faster would those local economies have grown if wealth was not being siphoned out by multi-nationals? (These are not honest inquiries, not rhetorical questions.)
> None of what you're saying justifies that the alternative would have been better, where most of these people remained poor subsistance farmers.
The people who were poor subsistence farm who had their lands given away are generally not those who have been lifted out of poverty.
In China it’s almost all due to globalization. Multinationals doing siphon out wealth. They invest huge amounts of money in foreign direct investment, enabling faster growth than if all capital had to be domestically sourced and they take some of those profits and repatriate them, but the wages they pay and the capital investment they make stay in country.
In China the people who were poor subsistence farmers absolutely are those lifted out of poverty. The numbers are just too great for it to work any other way, with urbanization going from ~20% in 1980 to 70 or 80% now. Similarly in Korea.
You adjust the system, however obfuscated and difficult it seems, so that they work to better themselves instead of for you. Because at the very bottom layer, that's what's happening.
Maybe a better way forward is for labor cost disparity to be just small enough to encourage jobs by being cost effective after shipping with a hint of extra profit rather than a make-several-one-trillion-dollar-companies cost disparity.
I agree it's an important question. But one thing often left out of the possible answers is to go forward with using cheap labor overseas while also providing a very strong safety net and job retraining options to those who lose their jobs as a result. If this was done, then those workers might be able to benefit from the cheaper prices of products too while still having money in their pocket. Instead they've just been abandoned.
Obviously this is oversimplifying things, but I'm just saying that on the one hand it's important for disruption to happen (Uber making it harder for taxis) for the sake of progress, but for the sake of justice and the social fabric we should protect those most affected by the disruption.
By 'we', you mean the multinational corporations that write 'free-trade' treaties (that usually encompass much more than just tariff reductions). Because voters tend to not get much say (and sometimes not even senators!): https://en.wikipedia.org/wiki/Trans-Pacific_Partnership#Secr...
As a consumer you are voting with those corporations by buying from them or using their services.
It might not seem like it's a choice, because the plurality of consumers have made the choice to go along, so if you do otherwise you're in a small group.
It's still a choice though. You either live the modern lifestyle, which includes (though reducing) consumption based on what could be classified in many cases slave labor. Or you choose a lifestyle that doesn't.
How nice. First subvert democracy through lobbying so they can offshore production, so the only 'choice' consumers have is go along with it, or live in the stone age. Then when consumers don't all retreat to caves and huts in the woods, claim this means they agree with and 'voted' for this course.
Buying is not voting, and deceiving people into believing this has been one of capitalism's greatest successes.
But the opposite direction does not hold. More expensive products are not necessary more ethically. Often the cheap and expensive products are made by the same workers and just sold under different brands.
So the customers cannot know which products are ethically or not.
They would need to vet the entire supply chain of every product. That is a full time job just to check one product
Unfortunately history would indicate that actual slave labor, or something close to it, (high volume, low unit cost) is required to rapidly scale new technologies to the point that they are ubiquitous. This is invariant on the amount of subversion of democracy there is or not.
The choices are 1. Slow down 2. Use bad labor practices 3. Completely automate production. Nobody seems to want to do #1 and we're not advanced enough for #3
> Is cheap labor a legitimate source of comparative advantage?
No, it isn't. Living in the Rust Belt, I find it so obvious that globalization is a race to the bottom that I'm amazed any reasonable person could believe otherwise. All the jobs move to countries with the worst wages, environmental protection, safety, workers' rights, etc.
In economists' language, through labor organization and the democratic process, relatively free countries' workforces created a de facto monopoly on labor, which was able to extract some monopolistic rent (i.e. workers' wages > what they "should" be). Standard economic theory says this has a redistributive effect (labor pulls money from everyone else) plus an inefficiency effect (there's some potential value lost by the artificially high wages).
Standard economic theory says markets should always be free, to avoid the inefficiency effect. This is where I disagree with standard economic theory: When it comes to the labor market, I firmly believe the inefficiency effect is a cost worth paying for the redistributive effect.
If you open up your trade to the rest of the world, fungible jobs all go to the poorest, most repressed people, who can be paid the lowest wages and exploited in the worst ways. It's great for lifting people out of extreme poverty, but as a side effect it slides every country toward moderate poverty while moving all the wealth to the 1%. That's a recipe for potentially dangerous levels of social and political instability.
My solution? Every country with high standards in wages, environmental protection, safety, workers' rights, etc. needs to implement tariffs to level the playing field. If your country has high standards, other countries can still choose lower standards and trade with you, but the competitive benefits of those lower standards will be nullified by the tariffs. Which lets you keep your high standards without wrecking your economy (and as a side benefit raises revenue without taxing your people directly, and gives countries with low standards an economic incentive to improve themselves. Which is potentially a great humanitarian breakthrough, improving the lives of lots of ordinary people in countries whose rulers care only for their wallet).
I think the Trump's tariffs are a move in the right direction, although I think he's made a mistake by making the policy more of a negotiation lever than a semi-permanent way to compensate for China's low wages and poor standards.
I believe so strongly in the value of a tariff policy that I used to say that I thought Trump's willingness to implement tariffs more than balances all of his many negatives. Lately I'm not so sure about that, not because I've lost faith in tariffs, but because Trump's done a lot more negative things than I thought he would.
What about the "luxury" cheese and wine tariffs? Are Italian cheeses and French wines also sweatshop products? I can understand Airbus tariffs, but these? What's next, tariffs on bicycles?
The chilling effect that China is having in liberal democracies like ours is extremely disturbing.
We need our governments to do something about this. If Chinese companies want to do business here, we need our own businesses treated with the same ruleset in their country. We wouldn’t ban a Chinese corporation for a minor executive’s political speech. We have laws against it. (The first amendment protects non-citizens as well as citizens.)
China has been enjoying our markets but hasn’t been willing to extend the favor fully. We need a new trade agreement that demands equal treatment, or we should pull out of China and do business with friendlier countries instead.
(Minor nitpick, but I think you meant "sapience" rather than "sentience." Sentience is something that essentially all animals on this planet have, and just means the ability to experience sensations. Sapience appears to be unique to humans (and perhaps a small number of animal species) and refers to the ability to reason.)
For a military, "identifying" a craft is less about saying what something is, and more about saying who something is. If you know that something is a jet, but you can't recognize the make of it well-enough to know whose embassy to complain to for it being in your airspace, then it's still "unidentified."
It's sort of like a criminal investigation. If you know that "a tall, Caucasian male" is responsible for the crime, that's not worth issuing a formal finding about, because you still haven't identified a suspect to pursue. You have some details, but not enough to "go on."
(Also, many things that aren't jets try to pretend to be jets in various ways, many jets try to pretend to not be jets in various ways, and many jets try to pretend to be other jets in various ways. If you just see "a jet", you can't be sure which of these cases is in play. Identification involves finding a non-repudiable signature—a tell that indicates a particular make of device, that cannot be faked by any other currently-known device. Sort of like a (well-made) virus signature.)
Err, that isn't a correct understanding of physics, I believe. The ship wouldn't need to reduce its output as it gets faster relative to some other object in the universe. It can happily keep accelerating at 9.8 m/s for as long as it likes (or has fuel). No passengers would get squashed.
If the ship's means of propulsion is set to impart a constant force,
then I understand that the passengers could experience a constant
acceleration indefinitely, but that constant acceleration would be
with respect to the ship's reference frame, not ours. A constant
acceleration of 1g in our reference frame would mean by definition
that the speed reaches 2c in two years, which can't be right. Subject
again to the disclaimer that I'm not a physicist and haven't done the
math, the only outcome I can picture is that in our reference frame
the speed asymptotically approaches c in some interesting way.
Oh I see! 1G from our reference frame! Fascinating! That’s a perspective I haven’t seen before, I didn’t realize that that’s what you meant. Indeed, it isn’t possible. We’d see the ship slowly approach but never reach the speed of light, no matter how hard or long they step on the accelerator.
So, actually, like, it's actually really intuitive I feel like:
From the perspective of an object accelerating, newtonian physics works totally intuitively. If you had a rocket that could accelerate at 1g indefinitely, you just go faster and faster and faster and you get to any destination you want (even far away!) pretty quickly. And it would be a rather comfortable trip! You'd have Earth-like gravity the whole way.
It's really only the observer's perspective that things get confusing. When an observer watches something accelerate, they see it never going faster than the speed of light, no matter how fast it "actually" goes.
The trick is time. Time for slow things passes faster than time for fast things. A clock on a very fast rocket ticks much more slowly than clocks on (relatively) stationary things. That's how the paradox is solved.
Let's say you wanted to visit the Andromeda galaxy, which is around 2,500,000 light years away. If you had a rocket that could travel at 1g indefinitely, you'd get there in a comfortable 29 years! However, observers on Earth would see the trip taking around 2,500,000 years.
If you'd like to play with these numbers yourself, feel free to check out this neat calculator (not made by me)
There is nothing intuitive about relativity unless you understand the physics and math behind it. Intuition can only be as good as your knowledge and experience.
Hey, look at this guy over here who's never been accelerated to a relativistic velocity here! But in all seriousness, you don't need to know all the math behind how relativity works to have a general idea of its effects.
> But having a deep understanding of data structures (not just arrays and maps) and algorithms really gives you a mastery of your craft, especially around performance and scalability.
Ok.. Find all the words that match a search string prefix.
I.e. you have a search field and want to show the possible matches as you type. With each new char you’re calling this search and getting back a list of words. The dictionary is in memory in whatever data structure you choose. You only have to return matches if the search is 3 or more chars long.
Now, how does your implementation scale when the dictionary has a million words?
Prefix tree is the right answer here right? From an interview standpoint.
But my question is: why would you want to roll your own here? Wouldn’t the appropriate move be to look for solutions for your specific use case that’ve already been made? Ie if you’re talking web, I see no reason why a standard database index would work. MySQL’s index, a b-tree, is perfectly serviceable for the question, no? I’m having trouble imaging a situation where an out of the box solution wouldn’t work...
I don’t think I have a deep understanding of efficient data structures. I couldn’t re-implement a red black tree for example without looking it up. I wonder: is it enough to have a cursory understanding of things like runtime complexity, space complexity; understand the different basic data structures and how they have trade offs that can help or hinder different operations, and how that connects to real world work. Especially how different actual solutions use different data structures internally. What I don’t understand is the value from going from cursory understanding of data structures to deep understanding.
FWIW, even highly accomplished software developers / hackers like Jonathan Blow[1] have said that in almost every case, you should just use an array as your data structure (or some variation of an array), unless you actually have a good reason not to (that will get you a lot of value)
Of course that doesn't mean you shouldn't know how advanced data structures work and be able to work with them, it just means you shouldn't reach for say, a fibonacci heap before you just use an array.
> Of course that doesn't mean you shouldn't know how advanced data structures work and be able to work with them..
We don't disagree. Understanding data structures is about reaching for the right tool, and very often the hammer of an array/map is the right tool. But the problem I gave isn't that exotic. It's a case where "reaching for an array" is a brute force solution that won't scale.
So how do you separate candidates who understand those limitations from those that don't? By asking about those cases. They're not that common, but that doesn't mean they never come up or you won't get a nasty bug if you don't understand these foundations.
I would start by asking the question without mentioning scaling at all, and see how they respond.
If they immediately jump to using a fancy data structure like a suffix array, but they don't ask any questions about how critical performance and scaling are, then it shows they know a lot of stuff about CS, but they may be lacking in more practical experience.
If they tell you they would just use an array or a map (which would be extremely inefficient with large amounts of data), then you ask a follow-up question about scaling, and see how they respond. If they can't answer that question, then they lack practical experience and fundamental knowledge of advanced data structures.
I totally agree with asking the basic question and then adding scale and complexity.
I don't know if I agree that using a trie at the outset reflects poorly on a candidate. They might see where you are going with the question, even though "you didn't mention scale." Good candidates are going to think about scale at least a little bit. That's not necessarily "lacking practical experience." It's not like basic tries or linked lists are super complex "fancy" data structures.
I think the key is for both parties to communicate thought process. If you're concerned about overengineering then prompt them to explain why they didn't choose an array.
No, you can't run elasticsearch offline on a web client.
Look, we can keep going back and forth and maybe you'll dig up some javascript library that implements a search. And that's fine, I believe there are "maker" roles that largely are about gluing things together and translating requirements into code and shouldn't require screening for CS fundamentals. But at some point it gets a little hacky and suboptimal if you lack a good practical grasp of computer science.