Python's biggest compromises

Ian Bicking ianb at colorstudy.com
Thu Jul 31 23:16:43 EDT 2003


On Thu, 2003-07-31 at 16:27, John Roth wrote:
> "Robin Becker" <robin at jessikat.fsnet.co.uk> wrote in message
> news:TBO13LAmBVK$Ewml at jessikat.fsnet.co.uk...
> > In article <viibo7t45unv83 at news.supernews.com>, John Roth
> > <newsgroups at jhrothjr.com> writes
> > >
> > .....
> > >High performance isn't Python's target. If PyPy ever gets their act
> > >off the ground, then we will have a shot at a good quality JIT
> > >interpreter. Then watch it fly.
> > >
> > .... doesn't psyco already attempt to do JIT? It certainly doesn't
> > speed things up that much. If all the variables are known to be of a
> > specific type then you could expect C like speeds from a good JIT, but
> > without global analysis it's hard to see how we infer/guarantee python
> > types.
> 
> Well, that's certainly a problem, but Bicycle Repair Man seems to
> do a pretty good job of type inference, at least for refactoring.

And Java's JIT is based on (at least originally) work done on Self,
which had to do type inference.  And actually in many circumstances Java
requires type inference, because you can substitute in an instance of a
subclass. 

Anyway, JIT is all about runtime analysis -- if you could infer types
completely before running the program, you would just put in the
optimizations statically (i.e., compiling optimizations).  JIT does
those optimizations at runtime by definition.

And Bicycle Repair Man is inspired by the Refactoring Browser, an IDE
tool based on another dynamic language (Smalltalk), not on a tool from a
static language (like Java).

  Ian







More information about the Python-list mailing list