Null references do make reading code more complex for the user since every function call must be prefaced with a null check. If I make a function call in every line of my code adding all the null checks would easily double my line count, burying my code in Java-like verbosity (ok not that much but you get the idea). I suppose a good IDE could help with this if option types remain unavailable.
Another common complaint with null references is that there is no compile-time type safety that you get with option types. The go team could mitigate this by having the compiler check for possible null references that may not have been caught and emit warnings or refuse to compile.
You're not going to check that s != nil before calling s.Foo, even though s is probably a *server.Server and could be nil. But it won't be, if the New function is correct. Yes, the compiler doesn't guarantee that New gives you a non-nil pointer, but it also doesn't guarantee a lot of things about the behavior of the program.
I was mainly referring to function arguments. Any function that takes a pointer type has to have null checks at the beginning, since any of the pointer arguments may be null.
"has to" is a bit strong. The standard assumption is that pointer arguments should be set (or the function is documented otherwise), and the responsibility is left with the caller. It just bubbles out from there.
Yes, this is the way things have been done since 1965. It sounds simple enough, but as it turns out, in complex systems, this is a common cause of defects.
Programmers forget to check things all the time. Assumptions made in different areas of the code, by different programmers, at different times, do not always hold.
Fortunately, computers are good at remembering to check things. We just need to allow them to do so.
Both of your examples are new to me as well, however I can make sense of topics discussed. Just to use your example, the first equation for B-splines defines it as a function from a tuple of ordered reals to real vector of dimension d. The real difficulty with math is not so much the symbols as they give a precise but very legalistic way of defining things but the underlying concept or intuition that it represents, the deep semantics if you will. The best analogy is law. The way a lawyer or judge defines things will be different from the way a lay person would due to the difference in precision. The descriptions will be technically correct but will make you second guess on what it really means. I wouldn't go so far as to say it sucks but math is definitely scientific legalese.
Rather than saying what is descriptively and historically accurate, I believe Thiel and Kasparov are merely issuing a challenge, if stated in a somewhat hyperbolic way, to today's innovators/entrepreneurs. If read in this light, they are cheerleaders not historians.
I imagine voting out Biden/Hatch means the next set of pols will just take the campaign contributions instead. What can be done structurally to prevent this cycle from repeating?
I think strict regulation is the way to go. Banking in a modern economy is really a utility like gas, electric, and water.
Another solution that is more long term oriented and market based: create rival capital-formation pools outside of Wall and Broad, say in the Midwest, South, and West Coast. That way if one pool blows up, we can let them fail and it won't take out the whole economy. It also removes single points of failure from the system. I think the crowdsourcing bill floating in Congress is a great start as it decentralizes capital-raising.
Then here's something different for you from the LAT: a guy with an MBA, a law degree, has Wall St experience, six figures in debt and hasn't found a job in years.
"The technology behind one patent allows a site to offer suggestions to consumers for items related to what they're currently viewing, or related to online activities of others in the case of social networking sites.
A second, among other things, allow readers of a news story to quickly locate stories related to a particular subject. Two others enable ads, stock quotes, news updates or video images to flash on a computer screen, peripherally to a user's main activity."
If you try your hand at this "armchair budget analyst" game, you'll learn that its easier practically and politically (yes, politically) to just raise the money, especially in a state like CA:
To be fair, the CA real estate boom/bust really did a number on the state's coffers. To ignore the impact of the "great recession" is to not see the problem accurately. The govt relied on increasing property tax revenue that disappeared as quickly as the monopoly money used to pay for it (aka subprime loans) and on state income taxes and sales taxes from workers who quickly lost their real estate bubble jobs. If those workers still had their jobs and homeowners still had their homes, we'd find something else to complain about. Moral of the story is be careful when playing with credit.
> Grove is basically saying we need to start more companies that "scale up" to require factories where people sit doing stuff like what's seen in that video. He's wrong.
You have to give Grove more credit than that. Obviously, he does not want to create clock-punching jobs just for the sake of having clock-punching jobs. Grove is known to run a tight ship. His example of the alternative energy space is a perfect one demonstrating the inability of even new industries invented in the US to remain here. All the "scaling" happens in China, leaving little secondary benefits to the innovating nation. Why can't your oscilloscope be made here? Sure, they have the know-how, but so do we. They have assembly lines, so can we. In theory there shouldn't be a problem. But in the real world, we know the playing field isn't level. Like how China allows externalities to develop by quashing labor/worker conditions and the environment to create the perfect arbitrage situation for offshoring US entrepreneurs. Can't forget their dollar/yuan "managed" exchange rate. Again, they are subsidizing the offshoring startup. China has clearly stacked the deck hence the inevitability of your oscilloscope being made overseas. This is by design and its all policy-driven. Should the US sit idly by as a de facto trade war is staring at them in the face? Or should they follow through with the offshore tariff that Andy suggested? Controversial, no doubt, but one must do whatever it takes to win a war.
CB, you make good business argument for the current microeconomic behavior of firms but you must put on a political-economic hat and think decades down the road to really get at his thinking (and he's as sharp as they come). I believe Andy is being long term greedy. He's fighting the next war.
"Can't forget their dollar/yuan "managed" exchange rate"
A currency tied to the dollar is not a subsidy, any more than a common currency between New York and New Jersey is a subsidy for New Jersey exports.
Borrowing creates trade deficits. The US has been borrowing massive amounts to simulate prosperity.
When you borrow for the sake of consumption, you import a lot and export a lot less.
It doesn't matter what other countries do. What matters are the choices we make for ourselves. And massive government borrowing and super low rates are bad choices with bad consequences.
My real point, though, is that consolidation is inevitable. Production jobs ("Scaling," etc.) are going to become less important over time, not more important, whether they're in China or America. Any forward-looking argument that doesn't take that fact into account is flawed from the outset, and I think Grove's piece falls into that category.
Is it really healthy for Silicon Valley if Apple has a factory cranking out iPhones in Cupertino, Google has a 99%-identical factory for Droids in Mountain View, and Palm has yet another factory producing Pres in Sunnyvale? What's the point? The hardware's all very similar from a production viewpoint, or it soon will be. In a rational business climate, all of these products would be made on the same line, by a company that sells manufacturing capability to the highest bidder. Competition will happen on a purely IP-based playing field, not on the factory floor.
Going back to the Tektronix example, when Tektronix finished one of those CRTs, they practically had a one-of-a-kind relic on their hands, a part that would not only not fit in any one else's oscilloscope, but could in most cases be used only in a single model in their own product line. They didn't have what we'd call excess capacity, and if they did, they darned sure wouldn't use it selling excess tubes to the competition, because those tubes were a big part of what made their overall product competitive. So every manufacturer of those particular widgets had to either build their own CRTs or buy them from a common vendor (in which case their scopes sucked).
Tektronix in 1960 couldn't afford to treat production as a red-headed stepchild in their overall business plan... but they sure can today, when the bulk of the test equipment they sell is OEM'ed out of China just like everything else. Sorry, but IMHO, the production of solar panels, portable fusion reactors, or whatever is just going to take the same inevitable course. The business will be commoditized if it prospers at all. Trade policies and externalities have absolutely nothing to do with that.
> Is it really healthy for Silicon Valley if Apple has a factory cranking out iPhones in Cupertino
You're begging the question; there is a country beyond Silicon Valley, and Grove's argument is that what is best for Silicon Valley (meaning, the bottom lines of a few tech firms which together only employ a small percentage of the U.S. population) isn't necessarily what is best for the country as a whole.
Put more directly, it's not clear that there are enough IP-based jobs to keep the United States at or near full employment. To do that, which we need for social stability, because high unemployment is intensely corrosive, we need to capture some of those manufacturing jobs. And it might be worth doing things that hurt tech companies' profitability in the short term -- taxing outsourced manufacturing, for instance -- in order to achieve that.
If we don't, the "rational business climate" might drive all the manufacturing overseas, leaving the U.S. with a very small number of employed people doing the design work, and hordes of disaffected, unemployable people with nothing to do. As you point out, once you have the production line set up in China, it makes sense to just scale it out there rather than build a second one here.
The long-term social effects of such a 90/10 split would be very bad, and would in all likelihood eventually make it very hard to be very profitable at all. So it might make sense for IP-centric design companies to take a short-term hit and try to maintain something closer to full employment, lest they find themselves first up against the wall when the welfare proletariat they created revolts.
Suppose, hypothetically, that we really do reach a stage where we have a small number of highly productive individuals and a large number of unskilled people without manufacturing work to do.
In that case, it is likely that the skilled will hire the unskilled as servants, making the skilled people even more productive (every hour spent doing laundry is an hour spent not designing the latest iPhone). People will probably also work fewer hours, and take productivity gains in the form of leisure rather than money.
If there's ever a situation where the majority of Americans are working as mere servants for the wealthy, I think simply taking the wealthy's money and redistributing it will be the more likely outcome, and that's if it's done peacefully. A situation like India's, where there's such huge income inequality that there's strongly differentiated classes, between the servants and the people who have lots of servants, isn't sustainable. People are only willing to protect the prerogatives of the wealthy if they think that overall the system is reasonably fair, supports opportunity and income mobility, has benefits trickle down substantially to everyone, etc.
> Trade policies and externalities have absolutely nothing to do with that.
You're right on that since we're clearly talking past each other :-) Yes, businesses become commodities over time. We agree here. However this is orthogonal to innovation and job creation. If an old mature industry is on its last throes, then by all means, farm that out. Those jobs are gone. But that's not what we're talking about here. We're talking about new industries that if they can stay put for even say 5-10 years could provide immense benefits to the innovating nation. It keeps the middle class healthy and prevents the have/have-not scenario that you mentioned as troublesome. I share those same concerns. It also creates an in-house knowledge base for future innovation and an investing base for venture capital formation (think Paypal/Google mafia). It also has the effect of incenting the country to implement pro-innovation policies to continually lay those golden eggs. A virtuous cycle if I ever saw one.
Now enter the bureaucrats in Beijing who have created their own "incentives". The main one being cost which they obtain by mortgaging their labor/environment and toying with the exchange rate. These aren't truly economic advantages but are really artificial rules put in place by a planning committee for national interest. Government intervention if you will. Entrepreneurs and startups who must factor in cost to any decision are thus improperly incented to quickly offshore. Thus we have the familiar story of "we innovate and they get the jobs" This is why Grove said creating more startups won't do anything to help US unemployment since they do their scaling elsewhere. The proper course of action is for China to due away with their policies but we can't make them. This is game theory folks. The unfortunate reality is that the rules of engagement are written by bureaucrats and Grove is saying if China is playing that game we must too.
Except that if we do, China will simply stop recycling its share of our government debt and the US government defaults. It will take a president with huge balls to call China on its trade war, and risk having to monetize that debt.
As of now, if I remember correctly, China has over 2 Trillion greenbacks. It's _impossible_ to win a trade war. We're talking about something _very_ much like this:
It is easy to be protectionist. But a major selloff of the USD by China would create the mother of all confidence crises, and, while _everyone_ would lose, the world's reserve currency, the USD, would be forever damaged.
This is not a war you can realistically fight to win. I really expected more from someone of Grove's intellect. Much much more.
"Damaged" i.e. lose a lot of value. Precisely. We could no longer afford to buy goods from China, Japan, etc. China doesn't have the internal economy to risk that. Yet. US manufacturing, and the US social fabric, would win win win. This is absolutely a war we can fight to win. And win it we must.
Another common complaint with null references is that there is no compile-time type safety that you get with option types. The go team could mitigate this by having the compiler check for possible null references that may not have been caught and emit warnings or refuse to compile.