Norvig's Law (2002)
norvig.com
norvig.com
Maybe if they gave it 150%, they could see Norvig's reasoning. It may take more than that, though -- maybe exponentially more.
I hope you'll permit me explicitly to single out your mocking invocation of my bête noire. I think that most non-technical authors just confuse 'exponential' with 'super-linear' (if they think even that quantitatively) … but I sometimes worry that even the somewhat more technically minded think that 'exponential' just means 'has an exponent', and so think that quadratic growth is exponential, y'know, because there's an exponent of 2.
time*n is linear in time and n, but ther symmetry stops there.
time^n is *geometric* (or polynomial) growth over time.
n^time is exponential in time.
time! (factorial) doesn't have a common name that I know. It is (in the long run) faster than any exponential growth.
I respect Peter Norvig as a programmer and a problem solver. I've taken a course taught by him in the early mooc days that I really enjoyed.
What I don't understand how does something like that makes it to the top of Hacker News.
I used to visit HN to get smarter, lately I feel that I am getting dumber.
I think I took the same one, but I remember Sebastian Thrun being the better instructor.
Norvig's Law - https://news.ycombinator.com/item?id=7491767 - March 2014 (13 comments)
Norvig's Law - https://news.ycombinator.com/item?id=317170 - Sept 2008 (14 comments)
Norvig's Law: Any technology that surpasses 50% penetration will never double again - https://news.ycombinator.com/item?id=36047 - July 2007 (4 comments)
https://web.archive.org/web/20000824013718/http://www.resear...
Come to think of it, this applies to a lot of Google's (and Microsoft's, and Apple's, and most tech companies') product strategy.
"We should aim to double our market share!"
If that were true it would actually be quite extraordinary, but in fact it's still hard to beat C and Fortran.
__attribute__((fastcall)) int fib(int n)
{
return n < 2 ? 1 : fib(n-1) + fib(n-2);
}
main(int c, char **v) { printf("%d\n", fib(atoi(v[1]))); }
This gives a crude idea of the performance of some basic functionality: arithmetic, (recursive) function calls, conditionals, comparison. But on recent versions of GCC it totally stopped working because GCC unrolls the recursive loop several levels deep, doing constant propagation through the near-leaves, yielding more than an order of magnitude speedup. It still prints the same number, but it's no longer a useful microbenchmark; its speed is just determined by how deeply the unrolling happens.It's unusual to see such big improvements on real programs, and more recent research has shown that Proebsting's flippant "law" was too optimistic.
So this “law” appears tongue in the cheek and not some novel insight.
>http://edition.cnn.com/TECH/computing/9902/11/50pc.idg/index...
Ok. Well, the US is a few hundred million people in a world of 6-7 billion. So yes, doubling would have been impossible. But it happened. According to some source that i just googled[2] there are 6 billion smartphones right now. So this schmuck thought that computers were hitting the wall coming up to 150million. That's an order magnitude of wrongness, and I bet you, the average person in the US today has multiple computers more powerful than a 1999 computer. One in their phone, one in their iPad, one in their laptop, one in their fridge, one in their coffee machine, one in the doorbell, one in their robot hoover, one in their thermostat. I mean.. it's a mad lack of imagination.
[2]: https://www.bankmycell.com/blog/how-many-phones-are-in-the-w...
It's not strictly true though since the market itself can grow so your sales could still double or more from a level that had represented 50% of the market at some time in the past.
> I claim the following simple experiment supports this depressing claim. Run your favorite set of benchmarks with your favorite state-of-the-art optimizing compiler. Run the benchmarks both with and without optimizations enabled. The ratio of of those numbers represents the entirety of the contribution of compiler optimizations to speeding up those benchmarks. Let's assume that this ratio is about 4X for typical real-world applications, and let's further assume that compiler optimization work has been going on for about 36 years. These assumptions lead to the conclusion that compiler optimization advances double computing power every 18 years. QED.
> This means that while hardware computing horsepower increases at roughly 60%/year, compiler optimizations contribute only 4%. Basically, compiler optimization work makes only marginal contributions.
> Perhaps this means Programming Language Research should be concentrating on something other than optimizations. Perhaps programmer productivity is a more fruitful arena.
One might argue that cheap overseas development labour makes it a commodity, but I care more for being humane towards humans than CPUs.
It was already argued in 90s, and several companies bet on outsourcing to India. It wasn't a success for everyone.
Looks like in December 2008 (between https://web.archive.org/web/20081204015038/http://research.m... which works, and the next snapshot on Dec 30) it started redirecting to a new URL (https://web.archive.org/web/20090224224249/http://research.m...) which was still working as of 2012-03 (https://web.archive.org/web/20120307142916/http://research.m...). Meanwhile, https://proebsting.cs.arizona.edu/ says that Todd Proebsting joined the University of Arizona in August 2012 after leaving Microsoft, so presumably that's when the link stopped working. He still has it up at his new site: https://proebsting.cs.arizona.edu/law.html
$ curl -s -I 'https://web.archive.org/web/20020603071812/https://norvig.com/norvigs-law.html' | grep -E '^x-archive-orig-.* [0-9]{4} '
x-archive-orig-date: Mon, 03 Jun 2002 07:18:15 GMT
x-archive-orig-last-modified: Thu, 18 Apr 2002 07:27:36 GMTWe will see the rebuttal of Norvig's Law when Netflix launches its ad-supported tiers. Or we saw it during 2020-2021/Covid, when Amazon aggressively pushed its discounted Prime to fixed-/low-income EBT/Medicaid/other government assistance recipients (at least in the US) [2,3]
With all due respect to Norvig (and if you've read his AI book or ever seen him speak in person, he's undilutedly brilliant, and also humble), he should get out there and try to sell a subscription-based device/service. Lemonade-Stand-for-web3.0, if you will... "customer acquisition" is not a dirty phrase.
[0] https://en.wikipedia.org/wiki/Last.fm
[1] https://en.wikipedia.org/wiki/RealNetworks#History
[2] https://www.amazon.com/gp/help/customer/display.html?nodeId=...
Remember, what I’m looking for is 114% market penetration. Any help you can provide will be gratefully appreciated.
I will not make jokes involving the word double and shame on you if you thought of it too.
Definitions are boring, no growth is limitless by entropy.
So Prime gives them whatever it is, but they can’t cancel their current subscription.
Win-win evil.
When Palm and then Blackberry died as platforms, vendors simply moved to a new platform and ported/rewrote.
But if they want you to double it, you’re going to have some bad news to report.
> To be clear, it all depends on what you count. If you're counting units sold, you can double your count by selling everyone 1 unit, then 2, then 4, etc. (In Finland I understand that cell phone usage is above 1 per capita, but still growing.) If you're counting the total number of households that own the product, you can double your count by doubling the population, or by convincing everyone to divorce and become two households. But if you're counting percentage of people (or households), there's just no more doubling after you pass 50%.