Gui4Cli
One little gem I was introduced to last year, by the author (Dimitris Keletsekis) as it happens, is a freeware language/application called Gui4Cli. As the name suggests, it provides the ability to script powerful GUI front ends to CLI/Shell tools... but there's a wealth of extras that build upon the basic premise, once you've scratched beneath the surface. I can safely say it's become a very useful tool in my daily activities - coupling the power of shell tools with the ease of a GUI.
Gui4Cli is an interpreted, event-driven language equally suited to a variety of roles: front-end development, user interface prototyping and testing, quick and easy utility creation, even a 'visual shell'. The syntax is easy to write and understand, and non-programmers can pick up the basics very quickly. I had a working front-end to Richard Koerber's PalmLink shell tools within 30 minutes of using Gui4Cli... and it was on Aminet and the Gui4Cli website pretty soon afterwards! Now that's rapid software development in action.
In theory, being portable ASCII, a script could run on any platform supporting a Gui4Cli interpreter (only AmigaOS at present), an interesting thing to keep in mind for portability between AmigaOS, AROS, Amiga/Elate, Phoenix/Neutrino and even OSs like Linux or BeOS. The event-driven aspect means it responds to events such as mouse-clicks, menu selections, key-presses, sliders, even disk insertions or ARexx - pretty much everything the Amiga provides. Ports to other platforms might require support for slightly different things, such as REBOL, but the main core of the language is system independent.
The fact that G4C provides a user-interface which is clearly separated from the applications brings some powerful benefits, other than a portability issue mentioned above. For one, the developer can avoid the often messy process of GUI development using direct OS calls - the G4C language allows the interface to be developed using a much easier and more relevant syntax, which reduces development time and the chance of bugs creeping in. It supports the full range of AmigaOS, from screens and windows to Gadtools menus and gadgets, font sensitivity and window backgrounds, AppIcons, AppWindows and AppMenus, keyboard shortcuts and commodity hotkeys, sound and speech, database listviews, file notification, pipes, and plenty of graphics support.
In the simplest case, the script provides a front-end to what is essentially a shell-tool... in the more elaborate cases, interaction between the GUI and the application can be made through ARexx, or even a special set of C functions if you want more direct control and like to get your hands dirty. Some applications can even be written completely with Gui4Cli... it's a complete language, after all.
The benefits aren't just for developers though. It's quite likely that you've used applications that are powerful, but the user interface renders them almost unusable - everyone has different ways of working. With Gui4Cli, the interface becomes malleable. G4C's "Visual Editing" functionality allows the user to rearrange the interface while it's running, and the application will never know or care - the user can drag things around, resize, relabel, to make the interface better fit their way of working. The really adventurous user may even add new features or rewrite the interface from scratch - the recent concept of 'skins' for things like MP3 players and web browsers seems slightly pale in comparison, don't you think?
Best of all, like most things Amigan, Gui4Cli is backed up by a community of support. The Gui4Cli archive contains a wealth of tutorial scripts as well as comprehensive documentation in AmigaGuide format, and installation is simplicity itself - you can start exploring the wonderful world of Gui4Cli straight away. Dimitris actively supports the language - responding to questions promptly on both the G4C mailing list and via private mail, maintaining a support website and online gallery of G4C scripts (he appears to try out every script, often offering valuable feedback), and generally tweaking and refining the Gui4Cli language according to new ideas and comments.
Gui4Cli is available from Dimitris' website as well as Aminet (in the dev/gui directory). If you haven't taken a look at it, now might be a good time... have fun!
For information on obtaining and using Gui4Cli try these links:
Gui4Cli Home Page: http://users.hol.gr/~dck/gcmain.htm
Gui4Cli Gui Galleria: http://users.hol.gr/~dck/gcguis.htm
Download from Aminet: http://de.aminet.net/aminet/dev/gui/Gui4...
G4C Mailing List: http://www.onelist.com/group/gui4cli
Dimitris Keletsekis: dck@hol.gr
Articles in this Topic