Jordi Gutiérrez Hermoso
2011-09-05 05:00:27 UTC
what is perhaps our most frequent feature request for Octave: a GUI.
Over the years there have been dozens of projects that have sprung up
to give Octave a GUI, and it seems clear that none will stick unless
that GUI is maintained in Octave's own tree. Jacob Dawid's initial
work on a Qt GUI has met a lot of interest, and quickly attracted
several developers (just today I got more people being redirected from
the abandoned QtOctave who are interested in helping with Jacob's
GUI), and I think it could work well.
It has a few problems that really need to be addressed before we can
make it part of a stable release:
1) Overall design.
2) Integration with Octave.
3) Building on Windows (sigh...).
Allow me to address each in turn.
== Design ==
Several people have expressed concern with how to decide on a design
for the GUI. It seems clear that exactly copying Matlab's GUI design
is not a good idea and we can do better. We need to have a healthy
discussion, perhaps slightly flamey , about how the GUI should
look. I wish to invite everyone to give their opinion here, and I hope
we can work towards an overall consensus.
Following Pascal Dupuis's retelling of the donkey fable , perhaps
the only thing we can agree on is that the GUI should have a high
degree of customisability. However, for issues where we can't
implement every option or we need a sensible default, I think we
should let one benevolent dictator have the final decision. The
natural candidates to make final decisions seem to be either jwe by
project seniority or Jacob since it was his code to begin with. I say
that if we agree to let either one make final decisions and everyone
else attempts to influence those decisions, we may soon move towards
consensus and a GUI design we can all be not too unhappy with (the
essence of compromise).
== Merging into Savannah ==
Although we've been working on a separate clone of the Octave repo in
Bitbucket , the goal has always been to work towards merging this
clone back into Savannah when we were confident of the quality of the
GUI. This is why I also opened a GUI category for bugs in Savannah,
because I didn't see this as a separate project, but one that should
be tied in wit Octave. The biggest concern here is integrating the
build system, which is completely different from Octave and has its
own set of problems, with Octave's own build system. I've started
looking into this, but I was unable to find help on how to test for
the presence of Qt with autotools (everyone seems to say to use CMake
instead), so I really need suggestions on how to do this. I'm happy to
attempt it again if someone can point the general path.
There is another issue regarding integration that I've discussed with
Jacob. At present the GUI is also a separate binary, which I think is
unnatural, but Jacob believes to be the best way. It's an internal
design choice, so, should the GUI stay as a separate binary? I think
we're going to be having more and more integration problems as we go
along if we keep them separate instead of trying to merge the
== Windows ==
I've brought up this issue before and Jacob seems to have begun to
tackle it, but it's still present. Jacob's original implementation of
a terminal used ptys which cannot easily be ported into Windows. As a
result, Jacob has started a new implementation of the terminal which
seemingly is minimally functional. However, we need confirmation that
this can be built on Windows. Jacob attempted it, but it appeared to
be a very difficult task, and he seems to have given up on this
attempt. It would be helpful if someone who builds on Windows can help
us build the GUI there too. Like the rest of Octave, we have a big
need for building and testing on Windows.
As I understand it, we have confirmed Mac OS X builds, so that's not
an immediate problem.
That's the overall situation as I see it. I really would like to see
everyone taking the GUI seriously. I know almost all people working on
Octave development, myself included, see little value in a GUI, but I
think this is one major step towards having more people taking Octave
seriously and not just a Matlab clone of mediocre quality for when you
can't afford to pay for a Matlab license. I think there's real
potential here to offer an immediate forward-facing improvement over
Matlab's own GUI without any real need to copy their interface and
make Octave shine on its own.
- Jordi G. H.