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.
