About a year ago I made a preliminary release of a package designed to find confluent rewriting systems and automatic structures for finitely presented groups and monoids, and to solve other related problems, such as finding presentations of subgroups of such groups or the index of the subgroup.

(Although solving subgroup problems like this is usually slower than using Todd-Coxeter based methods when the subgroup has finite index, the techniques used in MAF can prove that a subgroup does not have finite index, and still find presentations of the subgroup in that case)

The package is called MAF and is designed to work like KBMAG. KBMAG is available as a package for GAP, and there is quite a lot of GAP code for it, intended to make the package easier to use than it would be from the command line. At the time I didn't bother to create my own GAP package for MAF because it is sufficiently compatible with KBMAG that MAF binaries could replace the KBMAG binaries without upsetting the GAP package at all, though this meant that some of the features of MAF were not available through GAP.

I've now decided to create a proper GAP package for MAF, and am finding programming in GAP very hard going compared to using C or C++. Has anyone here tried to do programming with GAP? Are there perhaps alternatives to it that are supplanting it? I'm aware of SAGE, and have downloaded a copy of it, but I don't really have time to get to grips with it yet, and have never done any programming in Python or Cython, though I suspect I might like it a lot more than GAP. I'd be interested to hear from anyone who has worked on SAGE, especially anyone who has done work on its interfaces with other software (GAP,SINGULAR etc).