The Future of Reinteract

205 views
Skip to first unread message

Robert Schroll

unread,
Nov 18, 2013, 3:32:52 PM11/18/13
to reint...@googlegroups.com
Fellow Reinteract Fans,

It's been rather quiet in here. I hope that's because you, like me,
have had Reinteract working without problems. But I've started
thinking about the future a bit, and I'm somewhat worried. Slowly but
surely, Python 3 is coming. Eventually, each of us will need to use a
Python 3 only module, but Reinteract is currently only for Python 2.
One thing that's holding Reinteract back is that the toolkit bindings,
pyGTK, are only for Python 2. So if Reinteract is to evolve, it needs
to move to different bindings.

This brings up another thing that bothers me: Reinteract isn't as
popular or widely used as it should be. I don't know exactly why that
is, but I suspect that the use of GTK may be contributing. GTK is a
great toolkit on Linux, but it seems to be a bit of a pain to get
working on Macs and Windows. If Reinteract needs to switch toolkit
bindings, maybe we should take this as an opportunity to switch
toolkits as well.

There's a bunch of ways we could go. I've listed a few that occur to
me below. These aren't "official" in any way; they're just options
that I've thought up. But I'd be interested to hear what people think
of them from the point of view of (1) users, (2) evangelists, and (3)
potential contributors.

1) Move to pyGI bindings. The GObject Inspection bindings are the new
way to use GTK with Python. They're not quite as nice as the pyGTK
bindings, IMO, but they are up-to-date. This would be the least work,
and there are scripts to help with the transition. IIRC, Owen said he
tried this as a test some time ago, and got most of it converted in a
day. But this leaves us with GTK and its cross-platform woes (whether
real or just perceived).

2) Move to Qt, with pyQt or pySide. It saddens me as a GNOME fan, but
it appears to me that Qt has become the cross-platform toolkit of
choice. This is especially in the scientific python community, with
the iPython console, MayaVi, and several other projects based around
Qt. Moving to Qt might help Reinteract reach more users and fit in
with other scientific python tools. But this isn't just a matter of
changing how buttons look. Reinteract does highly non-trivial things
with GTK, so I'd expect it to take a fair amount of work to get it
working in Qt.

3) Integrate with the iPython or Sage notebooks. Both provide a
notebook interface similar to Reinteract through a web browser, making
cross-platform compatibility easy. Both have large communities that
may be interested in Reinteract's capabilities. Sage even has the
ability to send input to several different backends. But I don't think
we can do Reinteract's state-managing tricks just with a backend that
gets individual bits of code to execute. The web frontend would need
changes to help track the state, and I'm not sure that either project
would be interested in accepting these changes. We would also lose the
ability to use native widgets in CustomResults.

4) Make a plugin for LightTable. For those of you who haven't heard of
it, LightTable is a coding environment that provides live evaluation of
code. It already supports Python, including inline matplotlib plots.
Its goal is to be a light-weight framework with many of its features
provided through plugins. Reinteract-like functionality may be
possible just through plugins. LightTable is already cross-platform.
It's still under heavy development, though, and licensing isn't
entirely clear yet, so it may be too early to commit to it. This may
also require programming in Clojure.

5) Separate Reinteract into a frontend and backend. The idea of
splitting Reinteract into a graphical frontend and a computational
backend running in a different process has been tossed around before.
This would increase stability, allow the use of Python 2 and 3
simultaneously, and allow different frontends to be developed. Doing
this would allow us to try any (or all) of the above options. But, it
would require the development of a protocol to communicate between the
two and would restrict the use of native widgets for CustomResults.
I'm also not convinced that we have a big enough community to support
more than one frontend.

So what do y'all think? What ideas excite you? What option have I
missed?

Just to reiterate, these are all my own, private opinions. Owen has
had nothing to do with it and may have his own plans for Reinteract.

Robert

Guido Vettoretti

unread,
Nov 18, 2013, 3:43:05 PM11/18/13
to reint...@googlegroups.com
Hi Robert, 

I've since moved on to using IPython notebook. It might be useful if some of the features of Reinteract could be incorporated into future versions of IPython notebook.






Robert

--
You received this message because you are subscribed to the Google Groups "Reinteract" group.
To unsubscribe from this group and stop receiving emails from it, send an email to reinteract+unsubscribe@googlegroups.com.
To post to this group, send email to reint...@googlegroups.com.
Visit this group at http://groups.google.com/group/reinteract.
For more options, visit https://groups.google.com/groups/opt_out.

Matti Airas

unread,
Nov 18, 2013, 3:58:03 PM11/18/13
to reint...@googlegroups.com
Hi,

Glad to hear something is still brewing with Reinteract. Personally, I'm very much partial to Qt and PySide, but if that is not your cup of tea, maybe wxWidgets could provide a workable cross-platform solution? I'm not that much of a GUI programmer, myself, but I would assume it to require a similar amount of rewriting as going with PySide, although at least the end result would run on GTK+ on Linux, if that's worth anything. :-)

Cheers,

ma.




Robert

Jorn Baayen

unread,
Nov 19, 2013, 2:29:58 PM11/19/13
to reint...@googlegroups.com
Hi Robert,

Many thanks for the extensive overview.

If, as you suggest, a port to PyGObject can be done with relatively
little effort, then I think this would be a logical first step.  We'd b
able to bring Reinteract up to date with Python 3 and GTK 3 in one go.
I would be glad to help out with such an effort.

I've never had much trouble installing GTK on Windows or Mac.  But I
share your observation that Qt is moving into the direction of becoming
a cross-platform standard.  I'm not sure if I will have the time to help
out with a Qt port, but I would cheer any efforts.  Perhaps GTK is
indeed the reason for Reinteract's mysterious lack of popularity.

You mention separation of frontend and backend.  I'm not sure if this
would be worth the effort.  But offering a Reinteract embeddable widget
could be nice.  One could imagine embedding a Reinteract widget into an
IDE such as Spyder.

Cheers,

Jorn

Robert Schroll

unread,
Nov 20, 2013, 4:11:28 PM11/20/13
to reint...@googlegroups.com
Thanks for the comments, all. A few more thoughts from me:

On Mon, Nov 18, 2013 at 5:43 PM, Guido Vettoretti <2gu...@gmail.com>
wrote:
> I've since moved on to using IPython notebook. It might be useful if
> some of the features of Reinteract could be incorporated into future
> versions of IPython notebook.
>

From the point of view of evangelism, integration with IPython would
be great. It's the current go-to solution, and its users are the most
likely to be interested in Reinteract. But I fear it would take some
major changes to get Reinteract behavior into IPython. Does anyone
have contacts with the IPython devel community? It'd be nice to see if
they're at all interested in this before we go any further.

This is actually a place where a frontend/backend split could help. If
we could go to IPython and say, what would it take for you to support
this protocol, we'd probably get a much more useful answer.

On Mon, Nov 18, 2013 at 5:58 PM, Matti Airas <mai...@iki.fi> wrote:
> Glad to hear something is still brewing with Reinteract. Personally,
> I'm very much partial to Qt and PySide, but if that is not your cup
> of tea, maybe wxWidgets could provide a workable cross-platform
> solution?
>
I haven't investigated this at all, so I may be completely wrong, but I
would guess that it'd be harder to do the things Reinteract does in the
worksheet text area with wxWidgets than with Qt. The GTK code there is
non-trivial, so doing the same thing for all the native widgets with
wxWidgets may be rather difficult. But if anyone knows better, please
say so.

On Tue, Nov 19, 2013 at 4:29 PM, Jorn Baayen <jorn....@gmail.com>
wrote:
> If, as you suggest, a port to PyGObject can be done with relatively
> little effort, then I think this would be a logical first step. We'd b
> able to bring Reinteract up to date with Python 3 and GTK 3 in one go.
> I would be glad to help out with such an effort.
>

I should remind you that this was Owen, who knows both Reinteract and
GTK inside and out, who could do most of it in a day. It may take us
mortals somewhat longer. :)

Also, there's more than changing the bindings to move to Python 3.
Unfortunately, I don't know how much more. One of the big issues for
Python 2 to 3 porting is separating bytes and unicode strings. This is
already pretty well taken care of in Reinteract, which is a plus. But
Reinteract messes around with ASTs and other Python internals that may
have changed in the 2 to 3 transition.

Robert



Padraig Looney

unread,
Nov 22, 2013, 4:43:14 PM11/22/13
to reint...@googlegroups.com
Hi All,

I'm new to Reinteract having only heard of it a few minutes ago.

I've been interested in getting involved in some open source projects and Reinteract is of interest to me. My team uses Prism but as I use Linux I am not able to. Also the license for this is, in my opinion, way too expensive so I have transitioned to using Matplotlib. In answer to your question about the lack of popularity of reinteract I would say that it is not easy to find as I tried to find such a toolkit months ago. It seems to me that Prism monopolises the scientific community. I have done some work using PySide for QT, numpy and SciPy so if I can be of some help please let me know.

Robert Schroll

unread,
Nov 23, 2013, 3:48:08 PM11/23/13
to reint...@googlegroups.com
On Fri, Nov 22, 2013 at 6:43 PM, Padraig Looney
<padraig...@gmail.com> wrote:
> I'm new to Reinteract having only heard of it a few minutes ago.
>

Welcome! I hope you find Reinteract useful.
>
> In answer to your question about the lack of popularity of reinteract
> I would say that it is not easy to find as I tried to find such a
> toolkit months ago. It seems to me that Prism monopolises the
> scientific community.
>

One of the side benefits of transitioning to a new toolkit is that it
gives us an excuse to bother everyone by announcing it. What places
did you look when you were searching? That's obviously where we should
be advertising.

Thanks,
Robert



Reply all
Reply to author
Forward
0 new messages