Difference between revisions of "Roadmap"
(Add roadmap) |
(Add generic importer.) |
||
Line 10: | Line 10: | ||
The current register is optimized for visual similarity to a "checkbook register" at the expense of simplicity and maintainability. | The current register is optimized for visual similarity to a "checkbook register" at the expense of simplicity and maintainability. | ||
+ | |||
+ | = Generic importer = | ||
+ | |||
+ | TSV/CSV importing "simply" needs a dialog to do column-semantics mapping. | ||
= Scheme minimization = | = Scheme minimization = |
Revision as of 15:16, 4 December 2005
This list represents is a rough list of ideas that some of the core developers have discussed over the years as the likely next directions for GnuCash. That sentence is mightily-qualified as it should be; this list should not be interpreted as a promise or even really "official"... while it's a good guess as to what one group of people would like to do, projects like GnuCash are the results of a wide group of contributors, and they ultimately decide what road GnuCash travels.
Contents
New database backend
The current PostGres database backend doesn't have feature parity with GnuCash, and is relatively inflexible to extend. Most of GnuCash is based in the Query Object Framework, and should be integrated closer to there to implement a database backend.
One done, a database backend should replace the XML file backend as the primary backend for GnuCash, likely using SQLite as the implementation.
Register rewrite
The current register is optimized for visual similarity to a "checkbook register" at the expense of simplicity and maintainability.
Generic importer
TSV/CSV importing "simply" needs a dialog to do column-semantics mapping.
Scheme minimization
There are some parts of GnuCash that make a round-trip into scheme code for no really good reason.
Start in C, not scheme
The current startup logic is a scheme script, invoked by guile, which then loads a bunch of C libraries and executes them; 95% of the remaining runtime is in C. This is silly.
"Invert" reports
Right now reports are scheme scripts that programatically generate HTML. They should instead -- at least for HTML generation -- be HTML templates that embed scheme fragments to control looping and variable output.
Remove module system
The current module system confuses runtime-loaded modules with shared libraries. As well, it is (arguably) at the wrong level of granularity in places, leading to too many modules.
Better MVC split
There is too much application logic in the user-interface handling code. It should move out into some not-yet-fully-defined model layer.