35
$\begingroup$

Are there any alternatives (IDE or other workflow) to Wolfram Workbench for development and debugging?

Elaboration: An open source alternative.

$\endgroup$
3
  • 1
    $\begingroup$ @EmpireJones, perhaps you could elaborate a bit on what it is that you are not satisfied with in WB such that answers in that direction can be given. $\endgroup$
    – user21
    May 5, 2012 at 17:27
  • 1
    $\begingroup$ I prefer to use the simple installation of Mathematica to write my Applications. Don't know if this will work in future versions of MMA, but for now it works in MMA8: ApplicationMaker $\endgroup$
    – jmlopez
    May 18, 2012 at 18:32
  • $\begingroup$ One thing you could do for "simpler" development is have a Dynamic-wrapped variable and a loop that checks for changes to a file every X seconds (if there's a change, update the variable). I do this when I feel like editing in Vim. $\endgroup$
    – amr
    May 26, 2012 at 1:47

8 Answers 8

22
$\begingroup$

There are indeed some open source alternatives, as other posters have suggested, but you will miss the unique facilities of WB to develop state of the art documentation. So if you want to develop some serious work in MMA, for yourself or others, you should seriously consider WB. Having said that, I use WB in a (probably) unconventional way. Within WB you can select which editor you want to use for the various file types. The default being: editing the .m file with the internal WB editor. Well, I instead chose to edit the .nb (package) file using the standard front end (linked to WB), this action will automatically update the .m file and then use all the standard WB facilities to integrate documentation. In this way you have the all the cool front-end editing tools plus all the cool WB documentation and debugging tools at your disposal.

This technique is described in more detail in my answer in Managing formatted usage messages in Wolfram Workbench

$\endgroup$
1
  • $\begingroup$ I appreciate the info, thanks! $\endgroup$ May 6, 2012 at 18:28
19
$\begingroup$

There is also a TextMate bundle for Mathematica:

https://github.com/dehowell/mathematica-tmbundle

TextMate is for Mac only, but this bundle work in other editors like Sublime Text (multi platform) (windows)

Also for Atom (multi platform) there is this: https://github.com/Fitzse/language-mathematica

UPDATE: As of 2023, my response is now fully outdated. Look for current solutions at https://www.wolfram.com/developer/#add-ons

In particular I have found the VS Code extension to work very well.

$\endgroup$
9
$\begingroup$

Another alternative is the IntelliJ IDEA IDE with the Mathematica plugin. See this post for details:

Open-source IntelliJ IDEA plugin to support Mathematica development

$\endgroup$
7
$\begingroup$

New plugin for Geany editor https://github.com/Ludwiggle/wolfram-geany .

It has autocompletion, documentation pop-ups, basic syntax highlighter, it runs wolfram scipts by pressing F5 without installing Mathematica.

There are some differences between the wolfram-geany plugin and other available IDEs like Atom, IntelliJ IDEA, Sublime, Emacs, Vim when it comes to their integration with the Wolfram Language.

  1. First of all Geany is very easy to install because it is present in all Linux repos as well as in brew repos for MacOS. Like most of the other IDEs for which a "Wolfram plugin" exists, Geany and the wolfram-geany plugin are free of charge. Only Sublime is not free of charge.

  2. Lightweight and fast. This makes it a good alternative to the Mathematica front-end on a Raspberry. It takes just few MB, while IntelliJ is almost 1 GB of source code to be compiled.

  3. Easier to use compare to Emacs and Vim, but it also has more features respect to Atom. In Atom one cannot execute a script and display the outputs by simply pressing a key. With IntelliJ one has to install one plugin for the syntax highlighter-autocompletion-helper and different plugin to run the script. Furthermore, the author of MathematicaREPL state that the installation of Mathematica is required, while wolfram-geany does not require to install Mathematica. Wolfram-geany has only free software dependencies.

  4. The documentation is quickly accessible by a custom key-binding. Atom version simply provides a link the the online documentation.

In few words, it is minimal as Atom, with some handy features of IntelliJ, without being that cumbersome.

On the other hand, wolfram-geany does not provide a dedicated lexer, therefore the syntax highlight is not as rich as the corresponding plugin for Atom of IntelliJ. These two project are at a mich higher stage of development.

Nevertheless several available colorschemes for geany make it pretty readable. For instance, Kugel use three different colors for

  • punctuation
  • strings
  • any other symbol respectevely.
$\endgroup$
6
$\begingroup$

How about TeXmacs? There is a plugin available for this open-source replacement for the Mathematica front-end that connects to a Mathematica kernel over MathLink.

$\endgroup$
2
  • $\begingroup$ While the mathematica plug-in seems to be supplied with TeXmacs (at least in the OS X version), how does one: (1) get it to appear on the TeXmacs Insert > Session menu? (2) otherwise interact with Mathematica? $\endgroup$
    – murray
    May 26, 2012 at 19:56
  • $\begingroup$ @murray I'm not familiar with OS X. Try asking your question in the TeXmacs users forum. $\endgroup$ May 27, 2012 at 8:15
5
$\begingroup$

You can also use the Eclipse IDE which can be found at:

http://www.eclipse.org/downloads/

$\endgroup$
6
  • $\begingroup$ Isn't Workbench and Eclipse basically the same thing? I always had the impression that Workbench is Eclipse based. $\endgroup$ May 5, 2012 at 17:41
  • $\begingroup$ @MarkusRoellig Yes it is. As R.M pointed out above, you can as well get the Wolfram Workbench plugin for the standard Eclipse version (which works better for me under Linux btw). $\endgroup$
    – sebhofer
    May 5, 2012 at 20:17
  • $\begingroup$ @sebhofer what problems did you have with workbench and Linux? Workbench crashing suddenly? I have this problem currently and would be interested to know if switching to eclipse + plugin would help. $\endgroup$
    – Sulli
    Mar 28, 2013 at 16:44
  • $\begingroup$ @su1 I always had problems with random java errors popping up. For me this definitely improved with newer eclipse versions. Still crashes sometimes though. $\endgroup$
    – sebhofer
    Mar 28, 2013 at 19:45
  • $\begingroup$ @sebhofer ok I'm still having problems with workbench 2.0 on linux mathematica.stackexchange.com/questions/22268/… so will try eclipse + plugin soon $\endgroup$
    – Sulli
    Mar 29, 2013 at 9:10
5
$\begingroup$

There is an interactive emacs mode and also this is nice for developing (I don't use either much anymore though so don't know how current they are).

$\endgroup$
4
$\begingroup$

The usability of the standard Mathematica front end has significantly improved in the last 3 to 4 years. In the current version (10.0.2.0) it is almost like a new product. Hangups and crashes are now rare; they used to be practically unavoidable. When a piece of code runs for too long, it is now easy to stop everything, quickly. These are not small improvements.

Remember, too, that the front end provides a critical service unlikely to be found elsewhere: it informs you, by the syntax coloring of a word, whether or not the word is defined. Without this feature I think programming in Mathematica would be much more difficult.

In short, I suggest giving the front end another try in an up-to-date installation before putting a lot of time into using a replacement.

$\endgroup$
1
  • 2
    $\begingroup$ Wolfram Workbench is still useful for big projects involving several packages. I don't think you can rename a function accross several packages with notebooks in one command. $\endgroup$
    – faysou
    Feb 13, 2015 at 21:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.