No question Python 3 is better than 2, but it's not better enough to justify the move. People will only move when they absolutely have to. That isn't progress, it's inefficiency.
2,488 karma · joined October 18, 2010
No question Python 3 is better than 2, but it's not better enough to justify the move. People will only move when they absolutely have to. That isn't progress, it's inefficiency.
If your average team size is 5 people, then on average, the gender breakdown in your company is 72% male/28% female. I assumed 80/20, so yeah, it's still pretty accurate.
Perhaps, but in practice there generally seems to be a correlation between complexity of a specification and holes in the specification (e.g., html, pdf, etc.).
Your employer probably owns the code, but as its primary creator, you still have leverage.
If your employer used standard employment agreements when you signed up with them, the product almost certainly belongs to your employer. This is especially the case if you used any employer-owned equipment to create it (laptops, networks, etc.).
However, your employer probably knows that if they are aggressive, you will become unmotivated and drop any work on it, making it valueless and probably causing you to hate your job and quit. If they really value the product and you, they'll find a way to make the product and your career successful.
You can ask them to give you a stake in its success, and officially bring it into the company. You can also ask them to give it back to you if they stop supporting it. If you consult with a lawyer, they can probably advise you on various frameworks on how to organize such a deal.
Safety critical systems are quite different from the vast majority of software systems, and raising them as an example in a general programming argument isn't really fair. There already are safety critical certifications that are mandatory for many aviation and healthcare related applications. They generally utilize heavy testing, model checking, and supporting documentation. Very few commercial industries operate with this much attention to quality, basically because it's too expensive.
I think this is Yang's biggest fallacy. He assumes that growth and innovation will be "eternal exponential". That's a pretty huge assumption. Yes, it's been relatively true for 100 years, but that's a very small slice of human history. What if growth isn't exponential? What if the singularity is 1000 years away?
Moore's "Law" and exponential growth are taken as gospel, but there's no reason why it will continue this way forever. Too many people are thinking about the singularity and too few are thinking about an impending innovation stagnation.
It doesn't matter if it's bosses or co-workers, the math works out the same.
There are far more male bosses than female bosses. Accordingly, assuming bad bosses are relatively rare, it's far more likely every female boss you've ever had is awful than every male boss you've ever had is awful. This is just probability.
Let's take an example. Suppose 10% of bosses are awful, regardless of gender. Further suppose that due historical societal reasons, only 20% of bosses are female. If you've had 3 different bosses in your career, there's a far likelier chance that every female boss you've had is awful (3.94%) than every male boss you've had is awful (1.4%). (I'll leave it as an exercise to derive these numbers).
So, even if men and women are just as likely to be awful, you're nearly 3 times as likely for all of your female bosses to be awful than all of your male bosses to be awful simply due to the fact that women are under-represented.
This probability may explain at least some of this common and sad bias against female bosses.
> Deceptive speech is regularly curtailed by the government (eg. fraud, deceptive advertising)
Is spoofing a User-Agent string really deceptive speech? It's just asking a server to return a web-page in the same format as a specific browser... somewhat like asking a salesperson to give you the same price they give everyone else.
Genetic natural selection takes thousands of years, or at an absolute minimum multiple generations. Social selection occurs far more rapidly, often within a single generation. A person born in the 1950s that is genetically predisposed to manual labor may do well for the first few decades of their life, but as society changes and starts valuing white collar work more, they will do far worse. Their genetics didn't change, but society did.
Those that favor nature over nurture vastly under-estimate the time-scales which it takes natural selection to occur as compared to social selection.
I took micro-economics in highschool, and when discussing how trade is overall beneficial, they trotted out the old example of two countries, each producing bicycles and bananas.
The purpose of the exercise is to show that if each country focuses on one item and specializes on it, everyone benefits.
I always found that example to be deeply disturbing. If given a choice, who would actually prefer to live the banana country rather than the bicycle country? Even in highschool this silly example demonstrated the absurdity of classical economics.
I think you're mixing up different types of intellectual property:
- Trademarks are intended to identify a source. Trademarks cannot be functional, they have to be descriptive.
- Copyright must express a creative idea. That idea can be artistic, or functional. Computer code and APIs can be copyrighted (as they most often are), but they can also be patented.
- Patents cover inventions with some utility. One can definitely patent a piece of art if it provides some utility.
It's not uncommon for companies to throw all three at whatever they are cooking up.
I don't think it's so easy to separate the two. A corporation is not a real thing, it's a legal fiction created by a government. If a corporation acts badly, it's really the government that allowed it to act badly.
The complications occur when a corporation obtains enough power to be able to influence the government, and thus the ability to influence the rules by which it abides, like a recursive program which is able to alter the mechanics which created it.
At this point, the difference between government and corporations start to blur. It's entirely possible for a corporation to be initially created by a democracy at the will of the people, but over time, as its size and power grows, is able hold the government captive, and control its own rules.
Sadly, this is not just a hypothetical thought experiment.
AMD's current ascension can also be explained by the death of Moore's law. Moore's law is an exponential curve. Meaning, if you started behind someone else on the curve and increase on the same curve, over time, they will always get further and further ahead of you. You can never catch up.
Assuming progress stops following an exponential, and starts looking more linear, with a reasonable (i.e., non-exponential) amount of investment, you can overtake someone who is ahead of you.
This news may be great for AMD, but it does not bode well for everyone else.
Nice hypothesis, but not exactly backed up by history. So many different societies have made so many diverse contributions to innovation, I'd be pretty amazed if you could draw a cohesive line through all (or most) of them.
Also, separately, it's pretty difficult to separate "bloodlines", which I assume you mean genetically inherited traits, with socially inherited traits.
A great physicist is probably more likely than average to have offspring that are also great physicists. But is that because of their "blood" (i.e. DNA) or because the children grew up in a household exposed to physics at a much higher degree than average. The children's "blood" is an inherited DNA trait, but their upbringing is an inherited social trait.
The question boils down to the age-old nature vs. nurture argument. All signs seem to point to nurture being the far more powerful influence.
You're fighting a false enemy. Folks researching issues like this aren't trying to abolish personal responsibility, they're trying to figure out why some people do better than others.
Is it because of inherited wealth? Inherited genetic material? Random genetic mutations? Inherited behavioral social norms? Societal trends? Entrenched interests maintaining a particular structural hierarchy?
The big question is why do people act the way that they do. These are worthy questions worth asking. If an exact DNA replica of you was placed in a different situation and had wildly different outcomes, it would raise pretty interesting questions.
You shouldn't feel threatened by these questions, they won't discount your personal achievements. Instead they may shed light on what makes you you.
A system in which a poor person making $30k/year and spends $500/year on products or content advertised via Facebook versus a rich person who makes $1M/year and spends $10k on products/content via facebook is not exactly progressive. The poor person ends up paying 1.6% of their income, while the rich person spends 0.1%.
The poor person spends 16X of their takehome earnings than the rich person, not exactly progressive.
Arguably, the differentiating factor between humans and animals is our ability to organize on large scales. Monkeys and killer whales can coordinate behavior in groups of sometimes up to 50 or maybe 100 individuals. However, humans can coordinate behavior across millions of people. Building a modern automobile, a computer chip, or the social security system requires coordination across so many individuals, no one person can fully and deeply understand the entire system.
The ability of humans to believe information that they do not fully know is true, is probably one of the defining traits of humanity.
I agree with much of this, except the idea that enterprise sales are low margin. Once you lock in an enterprise customer, the cost of switching to another provider becomes a large barrier. Your margin is dictated largely by the cost of your product, minus the cost of the competitor's, plus the cost of switching. If the cost of switching is high, the margins can also be high.
Apple does not derive its margins from the cost of switching (changing phones is relatively easy). They do generally have a better product, but they also provide incredible branding around being the best. Apples margins are dictated by cost of Apple's product, minus the competitors, plus value of affiliating yourself with their brand.
I actually agree. But the implication is that static analysis should really live in the IDE, not the compiler or test suite. It's best when catching the silly whoopsy bugs as you're typing them. But I've yet to see a static analyzer that can catch race conditions, network or I/O errors, or something that can verify what you expect to happen actually does happen.
Thinking about static analysis on a higher level, arguably they shouldn't be necessary at all. If a system can statically analyze your code and find faults, then it implies that there is a deficiency in the language itself.
Pretty sad no? Spreadsheets have been around for 30 years and there is still no excellent solution for web apps?
One thing they don't mention, is exporting. Anytime you're dealing with tabular data, you really need an "export to excel" button. You'll never be able to do all the slicing, filtering, and sorting that excel can do. By all means, add it into your app and hopefully over time your users won't need it, but at the start, it's vital.
Pedestrians should not be allowed to walk anywhere they want, but the penalty for an infraction should not be death.
The real question is, how far apart are these? It certainly seems that there is a wide gulf, but the technology is moving incredibly rapidly, unclear if it's 3 years, 5 years, or 100 years away.
This is just saying that writing "tests is hard". I agree, it is.
I always wonder about the value of static analysis. I've used it myself and have found bugs with it, but they are mostly easy bugs to find, and there's a lot of noise. The hard bugs are often only found with serious integration tests. I'll feel much more confident with a codebase that's 90% covered by tests than one that's statically analyzed.
> Probably laziness
Facebook is a lot of things, but they're not lazy. As far as can be seen, their decisions are largely intentional. If they didn't do something, it's because they didn't want to or it would hurt their bottom line, not cause they're lazy.
Lock-in is fine when you're small, it only becomes problematic when you're big. PaaS platforms are not well suited for big organizations for precisely this reason. However, they're great for trying out something new quickly and having it scale without thinking about it. But Google (and others), realized the real money is not in startups wanting a PaaS platform, but in large enterprises, which are far more sensitive to lock-in.
In the ideal world, they'd provide systems like GAE and make it easy to later convert each service (e.g., database, memcache, tasks, email) to a finely tuned system.
I wasn't talking about building a static website, I was talking about building a scalable web app. You can start a project as a hobby, but if you every hope to dream of doing something larger, you should at very least consider a path to expansion. This shouldn't mean jumping into Docker and Kubernetes, which are pretty complex. There should be platforms that handle database and instance scaling automatically. When you start off, you only need one or two instances, and as you grow, new instances get automatically added.
Back in the old days of 2013, this was super easy, no Dockerfile or Kubernetes yaml files were needed. Now, you need to configure every single tiny variable for every operation. This is great for large enterprises, but miserable for small companies that want to get started.
No, they don't want to save lines of code, they want to save time to understand code. Disallowing assignments during expression is one way to advance that.
But I'm not really understanding your bigger point here. Who cares about such minutia? Is "x++" versus "x += 1" versus "x = x + 1" really all that different to the programmer? When have you proudly used the shorter versions and actually made code better in some marketable way?
These programmer purity metrics are silly and counter-productive, we should instead focus on programmer quality and speed to get things done.
We should not be cheering this initiative, it's a sign of bad things to come. It means that hardware innovation is slowing, and to compensate, there has to be more software innovation. Software innovation is relatively easy to copy, and the most profitable business models involve selling personal data to advertisers. It'll be harder for Apple to compete in this market, and they will be strongly tempted to make compromises with user privacy to satisfy growth and revenue expectations.
However, the root cause of this, is that hardware innovation is slowing, which is largely due to the death of Moore's law. Few are thinking about the profound changes that will arise if Moore's law does indeed come to a complete stop, Apple's business strategy is just one small example. If Moore's law does hit a dead-end (it's currently on its last dying wimper), there will profound affects through society, our economy, and our general expectations for the future. It's frightening that more people aren't sounding the alarms about it.