Cocoa scripting app design query
Cocoa scripting app design query
- Subject: Cocoa scripting app design query
- From: email@hidden
- Date: Fri, 05 Oct 2012 11:20:19 +0100
This is a query about the design of an app to create Cocoa scripts so hopefully it isn't too OT.
There are no code queries below merely an appeal for opinions about the app's design.
I make an app called KosmicTask which is an integrated scripting environment (think IDE for scripts).
It supports local and remote running, creation and editing of scripts in more than 20 languages including AppleScript.
Cocoa scripting is supported through F-script, Py-objC, JSCocoa, RubyCocoa and AppleScript-ObjC.
The app runs tasks which are essentially scripts that accept inputs and generate outputs.
A Cocoa powered task is an applet that has all the machinery of a Cocoa application but no GUI.
At present running a task is a one shot affair. You provide inputs via the GUI, the task runs somewhere, either locally or remotely, and returns results to the GUI for display.
I would like to extend the app to express workflows so that tasks can be called sequentially, the output of one providing the input to another e.g.: One task (in say F-script) in the workflow could be on one machine on the network, the next task (in say JSCocoa) on another machine.
The question is, from a developer's point of view, what would be the best way to present the workflow paradigm.
My thoughts are:
1. A kind of Quartz Composer type patch board that routes inputs to outputs - in effect a visual programming language (http://en.wikipedia.org/wiki/Visual_programming_language).
2. Simply allow one task to call another task in code.
3. A hybrid of 1 and 2.
The first sounds appealing, especially for very simple workflows. But for more complex situations involving lots of conditionality and iteration it doesn't.
The second would allow one task to call another task purely in code. The GUI would simply have to provide a way of referencing one task from another. The advantage is complete control over the information flow. The disadvantage is that you have no quick graphical way of linking a couple of tasks together.
In the hybrid approach we adopt 2 entirely and provide a simplified implementation of 1. The GUI merely provides for the linking of inputs to outputs. Complex flow control is achieved in code. Simple routing in the GUI.
Any thoughts on the matter would be appreciated.
Regards
Jonathan Mitchell
Mugginsoft LLP
================================================
KosmicTask - the Integrated Scripting Environment for OS X.
http://www.mugginsoft.com/KosmicTask
================================================
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden