libs-steptalk/WISH
Stefan Urbanek e9f6000dee Updated StepTalk home page
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@19437 72102866-910b-0410-8b05-ffd578937521
2004-06-01 19:50:27 +00:00

104 lines
3.7 KiB
Text

Dear all, users and developers...
This text describes my intentions and wishes for StepTalk.
Author: Stefan Urbanek
E-Mail: google the name for contact
Home : http://stefan.agentfarms.net
Content:
What is the goal of StepTalk?
Language and Interaction
The Framework
What is the goal of StepTalk?
-----------------------------
StepTalk was meant to be an 'distributed object glue' or 'application
glue'. The primary intention was to create a framework that will allow
users to join functionalities of different applications (or distributed
objects) to complete desired tasks. It should allow users to 'talk' to
their applications with some language that is understandable to both - to
the user and to the application.
Another intention was to allow users to extend applications with
functionality they miss, or want to automatize, or want to do in a batch.
StepTalk is a framework that wants to fill the gap between application
author and users with their needs. It wants to provide a feel of single
common object universe.
Language and Interaction
------------------------
StepTalk is rather language abstraction than a (scripting) language. The
idea of abstraction is, that users and developers are dealing with an
universe of interacting objects. It is based on two basic principles:
1. Every thing is an object
2. Objects are communicating by sending messages
"Objects are 'nouns' and messages are 'verbs' of a language. ", to add a
famous quote.
Nouns in a (scripting) language are objects with name. That name usually
depends on the context it is present or it should be globally well known
object.
Now, why I have chosen Smalltalk as default language? Because ...
"In essence, Smalltalk is a programming language focused on human
beings rather than the computer." - Alan Kinght
I do not say, that it is the best language, but it is more understandable
by users than other, usual, programming languages. Nevertheless, that does
not mean, that some day there will not be other language.
The Framework
-------------
(this part is for mainly for developers and curious users)
This part will be something more concrete and will describe desired
concepts and their StepTalk objects.
Language - STLanguage provides language information and execution
mechanisms.
Language context - is represented by STEnvironment. Maybe not very good
name and it should be changed to STContext rather. Context defines
names for concrete objects and defines mappings of verbs (selectors).
Nouns - Objects with names. Some names should refer no non-concrete
objects. The meaning of such names is provided by object finders, which
will assign concrete object to that name, when requested.
Script - Just plain NSString.
Script execution - Concrete subclasses of STEngine will execute a script
written in specific language. Engines should refer to the language
context to find out the objects behind names refered by users and
provided by developers.
Future
------
What needs to be done?
- make it be real object glue that will join functionalities of different
applications
- provide 'script objects' where one can create an object, define its
behaviour with 'script methods' in any language. Make it similar to
prototype based language - Self. (Google for: self language)
Conclusion
----------
I had no time to achieve this goal by implementing all I wanted and in the
way I wanted. Please, keep it simple and make the interface focused on
users.
Any further comments, questions and suggestions are welcome.