I was thinking about productivity and scripting languages and I was thinking that it would be nice if there were a way to easily have applications share data between them and to be able to have software cooperate by issuing commands and querying for information in a standardized manner.
I don’t think such a means exists, but I believe it could be extremely useful. Perhaps many open source project leaders could get together and determine the best way of achieving such functionality. Perhaps a text-based interface could be used.
Mockup Python example:
from AppPath import AppPath
import AppCooperation
link = AppCooperation.connect(AppPath("blender")) # connects with blender.exe
cube = link.command("add.mesh('cube')")
cube.command("scale(2,2,2)")
faces = link.command("scene.faces") # retrieve number of faces in scene
print faces
I know this example isn’t really all that great (since Python can be used from inside Blender), but if a number of open source applications all have similar interfaces then the functionality of each application could be expanded by the functionality of other applications.
Potential Uses:
- Connecting a calendar program with an email client to automatically send appointment information to contacts in the address book.
- Create a dashboard with all your most used computer functions all in one place.
- Create a script that renders frames of an animation in Blender, automatically applies a series of filters to each frame in The Gimp, then saves them in the desired format.
- Connect a graphing program with an IRC client to find how often the word “lol” is typed each day then display it as a line graph – maybe some trend could be detected?
- Write a script that searches through your FireFox bookmarks and removes duplicates.
- Write a script that reads “to do” lists and automatically takes care of all of those neglected tasks (i.e. “email grandma” could result in sending nana your web browser’s history list!)
- Connect with a dictionary program, read random entries, and create word salads.Ok, I couldn’t think of too many really good uses at the moment, but it could be very beneficial for when you need to use information between multiple applications – it sure beats cutting and pasting.
[edit]
Benefits not previously mentioned:
- Language independent interface – Python, Perl, Ruby, C++, PHP, etc. It doesn’t matter, as long as the interface exists.
- Multiple ways of reading and inputing data – Unlike programming libraries, an application can be run directly and its information can be accessed and modified in a user friendly manner.
- If it’s a frequently used application a lot of information could be available because of daily use.[/edit]