Are there any alternatives (IDE or other workflow) to Wolfram Workbench for development and debugging?
Elaboration: An open source alternative.
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
There is also a TextMate bundle for Mathematica:
TextMate is for Mac only, but this bundle work in other editors like Sublime Text (multi platform) (windows)
Another alternative is the IntelliJ IDEA IDE with the Mathematica plugin. See this post for details:
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.
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.
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.
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.
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
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.