Orange Forum • View topic - State of Orange

State of Orange

A place to ask questions about methods in Orange and how they are used and other general support.

State of Orange

Postby Feanor76 » Wed Jan 17, 2007 20:47

Hello all,

So, I'd like to ask two questions: 1) where is Orange at right now and what is its most immediate direction and 2) what can the community of Orange users do to become more like developers of Orange.

From my perspective, much of Orange works quite well "out of the box". Installing has always been a fun little trick, but nothing too crazy. I hope my notes have helped others with this. I'd most like to see a few things to ensure that Orange lives on past any of us:

1) Clean up: there are modules, functions, lines of code that are deprecated, replaced, lost, etc. Also, making sure that the code (and the APIs) are documented for future developers is important.

2) Versioning ... we know about the issues with qt, pyqt, pyqwt, etc. It's unfortunate that building a complex system like orange requires building on a foundation .... and then waiting for that foundation. What can be done to ease these transitions?

3) Along with #2, I saw azaroth post about numarray/numpy/numeric stuff. Apparently, numpy (the new library) is to be the forward moving python numerics library. I know my system only has Numeric on it right now while I wait for various tools to migrate over. In Orange, the only thing I really make use of is ExampleTable.toNumeric() calls (that I actually send to R via rpy).

4) I know that the memory management side of Orange has been done with a custom solution. Any long term thoughts about going to one of the Python-C++ frameworks for this? Is thinking about this a poor use of resources?

5) What else? These are just some thoughts ... I'm fininshing up a project that I could not have realistically finished without orange. When it is done, I'd very much like to make some lasting contributions to Orange.


Postby Janez » Thu Jan 18, 2007 8:55

Hi Mark,

thanks for the questions. We'd like to avoid making too many promises and deadlines that won't hold, but since you ask...

As for installation, I don't know about the binaries for Fedora (do they work well?), but a student of mine is working on a Debian package which he hopes to put into the official distribution when Orange is ready for that. Another student is struggling with the niceties of MacOsX (as far as I know, he's now fighting with PyQwt).

1. I completely agree, this is an investment that would pay of. Unfortunately we are too busy with other important projects, so none of the key people has time to do it. We do some cleanup by the way, when changing/adding other things, but nobody has time for serious cleaning and documenting.

2. We built PyQt and PyQwt for Qt 2.3 and Python 2.4 and 2.5, and there seem to be no problems with going to 2.6 and on. We even dared to put Orange for these versions of Python on the web, but didn't advertise it since we first have to test it some more. I'm on 2.5 now to see if anything unexpected pops up.

Qt 4, which is again GPL on Windows, will be a problem. TrollTech seems not to mind about backward compatibility so we will have to rewrite many widget interfaces from scratch. We would like to have a stable version released as 1.0 before going into that mess.

3. NumArray vs. NumPy vs. Numeric seems to be a problem for many packages, not just Orange. I hope my colleagues can shed some light on where we stand. I have to confess that I never really used it except for coding the C functions that convert the data into and from its arrays. With regard to that, I don't mind what we use.

4. Orange's memory management is handled by Python, with a thin template layer atop of it. I'm quite happy with that, it couldn't work better.

You asked about immediate directions. We are going to finish the documentation for widgets and debug the widgets for two general problems we know about: many crash when given regression data (or if they are given no data after they had some), and the widgets that already have context dependent settings may not handle the context switches correctly. (We haven't talked much this feature, but have you noticed that scatter plot remembers things like chosen attributes and even selections for different data sets?) The first bug is trivial, but occurs in a million places. The second one probably requires adding a line or two in a single place, but it's nasty, hard to replicate and extremely annoying. After this is fixed, we will release something called Orange 1.0.

Next comes merging the main branch with the one that supports translating. This should be no big deal.

We shall then probably move to Qt 4.

How can the community contribute? By programming widgets. C++ is too messy and will probably stay that way, but widgets are nicely independent from each other. You can also add new algorithms as Python modules; good code in Python does not need to be slow, many things can be done in Python, maybe also using Numeric or rpy.

If you want to make some lasting contributions: if you use Orange with R, it would be great if you put some of that stuff into widgets. It wouldn't hurt if Orange had some statistical methods, starting with the standard ones like t-test and correlations.


Return to Questions & Support