Development tools

lehalle's picture

What are your favorite development tools in Maple?

Comments

lehalle's picture

Emacs

I use emacs with maple-mode, but it's far from perfect.

Emacs mode for maple

Do you mean maple-mode or maplev-mode (that's the one I wrote). If the latter, don't be shy about suggesting improvements or complaining about deficiencies. Alas, my ISP, on which I had a home page, went away a few months ago and I haven't got around to getting another to distribute the source for maplev-mode. Maybe I'll put it here.

lehalle's picture

I mean maplev-mode

thank you for this emacs mode, it is very useful.
the only point is that I would like:
- help generating tools
- direct communication between maplev-mode and maple (does this already exists?)

another discussion about maple dev tools here

emacs to cmaple

MapleV-mode can talk directly to command-line maple. For example, to send the current buffer to cmaple, use the maplev-cmaple-send-buffer command, which is mapped to C-c C-c b. Use C-c C-c g to goto (pop to) that buffer. You will probably have to configure your .emacs file to tell it where the maple executables lie. Do you use the mint commands with maplev-mode (C-c ret [b p])? I find them especially useful for eliminating errors.

JacquesC's picture

Maple mode in vim works well too

For those of use who are not emacs-savvy, vim has a decent maple-mode. I submitted some upgrades to it, which are now part of the standard distribution. I have a few more to submit (some of which are courtesy of some Maplesoft people, who also use vim), but it has been difficult to find the time.

Of course I would love to use literate programming tools with Maple. I have been meaning to adapt with funnelweb or noweb for this task, but again time pressures have not allowed me to do so (yet).

Of course I would also like a nice javadoc-like infrastructure for my APIs (Maplesoft apparently has this tool internally now, or so I've heard). And I would really like something like JUnit for simple testing purposes, and QuickCheck when things get more complex. Here I know that Maplesoft has some nice tools (you can see some of them leaking out as TestTools and verify). And I know of more, since I wrote some of those tools while I was at Maplesoft!

maple and literate programming

I've done a fair amount of literate programming using noweb with Maple. I've written noweb filters for indexing Maple noweb files. These were available on my home page, alas, it no longer exists. I'll try to post them on blog here.

lehalle's picture

requirements

I totally agree with you, I think that the perfect tools will be like:
- a javadoc-like to produce the structured help files from the code
- a JUnit like mechanism
- a classical literate programming tool is not mandatory: instead of producing TeX code, it should be far better to produce Maple sheets
- a libraries/packages management tool

JacquesC's picture

LaTeX all the way for me

      a classical literate programming tool is not mandatory: instead of producing TeX code, it should be far better to produce Maple sheets

Here we disagree. It took several geniuses a number of years to come up with something with the output quality of LaTeX (I include TeX and MetaFont in there). The difficulty of proper typesetting is highly under-estimated by most, with the end results being predictably sub-optimal.

This is not to say that, eventually, Maple will not be up to the task! However, Maple of 2007 still cannot compete for output quality with TeX of 1990. It will take a few more years of concentrated effort on typesetting before that happens. In the meantime, I will take my LaTeX output, thank you very much!

more literate

Your "few more years of concentrated effort" is probably also an under-estimation 8-). While the notion of creating a literate programming tool with a Maple worksheet as a typeset output is appealing, I doubt whether it would be useful (not to mention possible). One would really want the created worksheet to be executable, but there is currently no way to split the source for a procedure (in a worksheet) into sections with interspersed typeset comments (let alone reshuffling chunks as is done in Knuth's literate programs). It is, though, an interesting idea.

JacquesC's picture

Declarative vs WYSYWIG

I think the biggest obstacle in achieving that goal is quite fundamental as it is one of paradigm. The current GUI is quite WYSIWYG (if you ignore the hidden regions and the havoc they can create if used in ways they were not meant to - which is not all that well documented, but I digress). Right, so the GUI is meant to be used in a WYSIWIG fashion. But Knuth's fundamental idea with WEB and CWEB is to take a much more declarative view of a program. As far as best practice goes, you are supposed to separate your meaningful content from its display methods. Weaving is what gives you the end results, be that an executable program or a viewable document. Similarly, well-done LaTeX documents cleanly separate display and semantics (through the judicious use of style files).

In a way, one of the really good tools for this was Word 3! In the early 80s, Word had a really nice outline mode and if you stuck to editing in that mode, and used style sheets well, you could get a graphical editor for structured documents. But then they went totally WYSIWYG with Word 95, and the outline mode got skewered.

At least the XML/XSLT people got that separation right. The XML is all content, and XSLT, as horrible a language as it is, is the right way to render an XML document. Modern web pages (with tons of CSS2) do that too. And guess what? Dreamweaver, which is an otherwise fantastic HTML editor, starts to break down when editing such a "modern" set of web pages. Oh, it can still do it, but all the WYSIWYG niceties go away, and you're mostly left with a clumsy text editor!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
}