Recently, working on my personal blog (I'll be releasing soon enough :) ), I had a little itch to make a automatically updating 'Now Playing' widget, which would automatically take the data from my Winamp, and via some fancy scripting, show it on the blog along with little additions like the album cover art. I did get it done, but it kind of opened my mind to the complicated nature of creating an interface which would allow an offline application to converse with an online one. I say complicated because I am not much into that side of programming yet. I will someday, but until then it will seem to be quite a daunting task.
Make it friendlier
There exists a standard for pretty much everything on the web today. Why not have standards for offline applications as well? It'll help in having a protocol which will be common amongst communications of a particular kind. For example, to transfer secure data, a different method of obtaining data securely could be developed which would be common to all applications, but when an insecure data needs to be transferred to a public social application on the web, a simple interface should allow that to happen without getting ones hands dirty too much.
I know that once I try and learn that side of programming, I won't find it so 'high up there'. After all, a certain amount of knowledge must be involved with getting anything on different platforms to connect. But still, I know it can be made easier if developers just reached some sort of an agreement. Something like a script.aculo.us for the offline applications. A library which helps you get your job done faster. Pre-existing templates, which can be easily integrated and used.
Make it fun
By taking out a majority of the coding, it'll allow people to think more, since the time required to code it out is cut down. This will see a rise in applications which are more usable and useful. At the moment, I am talking with little knowledge of this side of cross-platform (not in the literal sense) development, hence the predictions. But I have seen the use a platform like Ning has been put to. I also know it's potential. And here, the problem isn't lack of resources, but a lack of ideas.
I'd surely like to see more attention being paid to data transfers between such applications. If done correctly, we can actually have a proper online version of our own desktop (security and data intact), to control our computer remotely! Currently, companies like Google and Yahoo! offer APIs which let us use their services in (semi) offline applications. All that is good, but what if you could reverse the process? What if you could program your sticky notes to be auto-synced with your blog? Or maybe have an updated feed of the songs you play on your favourite media player? I'm not being creative enough, but think of the possibilities! :)
There are applications which are constantly in touch with online servers, which we use everyday. Our very own operating system is the perfect example. Those tiny little upgrades it keeps downloading from time to time? Yep! It has to send data for that, doesn't it? Why not use the sending mechanism, make it easier to implement in applications, and let the people's mind wander? Hehe!
What use can you think of having your applications talk to each other?