In defence of using China
Summary: Is it just cost advantage that drives tech companies to China? It is a fraction of the whole story.
This is very, very slightly off topic but worth a Friday afternoon (CET) rant about the 'China problem.'
Jason Perlow correctly points out that Apple is not alone:
So we should cut to the chase that Apple is absolutely not unique in having products made by workers which are paid far below that of Americans, that work unbelievably long hours in sweatshops using child labor under conditions that rival that of the worst factories during the industrial revolution in America and Europe of the late nineteenth century.
I have no idea whether there is historic truth in what he asserts and I'm not going down that road although it sounds sort of plausible. Where I am going to go though is in upending his argument about labor arbitrage as THE driver. Yes, costs are lower in China than most anywhere else on the planet apart, I suspect, from the as yet unexploited continent of Africa. But that is not the point.
I thought that in a tangental way, Perlow was going to nail it through a link to a piece he wrote back in February 2011 but even that misses the point. There he says:
How is Apple able to do this where nobody else can? It has to do with buying up the entire supply chain and being able to leverage quantity 10 Million+ manufacturing orders in advance with its partners in China like FoxConn and with semiconductor component suppliers such as LG, Samsung and Philips.
When you have 50 billion dollars in liquid assets, you can pretty much guarantee huge volume pricing discounts at that scale, as well as make those components scarce and expensive for your competitors to buy.
This ability to leverage economies of scale and large component pre-orders, enabling Apple to own all of its own inventory in advance of a major product release is something the company has been doing going back to 2001, when the first iPods were being manufactured.
Once again, while important, it is not the point. While the ability to leverage large scale for cost advantage is a clear opportunity, in Apple's case that is only one point of reference. Dell, HP and others could all make the same kind of point.
Anyone who knows about outsourcing as it has unfolded the last 20 years knows that its success in part depends on a race to the bottom where outsourcers in low cost economies are in a constant fight to keep labor rates low. There comes a point when you run out of places to go. We don't yet know what the long haul brings but such an approach only works for so long and that costs inevitably rise. So how did Apple really benefit where others have not done so well?
I think the best clue comes from an article I read in a weekend edition of the WSJ NYT the other week while traveling in the Bay Area. (Online version here) In the article the author tells the story of how, six weeks before the original iPhone launch, Steve Jobs tasked the team to find glass that would not scratch.
They had already looked at glass from Corning but there were technical difficulties in cutting to size. China was the only place where they could get the job done in time. In the report (as I recall) the Chinese supplier (not Foxconn) was able to provision a production line capable of delivering to Apple's quality standards in a few weeks. The supplier, it is said, had gone to the lengths of starting to provision in anticipation of winning the order. That's real risk taking in the supply chain. The rest, as they say, is history.
The author made the point that when Apple needs engineers, not just assembly workers, it needs them at such scale and in short order that China is the only country capable of meeting its needs. The comparison was made with the US where what would take less than three months in China would likely take 9-12 months in the US. It is those supply chain process dynamics where China has every other country licked.
This is a massively understated achievement that has resonance into software development. The other week I had an interesting meeting with a technology decision maker/buyer where he expressed amazement at how fast the Chinese are at assembling competent teams able to deliver at fractional cost yet without sacrificing code quality. For that person, China is a no brainer but a shock to the broader development community he also has to support. That is because his employed group is far more used to working at a leisurely pace. If you think that startups turn out code quickly then you've seen nothing. More to the point, business on both sides of the buyer/seller divide are all going to have to adjust to the new pace of innovation being driven out of China.
As a darker side note, this week I spent a fascinating hour with the leader of a large enterprise user group who visited China for the first time last year. If you think exploitation works one way then think again. This person said that the experience of being in China was horrible. Why? Taxis have no change, pretend they don't understand what you are asking for and even though the meter might have a price, you could end up paying anything the driver chooses. The same in hotels where prices you thought were booked and confirmed suddenly escalate for a range of hidden charges. The overall cost may not be important in the scheme of things. Does it really matter if a $60 a night hotel suddenly costs $80? It is the sour taste such experiences leave. It is what my guest described as the 'land of the scam.'
Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.
Talkback
?? It's still all about the price
The supplier took no risk. They were subsidized by the government.
"The Chinese government had agreed to underwrite costs for numerous industries, and those subsidies had trickled down to the glass-cutting factory."
See page three
http://www.nytimes.com/2012/01/22/business/apple-america-and-a-squeezed-middle-class.html?_r=1
Exactly!
I'm betting some form of Government incentives to keep the plants and jobs in those countries.
@ye
State support is unusual in Germany
State support of industry is unusual in Germany -- but not in some other European countries, like France. Moreover, German industry has outsourced a lot of low-value-added production to eastern Europe. High-value-added production has often remained in Germany, and there are several reasons for this. The biggest is probably German law governing public companies.
Under US law, public companies operate with a one-tier management system -- a single board of directors. This board includes the executives who run the company and non-executive directors who oversee them. It is answerable solely to shareholders. If outsourcing increases profit, even only slightly, a US board will outsource, no matter how many job losses result.
Under German law, there is a two-tier management system. The management board runs the company, but is overseen by the supervisory board. The supervisory board is not answerable only to shareholders. It is split evenly between shareholder and employee representatives. If the management board of a German firm proposes to increase profits by outsourcing, but with large job losses, the employee representatives on the supervisory board will simply reject the proposal.
German public companies will only outsource when both shareholders and employees agree this is the best course. An example would be when continued production in Germany would make the firm uncompetitive, so that job losses would be inevitable. Outsourcing when necessary to remain competitive is very different to outsourcing whenever it increases profit.
RE: In defence of using China
Agreed.
Plus, Henry Ford knew that to have a stable, cyclical, symbiotic economy of prosperity, the workers need to be paid a living wage. Giving special treatment to the "supply side" and then maltreating the "demand side" is somewhat vicious...
I'd love to see the author of this blog article actually work under the conditions he accepts for others. Then a new opinion might be formed.
You miss these points about Ford
..was offered to employees who had worked at the company for six months or more, and, importantly, conducted their lives in a manner of which Ford's "Social Department" approved. They frowned on heavy drinking, gambling, and what might today be called "deadbeat dads". The Social Department used 50 investigators, plus support staff, to maintain employee standards; a large percentage of workers were able to qualify for this "profit-sharing."
So, you want more money under a Ford type employment model? Then open your doors to your house and let the Investigators in to check out your "Moral Charecter"
Welcome back to Captialism of the late 1800's!
"All of this has happened before..."
RE: In defence of using China
All of this has happened before .. Sadly and tragically, that quote is all too true.
As wages go up, automation will increase
RE: In defence of using China
Java is reference based. Even C# is largely references. I think you're thinking about languages like C++.
And hey, I'd gladly work at a low wage level. It's far better than being unemployed.
According to the Wikipedia, they're supposed to describe what the problem is, rather than what steps to take to solve it (if I'm understanding it correctly - it's not totally clear what it's trying to describe). Which, by the way, is impossible to fully implement. There are issues with such languages that are not in procedural languages such as unsolvable problems and problems that will take infeasible amounts of computational power to solve.
Not to mention a lot of people simply do a poor job of defining what the problem really is, or the problem may include elements that aren't really translatable into a declarative definition.
And often you already know the solution, in which case asking a machine to solve the problem itself is a waste of computational power.
And of course declarative languages will need to run on lower level languages - once a solution is found, it must be implemented somehow.
Code reuse is common in C# and Java, and good frameworks and APIs can simplify code as much as any declarative language can. In fact, they can act very much like declarative languages with some frameworks! There's nothing preventing a common framework from including elements of declarative languages that can be mixed with procedural languages.
And honestly, I don't think declarative languages are useful for everything that procedural languages are useful for. They are a different way of doing things, but I don't really think they are an "ultimate solution" for all of the problems that procedural languages can tackle, or that they're always a superior way of doing things. Sometimes yes, you do in fact want direct control over how to solve a particular problem.
And you know what? Computers aren't just problem solving machines. They are also entertainment devices and creative devices. I can play games on a computer or write stories or create art on them. Not everything is really a mathematical problem to be solved. I can tell a computer [i]how[/i] to draw a brush stroke that emulates a paint brush, but can I tell it [i]what[/i] that computation is?
It just seems to be easier to understand some things procedurally, and hence it's easier to write them using a procedural language rather than a declarative language.
So no, I do not think that declarative languages are some sort of "ultimate" language everybody will be writing stuff in, or that it will really significantly impact how many programmers we need (indeed, you'll need programmers to use the declarative languages themselves).
References are pointers
RE: In defence of using China
Okay, technically a reference is a type of pointer. However, it is still the case that Java does a lot to hide pointers from the developer. It's nowhere near as bad as, say, C++.
"Furthermore, given the basis of declarative language in logic, once you have learned logic you have something that will be usefull to you for the rest of your life whereas if you learn a product (like C# or Java) you have something that will only be useful until the vendors think of some new language to peddle. OO lacks a sound theoretical foundation."
Procedural languages also have a basis in logic. In fact, all a computer really is is an enormous collection of logic circuits. This was all figured out by computer scientists some time ago, including a man named Alan Turing. It is different, yes, but it is also well studied, and has very strong ties to mathematics and logic. Things like the Church-Turing thesis, Lambda Calculus, and and computability theory are extremely important to developers even at a procedural level.
"On a business level I find it difficult to think of any situations where it is really necessary to drop down to the procedural level"
Perhaps that's the nature of your business, and do keep in mind that computers certainly do much more than mundane business tasks. And, of course, somebody has to write the tools that you use.
It would be nice to know what tools you use (or similar tools), as I haven't really done enough in declarative systems.
"like to know how many user screens I 'programmed' today?"
Sure. I'd also like to know what a "user screen" is.
"But no one should see this as a threat"
Of course not. I'm not seeing lower level stuff going away because of this. Sure, you may not have to deal with the low level stuff, but that's the point. People like me do that for you, so you can concentrate on high level business stuff. That doesn't put people like me out of a job, as we still have to do low level maintenance of the the high level tools.
It's not really sounding as if declarative tools are actually replacing procedural languages, they're just doing the business tasks they were designed for.
But - correct me if I'm wrong.
RE: In defence of using China
Regarding "mundane business tasks" I would say for complex business tasks just about your only hope of successfully implementing and maintaining such a system is by using declarative methods.
RE: In defence of using China
Humm - about one every 2.4 minutes, eh (assuming an 8 hour work day)?
Such a rate would require templates or some sort of reuse with minor modifications, I would imagine. Probably not "programming" in the same way I think of it. Also, I don't really understand why so many would be needed? Also wondering if further automation would be possible, if that many are really needed.
"The declarative language I use is the one that almost every business has installed, but may not be using to best advantage. It's not a very good declarative language, and I would like a better one, but from a pragmatic point of view it is what is available."
I don't suppose it has a name?
RE: In defence of using China
RE: In defence of using China
RE: In defence of using China
Time for you to learn Chinese
RE: In defence of using China
What's funny is Chinese people, when given a choice, avoid Chinese made goods. They know something we don't?
Chinese goods