Challenging python coders: Who can create a gnucash-like GUI in python in a few weeks?
Jeff Kletsky
gnucash at allycomm.com
Mon Jan 10 10:12:30 EST 2011
In my opinion, it is great that Scheme and Guile are on the way out.
I would suggest though, that something more than how few lines of code
are needed go into the determination of the language for the UI.
Otherwise, APL is going to win hands down. Even the presence of bindings
doesn't sway me much. The amount of UI code (and proper re-factoring of
business logic out of the UI) is probably going to be much larger than
the bindings. Part of me also cringes at the thought of using two
different languages for one application unless there is a good reason.
I'd argue for at least the following:
* Modern, object-oriented code
This one really goes without saying, I hope.
I'd personally prefer one that handles "multiple inheritance" in a
reasonable way and clearly supports anonymous functions, closures, and
"lazy build" functionality.
* Popular among developers
You want people to already have the skills to be able to contribute to
the project. The Open Source world is not really much different than the
commercial world. Now matter how slick "your" language is, it is going
to be much easier to, for example, find top-notch Java programmers, than
some niche language (unless it is deemed "the next great thing").
* "xPad" aware
Consider that I wouldn't be surprised if there are more iPads out there
than Linux desktops. Android is on the upswing. The increasing number of
handheld devices, to some extent, argues against heavyweight
interpreters. Why should the user have to not only download an app, but
also another language interpreter, and potentially another GUI
framework? I'm not saying that GNUCash must be in Objective C, but
thinking about platform support and impact is worthwhile.
* Understandability and Maintainability
I guess that rules out APL...
On 01/10/2011 02:24 AM, Christian Stimming wrote:
> Dear all,
>
> We've been discussing various future directions for gnucash, including
> a switch to a different programming language for the GUI code [1]. GUI
> coding in C sucks. Because of this, I've experimented with C++/Qt and
> was able to write up a usable gnucash-like register window GUI in 2-3
> weeks which already includes features that are unavailable in
> "conventional gnucash" [2]. I chose C++/Qt because I'm very familiar
> and productive with that platform.
>
> However, a scripting language might be even more suitable for writing
> the GUI code of a project like gnucash. The language Python is a
> particularly good candidate here because gnucash already has python
> wrappers for most of its underlying data type and storage code,
> thankfully provided by Mike Evans and others. See
> src/optional/python-bindings/ and the doxygen output [3] and the
> example scripts in python-bindings/example_scripts/, in particular
> scripts like simple_book.py: Loading an existing file, modifying some
> of the data, and writing again, all in 12 lines.
>
>
More information about the gnucash-devel
mailing list