the

     A-A-P logo     

project


 

tools useful for A-A-P

The intention for A-A-P is to use existing tools as much as possible. To find out which tools can be used this overview has been compiled.
    Some tools cannot be used directly, but function as an example or can be invoked by A-A-P (e.g., commercial tools and programs which are not portable). Unless noted otherwise, tools are open-source.
    If you find a tool that would be useful for A-A-P but is not listed here, or when information is incorrect, send a message to Bram AT a-a-p.org.
    Note: this list is not intended to be complete. Information that is irrelevant for A-A-P is omitted.

Script languages       Build       Install       Issue Tracking       Version control       Browse       IDEs       Various


Script languages

A script language is needed in various parts of A-A-P:
  • The most important use is in the recipes. Here the script language allows a recipe writer to execute various tasks, without depending on OS-specific tools. Once the language has been chosen it is very important that it doesn't change, it would make already written recipes invalid.
  • The A-A-P framework must run on many different Operating Systems. Implementing it in a script language that runs on many OSes avoids having to write system-dependent code. This also makes it easy to support adding plugins.
  • The automatic configuration for a specific system must be OS-independent. This requires an OS-independent script language.
Using the same script language throughout A-A-P is preferred. This avoids that a developer needs to learn several languages.

The most important demands for the script language:

  • Portable over many different Operating Systems
  • Stable; avoid the risk that a future version is not backwards compatible
  • Easy to use and understand
  • Includes Internet access functionality
  • Provides GUI functionality
  • Can be debugged
Overview (best candidate first):
Python
Appears to fulfill all demands. It's open-source, is available for all important Operating Systems, supports internet connections, widely used, and so on.
Drawbacks are the way indents may cause trouble and speed (compared to using compiled C).
Tcl/Tk
Appears to fulfill all demands. Tk is the same GUI toolkit that's used for Python, but it was originally made for Tcl. A graphical debugger is available. It was designed to be embedded in appliations. Easy to use networking facilities. Easy to learn.
Compared to Python, TCL is weak on data structures (stores all data as strings) and less suited for large programs. TCL might require writing specific things in C or C++.
Ruby
Includes many of the "good things" from Perl. Very modern, uses all the good things from older languages (e.g., smalltalk). Full O-O support (better than Python). Very flexible: can add a method to a class at runtime. Supports the Tk GUI toolkit.
Disadvantages: O-O features appear to be more important than practical use. It's not very wide spread yet (compared to Python).
Unknown: How is support for internet access?
Perl
A very powerful language, but Perl files tend to be rather cryptic: "Perl is a write-only language". The syntax is complex: "Only Perl is able to parse Perl scripts". That is a bit exaggerated though, it's possible to write nice Perl scripts with a bit of effort.
There are several ways to use a GUI with Perl, including Perl/Tk, wxWindows and Qt.
Scheme
Comes from the LISP world. Not everybody likes the syntax. Several incompatible versions exist.
Javascript
Limited use outside of HTML.
Java
Cannot be executed directly, requires a compiler. Would be difficult to use in a recipe.
C#
Cannot be executed directly, requires a compiler. Would be difficult to use in a recipe. Still very new and not widely supported.
Shell script
Not portable, because a shell script depends on external programs.
There are many script languages that are not mentioned here, because they are not widely used.
 
  The A-A-P pages:
home
news
Zimbu award
documentation
     Recipe examples
     Aap manual
     Agide tutorial
     features
     presentations
download
     Aap version log
     Agide version log
     ported apps
     packages
maillists and chat
plan and tasks
     SourceForge pages
     Aap todo list
     Agide todo list
architecture
     use cases
     modules
     interfaces
     design decisions
tools overview
     script languages
     build tools
     Install tools
     issue tracking
     version control
     browse tools
     IDEs
     various tools



Zimbu!



KwMap.net - browse the Keyword Map of A-a-p.org
 
funded by:

NLnet
	 logo


Send comments on this page to Webmaster AT a-a-p.org.            Hosted by SourceForge Logo            Also known as www.Agide.org.