Python as a scripting language. Alternative to bash script?

Tim Harig usernet at ilthio.net
Mon Jul 5 14:02:17 EDT 2010


On 2010-07-05, Lawrence D'Oliveiro <ldo at geek-central.gen.new_zealand> wrote:
> In message <op.ve06nlvia8ncjz at gnudebst>, Rhodri James wrote:
>> Classic Unix programming is a matter of stringing a bunch of tools
>> together with pipes to get the output you want.  This isn't a great
>> paradigm for GUIs (not without tweaking that hasn't really been done), but
>> then again it was never meant to be.
>
> I???ve never come across any system where you could string together multiple 
> GUI apps, or even multiple GUI operations in the same app, in any sensible 
> or effective way at all. GUIs just aren???t designed to work that way.

You can if they are designed to be used externally.  COM is an execellent
example of this as is script-fu and any number of other technologies
that allow external access to the subroutines or automation capability
of a GUI application.  The problem is not that it cannot be done; but,
that it must be explicilty designed to be used this way.

I have worked with complex business process automation centered around
Excel and I have automated some really ugly AJAX style web based
applications that would only work inside of IE6 by accessing IE through
its COM interface.

> The command line (or scripting, the difference isn???t that important) remains 
> the only workable way to string together complex combinations of simpler 
> operations.

The difference is that it is almost always possible to automate using
text based applications, even when the author of the software never
designed the software to be scripted.  Text based IO streams are easy
to capture and manipulate.  Automating GUI applications requires interal
access to the program through some kind of interface and, ideally, decent
documention of the interface, something that is missing from many, if
not most, GUIs.  Anything else relies on ugly and, generally fragile,
mechanisms to intercept the programs output and send event triggers to
the application.  The recent thread to automate Minesweeper by processing
its screenshot is an example of this.



More information about the Python-list mailing list