[IPython-dev] Interesting announcement
Fernando.Perez at colorado.edu
Fri Nov 18 12:23:43 EST 2005
Daniel 'Dang' Griffith wrote:
> I've only been following the posts for ipython very passively, but I found
> this announcement interesting, as the subject of chaining several commands
> together has come up on occasion over the years. It's an interesting
> approach. It's licensed with GPL; I don't know if this is incompatible
> with the BSD license that IPython uses. Still, you might consider talking
> with them to see if it could be dual-licensed; I've seen a few things
> lately being released that way.
> Home page:
Yes, I had seen this and had a look at it a while ago. While it looks
interesting, it's a bit orthogonal to ipython in that in introduces a whole
new syntax which is not python:
@foo [ shell command ] ^ out ...
@foo is a cluster, not a decorator,  is used to pass commands, not to
retrieve sequence/mapping elemnts, etc. So while I have no doubt that this
can be very handy for spreading commands over a cluster, it's not really
python anymore. Additionally, it is not interactive, but rather a one-shot
executable (it's a bit strange that the homepage is titled 'Osh - Object
oriented shell', but the second paragraph starts with 'osh is not a shell').
The chainsaw branch of ipython implements cluster/parallel support, but within
the ipython framework. I personally prefer the idea of keeping the full
python language as is, and providing suitable localized extensions to help
system interaction, rather than trying to reinvent yet another whole new
language. Going that route is ill-advised, IMO, because it requires users to
learn yet another set of syntax and rules which are orthogonal to those of
python, and also because it's highly unlikely that you'll do a better job at
language design than Guido and the whole python community.
Specialized mini-languages do have a place, but they carry a price (time and
cognitive load, to begin with). I don't think this is a context where the
price is worth paying. In addition, his restriction to non-interactive,
command-line usage makes the system somewhat limited in my view. For any
system where the price of learning is worth paying, you want to be able do do
complex things. That inevitably means looping, logic, branching, etc; all
things that require more than single-line input.
So while I like the core idea of 'piping python objects', I'm not sure that I
personally would have made the specific implementation decisions of Osh. For
that same task (quickly spreading commands to a cluster) I long ago wrote my
own little (very limited) python script which satisfies my needs.
I am sure that Osh can be very useful, and I really don't want this post to
sound like I'm bashing it in any way. I had it bookmarked already, and I'll
keep an interested eye on its evolution. I just wanted to provide some clear
reasons why at this point, I don't see too many points of contact with ipython.
More information about the IPython-dev