Dennis Lee Bieber wrote: > On Tue, 4 Jun 2013 18:17:33 -0700, Dan Stromberg <drsali...@gmail.com> > declaimed the following in gmane.comp.python.general: > > >> Perhaps "Scripting language" is the best general category we have that >> Python fits into. But I hope not. > > Heh... Having encountered ARexx (the Amiga version of REXX), Python > is NOT a scripting language... The ARexx implementation (along with the > Amiga's interprocess communication system) allowed for scripting any > application that opened an "ARexx Port"... Other than, maybe, the > original IBM REXX, I've not seen any other REXX implementation that > would permit embedding application specific commands into a script. > > Python's subprocess (and related) are all based on explicit startup > and communication over stdin/stdout... Nothing like: > > address TextEditor /* a fictitious application port */ > 'DN 5' /* move down five lines *?: > 'MARK' /* start a selection */ > 'RW 5' /* move right five words */ > 'COPY' /* copy selection to operation result */ > string = result > address PageSetter /* fictitious here, but a real program */ > 'PASTE' string /* insert selected string into page document /* > > Yes, maybe the above could be done as two sessions of subprocess -- > presuming both programs had a command line interface. But what if the > script was going to switch between the two of them throughout one > session.
For me this is not a DSL, but an external API of an application, like you have with COM under Windows, DBUS under Linux. Unix streams are just an ancestor way of communication, you could have local-RPC also, or CORBA. So, as this is just inter-process communication procotol, if you have the Amigaes interprocess communication system tool written for Python, you could easily write things using a Python syntax: te = TextEditor() te.dn(5) te.mark() te.rw(5) te.copy() string = te.result() ps = PageSetter() ps.paste(string) Python is a scripting language, and a nice one to use as glue between different components, eventually of different technologies. (note: if you have more than one process to control via streams, you can open more than one pipe) And... here http://www.solie.ca/articles/pythonmod/pythonmod.html you could find modules for using Python with Amiga APIs and combining it with ARexx. > The C compiler suites used this ability to read the error log from a > compile, and move to the line/column in the source file associated with > each error. (Before "integrated" development environments) This is a + for compiled environments that you effectively cannot have with Python, non-syntaxic errors found at runtime. A+ Laurent. -- Laurent POINTAL - laurent.poin...@laposte.net -- http://mail.python.org/mailman/listinfo/python-list