SMOLNET PORTAL home about changes
Forth Application Presentation                              -*-org-*-

Date: 2011/11/30

How should an application implemented in Forth be presented to users?
I can think of the following formats.

1. Forth Extension: User invokes application with word(s) in the Forth
   interpreter. 

   * Advantages: Most flexible and portable, immediate debugging.

   * Disadvantages: Requires user to have access to shell and Forth
     interpreter. User must know how to use Forth
     interpreter. Text-only interface.

2. Shell Application: User invokes shell script that starts Forth
   interpreter and invokes application.

   * Advantages: Low impact on implementation, good portability. User
     need not know Forth or Forth interpreter.

   * Disadvantages: User must have shell access. Text-only
     interface. Debugging requires modulization of
     application. Dependency on Forth interpreter interface for
     argument handling, environment var's, etc.

3. CGI Application: User invokes application from browser via CGI
   script.

   * Advantages: User can access application from any platform with
     web browser. User needs no knowledge of Forth or
     shell. Interface can use text styling and graphics.

   * Disadvantages: Requires web server running on application
     host. Dependency on Forth interpreter interface for environment
     var's, etc. Application must wrap output in HTML. Must finesse
     dictionary, stack persistence.

4. GUI Application: Aplication packaged as GUI program invoked on
   user's PC.

   * Advantages: Easiest access for user. Greatest options for
     interface media.

   * Disadvantages: Highly dependent on user's platform. Depends on
     linking graphics libraries with Forth modules. Requires user to
     install application on own PC.

Currently, I don't possess the knowledge to implement pattern 4., and
it has so many disadvantages I doubt it would be worthwhile even if I
could.

Pattern 2. does not offer much meaningful advantage over
pattern 1. (Users who can use the shell are able to learn enough
Forth to invoke the application.)

Therefore, I expect to do initial development as a
pattern 1. application, then make a pattern 3. wrapper for
appropriate aplications.
 
Response: text/plain
Original URLgopher://sdf.org/0/users/papa/forth/forth-app.txt
Content-Typetext/plain; charset=utf-8