Windows 8 Introduces a New Cross-App Data-Sharing System
There's been a lot of attention to the way Windows 8 looks; reader aabelro writes with an interesting look at one way it behaves. The article begins thus: "Microsoft has created a new mechanism for sharing information between applications in Windows 8 called Windows Share. Apps can share text, bitmaps, HTML, URI, files, and other type of data, and the usage scenarios are numerous. For example, the app receiving the information can post it to Tweeter or Facebook[, making] it easy to post information to a social network without actually visiting it." Here's a short (video) explanation at MSDN, too.
I guess I won't watch it.
(Or you can download 312M)
I would argue this is not a new idea. The same basic concept exists in Android as Intents.
It sounds very much like Android intents as well, which is one of the big design failings of iOS (from what I understand). Does WP7 have anything this, or is it missing the inter-app ability as well?
Well, this sounds almost exactly like BeOS's Negotiated Drag and Drop. I remember Leo Laporte doing an episode of (IIRC) The Screensavers where he showed the BeOS, and demonstrated this by dragging an unsaved piece of data between three or four applications and manipulating it in each. But, all I could easily find was this classic scene from a demo video demonstrating the concept between Tracker (the desktop application) and the Book application.
That's nothing like this system. Well, they're both generalized clipboards, but in different ways. In Publish and Subscribe, "changes to the original published document would be noticed and updated by the subscribers". In Share, the link between the source and target app dies off as soon as the data finishes transferring. No further updates are sent after the "paste" finishes.
The "short (video) explanation" is an hour long. If you just want some demos, they start at about 10:33, 12:19, 14:14, and 17:44.
I've already got this in my CLI... it's called a pipe.
Do what thou wilt shall be the whole of the Law
Looks more like DDE than OLE to me. Hopefully they've fixed the misfeature that makes the whole desktop lock up along with the sending program if the program that is supposed to receive the DDE request doesn't process it right away.
In the end, your application will tweet and use facebook with your friend's application while you can go and do something entertaining.
It's like buying two chess computers so they can play against each other while you go to the movies.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
OLE has the problem of having to run some other process's code in your own address space in order to read the data.
OLE never did that. If you were passed a COM object implemented by some other process, then your method calls would simply be marshaled across processes, in the same way as they are when you e.g. access Word from VBScript (between winword.exe and wscript.exe).
You do realize sharing the data this way requires explicit action from the user, right? He has to bring up the system menu and tap a button inconspicuously labeled "Share" on it, then select the target app.
It kinda helps to RTFA and watch the linked video, so you have some idea what it actually is before posting (this also applies to moderators, BTW). Hint: it's exactly what we've had for 3 years now on Android, only there it's called "intents".
Indeed, the whole point of this feature is to otherwise sandbox the apps completely so that they don't get any access to user's file system outside of their sandbox by default, not even read access (they can get access to standard folders such as "Documents" and "Pictures", but this requires an explicit confirmation from the user). Without such sandboxing, it's very typical for desktop apps to all run under the same account (on all platforms), and therefore their config files - with passwords, history, and other interesting stuff in them - are completely exposed. With a sandbox, like in Win8 (or WP7, or iOS, or - partially, if you forget /sdcard - Android), you need some way for apps to communicate for those scenarios where a task involves passing data from one to each other - and this thing is what enables it while, again, requiring explicit user interaction for every such communication.