[IPython-dev] Interesting announcement

Fernando Perez 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.
> Announcement:
> http://comments.gmane.org/gmane.comp.python.announce/5728
> Home page:
> http://geophile.com/osh/

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 mailing list