There is absolutely fragmentation! What used to be one app is now three: Facebook (minus chat), Paper (with chat), and messages (only chat).
This time last year 2/3 of those apps did not exist. They have fragmented the user experience into entirely different apps. The concept you are mistaking for fragmentation seems to be the concept of duplication'. Right now all three apps do messaging and they will soon be reducing that number to two (Messages and Paper).
If Facebook would release 3 Facebook apps, where each has mostly the same features, but slightly different, and on top of that each requires a different user/login, that's definitely fragmentation.
Say, you can argue WhatsApp and Facebook Messenger, or Instagram and Facebook picture posting represent fragmentation for Facebook, as they do mostly the same thing, but are each in their own space and with their own APIs and their own users etc.
Another example. iOS having lots of apps in one App Store is not "app store fragmentation". But Android having many separate app stores, many apps in each being the same (but tweaked or different versions) is "app store fragmentation".
Sure, it tests whether you can write a set of statements a computer can understand.
But it also tests whether you can understand the intent behind a set of statements a human would make, without going on a diatribe about how the definition is not good enough.
After all, if English was a formal strict language where only one right way existed to express something, we wouldn't need programmers, would we?
> After all, if English was a formal strict language where only one right way existed to express something, we wouldn't need programmers, would we?
If you just solved the fact that one meaning can have many expressions, we'd still need programmers (and, more relevantly, system analysts) just as much.
The relevant problem is that English isn't a formal strict language where a particular expression can only have one meaning (and, more importantly, that, people don't use it that way even when it superficially seems to be.)
That is, the problem that requires specialized work to develop unambiguous requirements for the implementation of (among other things) information systems isn't that English maps (many expressions) -> (one meaning), but that it maps (one expression) -> (many meanings).
I think you could have made this point without subtly referring to my post as a "diatribe." I'm more than aware of what the intended interpretation is. Posting what I felt was a very minor and amusing observation hardly constitutes a "diatribe."
> After all, if English was a formal strict language where only one right way existed to express something, we wouldn't need programmers, would we?
This is very off-topic, but I'm not sure I agree with it. You're assuming that it would be easy to find the one unique way to express a given computation such that anybody could write it down. Even if English had this uniqueness property, I don't think that would be true at all.
There's no honest attempt to explain the philosophy behind every language with real-world examples in Python. It's just childish jokes.
It's the equivalent of saying "Ze fish in le river" is "Frenchish English". Ha ha, stupid French people, right?
It's easy to make fun of programming languages like this, but what does that teach us? Aside from to mock what is different than what we use right now?
While I wrote this with tongue in cheek, I also aimed to illuminate the power of Python's flexibility along with the inherent danger therein. I do admit the Javacious example was over the top though ;)
So what's if it's shorter. You'll run out of screen? You'll wear down your keyboard?
If you don't like typing it, have a macro. Otherwise, as Objective C shows, the verbosity of code is not relevant at all. It's what it says and what it does, which is.
But I hoped you'd see beyond the direct comparison of lambdas with Objective C's blocks.
I'm saying that short code doesn't automatically translate to more readable or better code, Objective C's message syntax is the proof (if I have to be painfully specific about it).
I write a lot of JS and typing out "function" or "return" was never on the list of things I found a problem, despite I also work in C#, which uses the short => variation.
The parent wasn't saying code should be short, they were saying the syntax for lambdas should be short.
Yes, short code doesn't automatically translate to readible code. But neither does long code.
You can't wheel out objective-c's fondness for long self-documenting message names as self-evident proof that the syntax for lambdas must be verbose.
Long message names are good because they let you clearly describe what is otherwise a big black box of unknown behaviour.
The syntax for a lambda will always be a lambda, so it doesn't need to be spelt out explicitly each time. Shorter syntaxes such as used by Haskell are easier to visually pattern match on and so can actually aid comprehension.
It's not as simple as longer is always better and anyone who disagrees is obviously foolish and lazy.
Just like people believed the Universe revolves around Earth, they still have this naive believe that they're the center of intelligence in the Universe. Any other display of intelligence is explained as a combination of simple chemical, mechanical and electrical processes. But don't be quick to judge humans, though, after all, their brains are built on a combination of simple chemical, mechanical and electrical processes themselves.
I think we can safely stop thinking about the morality and legality of our actions, as long as we just apologize regularly.
Here we have two people who have both performed actions which are both indirectly anti-gay. But one is let go due to an apology, and the other wasn't due to no apology.
Apologizing is like a mark-and-sweep garbage collection approach to our past perceived sins.
Accountability (and reference counting) is boring and takes a lot of resources.
So we should just apologize.
BTW, I apologize for everything.
I also sincerely apologize for this post. Forgive me.
Supporting Prop 8 is not "indirectly anti-gay". It is directly anti-gay. Prop 8 has only 1 purpose: to deny gay couples the protection of marriage. On the other hand, with a candidate, one could in all honesty support a particular position (or set of positions), while being unaware of the candidate's stance on some other positions.
I was waiting for Eich to respond to the firestorm with some clarification or a public statement; he did neither other than resigning. That, to me, speaks volumes: he'd rather give up his CEO position than his anti-gay position. So it is best that he resigned and left.
"Prop 8 has only 1 purpose: to deny gay couples the protection of marriage."
I'm sure that a certain % of individuals who voted for it also supported the institution of civil unions - that would entitle gays to same rights as married couple. But these people care about the name/institution of 'marriage' maintaining its original (m+w) definition.
Therefore I personally would not rush to call support of prop 8 'anti-gay'.
Nothing is let go due to an apology. It's let go because he was not in any way, shape or form supporting anti-gay laws and his apology is about not having done enough research on the guy.
>"...Cannon 'has a special kind of hate for gays' and opposed employment protections, adoptions by same-sex couples, abortion, and voting rights while backing the state's constitutional amendment banning same-sex marriage."
How is supporting someone with views like that, who would then be in a position to change legislation (or not) to support his views better than supporting Prop 8?
Also, if it's not let go due to an apology, why are you giving a reason for letting it go that was straight from the guy's apology?
Yeah, pleading ignorance was a neat way to word it, I admit.
The guy is a sleaze-bag, who chose to attack an open source browser (with an important role for the future of the internet, and the work of thousands) through his business for the benefit of getting positive PR for his business.
I wonder if Brendan Eich had this mentality, how he'd spin it. "Oh, I apologize, I thought Prop 8 was about supporting the gays, damn. I didn't do my research!".
But he doesn't have this mentality. So he instead chose to abandon the work of his life in order to preserve it, a rather painful action, as his spin-skills and spin-will were insufficient.
It basically means that those of us who are willing to...
1) Attack others for their political actions for PR reasons.
2) Engage in the same type of political actions.
3) Lie they were ignorant about it.
4) Say "sorry" without feeling any guilt.
... have a huge edge on those honest people who just say things as they are, without spinning things.
Damn, no wonder sociopaths are ruling the world, huh?
Donating to a candidate that isn't a single-issue candidate, even one opposed to same-sex marriage, is not the "same type of political action", relative to same-sex marriage or gay rights more generally, as donating to a campaign that is solely about enshrining prohibition of same-sex marriage into a state constitution.
It might be a similar act if it is motivated by the candidates anti-gay or anti-same-sex-marriage views, but in and of itself it isn't the same type of action.
In short, private virtual addressing is legacy cruft from a time when this was the only way to organize things due to a constrained memory block identifier namespace.
Think about it like IPv4 vs. IPv6, i.e. hacks like NAT, vs. "everything has its own IP address in a single flat address space of IPs".
It's the same, but with computer memory. And it has the same benefits.
That's true but I think the bigger reason is that a single address space makes system calls as cheap as regular function calls, since there is no kernel boundary any more.
Ironically, VxWorks's latest major rev was all about turning memory protection on since overwhelmingly people prefer the performance hit of kernel calls over the heisenbugs that come from stomping on the kernel's code and data structures.
But, like you said, you still need protection of kernel data, which means that you need to execute kernel code on a stack not writeable by the user, at a greater permission level that allows ONLY the kernel code to modify kernel pages. Single-address-space or not I can't see these needs being met in a cheaper way than what we already have, presuming that kernel code/data are in never-invalidated global pages available in every address space.
Edit: Oh, I see from your other comment that you're talking about the benefits to people who don't feel this need.
It's typical for crypto algorithms to generate an endless (or extremely large) "keystream" by permutating a much shorter secret key with other data somehow.
The fact they're not using the term "keystream" for this concept is a bit of a warning that they might've reinvented something every cipher algo already does, but more inefficient (from skimming through the paper).
Just guessing though. Not judging. I'm not a cryptographer, I just read about crypto as a hobby (and to know what I'm doing while using someone else's crypto primitives in my code).
Now there'll be one app with Facebook chat and one Facebook app without chat. No fragmentation.