Yes, there are breaking changes in C++. In most cases, they go through two iterations of the standard - one to deprecate the old thing, another to remove or replace it. They also look at actual usage to see how safe they have to play - e.g. operator ++ for bools is still not removed, even though it has been deprecated since C++98.
What this means is that, in practice, you can take almost any C++98 codebase, and compile it with a C++14 compiler with zero changes - your chances of actually running into any of those breaking changes is very slim. Even when you get errors, most of the time, it will be because a new keyword was added, and the old code used it as identifier - requiring a trivial and easily automated change.
Europe is not a monolithic entity when it comes to gun control. There are countries with extremely restrictive policies, such as UK; countries with considerable regulation, but where owning a firearm (even a semi-auto or a handgun) as a civilian is relatively easy, like Germany; and countries which allow both "assault weapons" and concealed carry of handguns, like Czech Republic.
And when you look at those countries, there doesn't seem to be any correlation between their degree of gun control, and violent crime rates.
OTOH, what they do have in common is fairly stringent universal background checks for firearm owners.
Islam demands men seek retribution for their honor.
No, it doesn't (you're welcome to cite Koran or hadith demonstrating otherwise).
Honor killings are not a part of Islamic culture. They're a part of traditional culture in some (not all) countries that happen to be majority Islamic. However, practitioners of other religions in those same cultures, including Christians, also partake in honor killings.
According to this, trains accounted for 18.2% of freight in EU. But it seems to be varying a lot by country. The same page says that "between one third and two fifths of the inland freight transported in Sweden, Slovenia and Slovakia was carried by rail in 2013; this was also the case in Switzerland."
Which "old API" is that that programs "should have stopped using years ago", exactly?
As for npm, it can handle long path names just fine (it uses \\?\ paths to achieve that). The problem, rather, is that most other things in Windows land couldn't handle those paths. So npm would create a directory tree that Windows Explorer couldn't delete, for example.
The reason why it is 260 chars, in fact, is because it's 256 chars for the path from the root of the drive, plus 3 chars for "X:\" prefix, plus 1 char for the terminating null.
To be more specific, the limitation is in Win32, and it's really an ABI/API thing (i.e. it's easy to increase the limit, but you break everyone who was relying on it). If you use NT APIs directly, you don't have that problem.
There are still plenty of places in Win32 API where it has wchar_t[MAX_PATH] as member of structs and such. Increasing the length breaks ABI for all these.
"a special right, advantage, or immunity granted or available only to a particular person or group of people: 'education is a right, not a privilege'"
"a grant to an individual, corporation, or place of special rights or immunities, especially in the form of a franchise or monopoly."
"exempt (someone) from a liability or obligation to which others are subject."
And sure, let's look at etymology:
"Middle English: via Old French from Latin privilegium ‘bill or law affecting an individual,’ from privus ‘private’ + lex, leg- ‘law.’"
So, you were saying?..
Now, what really matters is what the word means in common, everyday speech, and it's usually not what you have quoted. Like it or not, the word "privilege" does have negative connotations in today's American English, especially in a context where it's used when talking about things like white privilege. The obscure dictionary definition doesn't matter if you're trying to convince ordinary people - you have to speak their language. Insisting on them speaking yours is just as silly as conservative "republic, not a democracy" tripe. It doesn't achieve anything other than making you look alien and/or arrogant.
So, if you want your message to be heard by as many people as possible, and have it achieve something, you can heed my advice. OTOH, if you want to fell all righteous against the backdrop of all those bigots, by all means, keep using the terminology that amounts to guilt-tripping people. You'll get massive pushback, which will convince you about your righteousness, and won't actually achieve anything (except perhaps helping to elect someone like Trump), but it'll make you feel good.
Given that Sanders is way behind in both popular vote, and in pledged delegates assigned according to their vote, the superdelegates are irrelevant. You'd have a point if he were ahead, but Clinton got the nomination because superdelegates overrode the popular vote, but this isn't what's happening.
I wish we'd stop using the word "privilege" to describe this. I don't know who came up with it, but it's not correct - we're talking about a right (to decent treatment, fundamentally) that everyone is entitled to, being improperly denied to some. A privilege is something that you're not entitled to; so when you tell people they're privileged, that elicits a strong negative emotional knee-jerk reaction.
Why are people voting for Trump? They must be uneducated, racist, idiots!
If all evidence shows that they are, well, it would be silly to beat the bush around it.
Dare to question free trade
Which is not exactly a part of the "progressive agenda", as evidenced by the wild success of Bernie - who is very much anti-free trade (only unlike Trump, he can actually talk numbers, not just "Chinese raped our country") - with young progressives.
Dare to worry about immigration (jobs, services, community). Modern politician: You must be a racist!
We don't call Trump and his supporters racist because they're anti-immigration. We call them racist because they actually behave like racists, when they try to explain why their anti-immigration policy is what it is (why it focuses on Mexicans and Middle Eastern Muslims), or even just watching their rallies and how they heckle black protesters (and often preemptively treat non-whites as protesters even when they actually aren't).
People aren't voting for Trump because they are amazed at his policies. They're voting for Trump because he's the only one (aside from Bernie) actually speaking about issues people want addressed instead of dismissing their concerns.
People are voting for Trump for a variety of reasons.
A lot of people are voting for him because he's not Hillary, and they have been convinced (largely through watching Fox News exclusively for years) that Hillary is a Satan-Hitler hybrid.
Many people are voting for him because they see that they're losing the culture war, and this is their Ardennes Offensive - the last, best hope to score a victory after a series of stinging defeats.
Some people are voting for him because they have one particular pet cause that is traditionally conservative, like e.g. gun rights, and they don't care about anything else.
A lot of people are voting for him because they want him to "burn DC to the fucking ground" (actual quote), and they don't care in the slightest whether he's actually capable of being a leader. They see him as a human equivalent of a nuke that they intend to use in a last-ditch scorched earth policy, in hopes to take away the enemy along with them (and then rebuild from scratch).
Some people are voting for him because they actually agree with his right-wing authoritarian populist (aka fascist) agenda. I've spoken with a Trump supporter who cheerfully told me that he hopes Trump would "clean up the country by throwing some libtards from helicopters, like Pinochet did".
Moving from telnet to ssh was a visible break - command name is different, syntax is different, configuration is different etc. If you are a guy who's used to telnet, and you find yourself on a machine that only has ssh, you know that things aren't going to work the way you used to right away, and there's no possibility of confusion - you have to go read the docs etc.
What happened here is a quiet breaking semantic change to an existing invocation. If you type "screen", it still works, and it even behaves as you'd expect. As an experienced user, you know how it's going to behave from there, and you have no reason to expect that behavior will deviate from your expectations (in a potentially destructive way at that!) with no warning.
Oracle is just continuing their long-standing trend of treating both customers and developers as idiots. The only appropriate response is to flip the bird.
You keep insisting that your definitions are correct, even though a large chunk of the industry plainly disagrees with these definitions, and uses the terms like RESTful APIs (which you claim aren't APIs), with everyone understanding precisely what is meant by this.
All I can say is that you might want to reconsider your definitions, if you want others to understand you, or at least follow the nuance that you believe to be there.
There's no strict formal definition for either "protocol" or "API"; especially the latter. As such, the definition is what the industry generally understands by those things at any given time. It's not set in stone. Your interpretation is one of the possibilities, but there's no reason why it should be the preferred one. Don't be so self-centered.
Yes, there are breaking changes in C++. In most cases, they go through two iterations of the standard - one to deprecate the old thing, another to remove or replace it. They also look at actual usage to see how safe they have to play - e.g. operator ++ for bools is still not removed, even though it has been deprecated since C++98.
What this means is that, in practice, you can take almost any C++98 codebase, and compile it with a C++14 compiler with zero changes - your chances of actually running into any of those breaking changes is very slim. Even when you get errors, most of the time, it will be because a new keyword was added, and the old code used it as identifier - requiring a trivial and easily automated change.
Breaking things is fine when there's a good reason to break them. Changing your naming convention from PascalCase to camelCase is not a good reason.
Right. And it took, what, 15 years for Python to accumulate enough cruft that they decided to do this kind of major breaking milestone?
Here, we're talking about a language that isn't even 2 years old.
Europe is not a monolithic entity when it comes to gun control. There are countries with extremely restrictive policies, such as UK; countries with considerable regulation, but where owning a firearm (even a semi-auto or a handgun) as a civilian is relatively easy, like Germany; and countries which allow both "assault weapons" and concealed carry of handguns, like Czech Republic.
And when you look at those countries, there doesn't seem to be any correlation between their degree of gun control, and violent crime rates.
OTOH, what they do have in common is fairly stringent universal background checks for firearm owners.
Islam demands men seek retribution for their honor.
No, it doesn't (you're welcome to cite Koran or hadith demonstrating otherwise).
Honor killings are not a part of Islamic culture. They're a part of traditional culture in some (not all) countries that happen to be majority Islamic. However, practitioners of other religions in those same cultures, including Christians, also partake in honor killings.
According to this, trains accounted for 18.2% of freight in EU. But it seems to be varying a lot by country. The same page says that "between one third and two fifths of the inland freight transported in Sweden, Slovenia and Slovakia was carried by rail in 2013; this was also the case in Switzerland."
It's compiling.
Which "old API" is that that programs "should have stopped using years ago", exactly?
As for npm, it can handle long path names just fine (it uses \\?\ paths to achieve that). The problem, rather, is that most other things in Windows land couldn't handle those paths. So npm would create a directory tree that Windows Explorer couldn't delete, for example.
It's not just third-party code. Win32 has APIs like this - note the MAX_PATH sized member of the struct.
MAX_PATH already includes the null terminator.
The reason why it is 260 chars, in fact, is because it's 256 chars for the path from the root of the drive, plus 3 chars for "X:\" prefix, plus 1 char for the terminating null.
This is exactly why it requires the application to declare support for longer paths in its manifest.
To be more specific, the limitation is in Win32, and it's really an ABI/API thing (i.e. it's easy to increase the limit, but you break everyone who was relying on it). If you use NT APIs directly, you don't have that problem.
npm can easily produce a directory tree that deep due to the way it handles dependencies.
There are still plenty of places in Win32 API where it has wchar_t[MAX_PATH] as member of structs and such. Increasing the length breaks ABI for all these.
Hey, I can quote dictionaries, too.
"a special right, advantage, or immunity granted or available only to a particular person or group of people: 'education is a right, not a privilege'"
"a grant to an individual, corporation, or place of special rights or immunities, especially in the form of a franchise or monopoly."
"exempt (someone) from a liability or obligation to which others are subject."
And sure, let's look at etymology:
"Middle English: via Old French from Latin privilegium ‘bill or law affecting an individual,’ from privus ‘private’ + lex, leg- ‘law.’"
So, you were saying?..
Now, what really matters is what the word means in common, everyday speech, and it's usually not what you have quoted. Like it or not, the word "privilege" does have negative connotations in today's American English, especially in a context where it's used when talking about things like white privilege. The obscure dictionary definition doesn't matter if you're trying to convince ordinary people - you have to speak their language. Insisting on them speaking yours is just as silly as conservative "republic, not a democracy" tripe. It doesn't achieve anything other than making you look alien and/or arrogant.
So, if you want your message to be heard by as many people as possible, and have it achieve something, you can heed my advice. OTOH, if you want to fell all righteous against the backdrop of all those bigots, by all means, keep using the terminology that amounts to guilt-tripping people. You'll get massive pushback, which will convince you about your righteousness, and won't actually achieve anything (except perhaps helping to elect someone like Trump), but it'll make you feel good.
Given that Sanders is way behind in both popular vote, and in pledged delegates assigned according to their vote, the superdelegates are irrelevant. You'd have a point if he were ahead, but Clinton got the nomination because superdelegates overrode the popular vote, but this isn't what's happening.
I wish we'd stop using the word "privilege" to describe this. I don't know who came up with it, but it's not correct - we're talking about a right (to decent treatment, fundamentally) that everyone is entitled to, being improperly denied to some. A privilege is something that you're not entitled to; so when you tell people they're privileged, that elicits a strong negative emotional knee-jerk reaction.
Why are people voting for Trump? They must be uneducated, racist, idiots!
If all evidence shows that they are, well, it would be silly to beat the bush around it.
Dare to question free trade
Which is not exactly a part of the "progressive agenda", as evidenced by the wild success of Bernie - who is very much anti-free trade (only unlike Trump, he can actually talk numbers, not just "Chinese raped our country") - with young progressives.
Dare to worry about immigration (jobs, services, community). Modern politician: You must be a racist!
We don't call Trump and his supporters racist because they're anti-immigration. We call them racist because they actually behave like racists, when they try to explain why their anti-immigration policy is what it is (why it focuses on Mexicans and Middle Eastern Muslims), or even just watching their rallies and how they heckle black protesters (and often preemptively treat non-whites as protesters even when they actually aren't).
People aren't voting for Trump because they are amazed at his policies. They're voting for Trump because he's the only one (aside from Bernie) actually speaking about issues people want addressed instead of dismissing their concerns.
People are voting for Trump for a variety of reasons.
A lot of people are voting for him because he's not Hillary, and they have been convinced (largely through watching Fox News exclusively for years) that Hillary is a Satan-Hitler hybrid.
Many people are voting for him because they see that they're losing the culture war, and this is their Ardennes Offensive - the last, best hope to score a victory after a series of stinging defeats.
Some people are voting for him because they have one particular pet cause that is traditionally conservative, like e.g. gun rights, and they don't care about anything else.
A lot of people are voting for him because they want him to "burn DC to the fucking ground" (actual quote), and they don't care in the slightest whether he's actually capable of being a leader. They see him as a human equivalent of a nuke that they intend to use in a last-ditch scorched earth policy, in hopes to take away the enemy along with them (and then rebuild from scratch).
Some people are voting for him because they actually agree with his right-wing authoritarian populist (aka fascist) agenda. I've spoken with a Trump supporter who cheerfully told me that he hopes Trump would "clean up the country by throwing some libtards from helicopters, like Pinochet did".
Man up already.
Your analogy is hilariously bad.
Moving from telnet to ssh was a visible break - command name is different, syntax is different, configuration is different etc. If you are a guy who's used to telnet, and you find yourself on a machine that only has ssh, you know that things aren't going to work the way you used to right away, and there's no possibility of confusion - you have to go read the docs etc.
What happened here is a quiet breaking semantic change to an existing invocation. If you type "screen", it still works, and it even behaves as you'd expect. As an experienced user, you know how it's going to behave from there, and you have no reason to expect that behavior will deviate from your expectations (in a potentially destructive way at that!) with no warning.
And ate my cat.
If it left the tail, you can probably get by.
"Fair use" has always been an affirmative defense against copyright infringement - the Oracle ruling doesn't really change that.
Not only that, but we've already had the debate on interfaces/APIs and GPL.
http://clisp.cvs.sourceforge.n...
And FSF had specifically supported Google in this case.
https://www.fsf.org/blogs/lice...
Oracle is just continuing their long-standing trend of treating both customers and developers as idiots. The only appropriate response is to flip the bird.
You keep insisting that your definitions are correct, even though a large chunk of the industry plainly disagrees with these definitions, and uses the terms like RESTful APIs (which you claim aren't APIs), with everyone understanding precisely what is meant by this.
All I can say is that you might want to reconsider your definitions, if you want others to understand you, or at least follow the nuance that you believe to be there.
There's no strict formal definition for either "protocol" or "API"; especially the latter. As such, the definition is what the industry generally understands by those things at any given time. It's not set in stone. Your interpretation is one of the possibilities, but there's no reason why it should be the preferred one. Don't be so self-centered.
This guy is not a "civil liberties expert". Well, maybe he is, in a sense of how you work around them...