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 (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to