What do you (the user) want?
I have put out a public survey to the KOSH kommunity as it exists on what they would like from a KOSH
Scripting Language - but there has already been a certain amount of discussion pertaining to the KOSH interface
and even scripting (directly and indirectly).
So far, I have been quite disappointed with the response (4 emails). While I don’t have much of an idea of
what a typical user would like, since I have had little feedback I have had to rely largely on my own
suggestions.
Many have pointed to AREXX (and REXX) as an example of a good SL. In fact, Dave Haynie mentioned that once
Amigans got good at using Arexx for all their scripting needs they stopped using any other 'macros' and
alternate SLs distributed with a particular app.
Paula Liebeman mentioned (as have others) that multiple modes of script creation should be allowed. For
example, being able to drop pre-set routines into a 'code-flowchart' would enable you to ‘see’ your script. But
for components not common, you’d just write your own routine and drop that into the chart. As well as this,
being able to jump through the script, skipping to certain sections (for example, in a tutorial script) - but
this may depend more on the particular script - of course, it should also be something easily programmed in
though.
Luke Guest suggested features much like Paula, but also would like to see an easier to read and learn
blocking style so it is much easier to tell where blocks start and end (start switch - end switch for example).
But the KOSH SL should be more intuitive (see, told you) than Arexx - a lot closer to <insert your
favourite spoken language>. Perhaps including a bit of database querying as well (largely because this
method suits our object sea model, albeit in a rather limited way).
So, since I’m assuming this document will be published into KOSH-general, or at least part of it, I’ll ask
the users to please submit to me (in documents no longer than a page) what they would like to see included in
the KOSH SL (my email address is available from Greg).
Here I’ll err on the side of brevity to keep this short (that way, if I miss anything out, I can pretend it
was intended).
A list of current scripting languages would have to (at least initially) include:
- Unix Shells (bash, csh, ksh, sh, etc)
- Rexx
- Perl
- Tcl
- Visual Basic
- JavaScript
- Arexx
SL’s Brief Overview
- Unix shells (sh, csh, ksh, ...)
- One of the most unique and powerful aspects of Unix was the ability to write shell scripts that create new
applications by composing existing applications; it is perhaps the single most important reason for Unix's
popularity as a platform for application developers.
- Rexx
- Michael Cowlishaw initially conceived the Rexx language in 1979 to simplify programming tasks on IBM's CMS
timesharing system. It became popular as a macro language for arbitrary application programs, and its usage
spread to many other platforms, including PCs and Unix.
- Perl
- Created by Larry Wall in the late 1980s as a way to bring together in one place the functions of many
popular Unix text processing applications such as sh, sed, and awk, Perl quickly became a favorite tool of
system administrators. With the arrival of the World-Wide Web, Perl achieved even greater fame as a convenient
way to write CGI scripts for dynamic Web pages.
- Tcl
- Created by John Ousterhout in the late 1980s as an embeddable command language for interactive tools.
When supplemented with the Tk toolkit, it became popular as the fastest way to build graphical user interfaces
on Unix. Tcl and Tk were ported to Windows and the Macintosh in the mid 1990s, producing an outstanding
cross-platform development environment. Today Tcl is used for a wide variety of integration applications
including Web content generation, financial applications, electronic design automation, automated testing, and
system management.
- Visual Basic
- This Microsoft product lies somewhere between a scripting language and a system programming language. It
became popular in the early 1990s as the easiest way to create graphical user interfaces under Windows. The
combination of Visual Basic and VBX (later ActiveX) components is probably the most successful component
framework in existence, due in large part to the ease of integration provided by Visual Basic.
- JavaScript
- Created in the mid 1990s by Netscape Corporation to perform scripting functions in Web browsers, such as
simple form validation. JavaScript has become the de facto standard for client-side Web scripting, although it
doesn't have much to do with Java.
- Arexx
- Arexx is the Amiga counterpart of the IBM REXX programming language. It is an interpreted language that
uses ASCII file input. By utilising IPC (Inter Process Communication) techniques, Arexx provided the user with
a way of having their separate applications interact with each other, exchanging messages and commands.
Advantages/Disadvantages of Current Scripting Languages: