Erlang + REBOL gui
A NOTE FROM THE AUTHOR (2010)
I am keeping this site up as an example of communicating between Erlang and other programs via TCP/IP. However, I do not recommend this approach if you are intent on making a GUI interface for an Erlang program. Invest the time to learn how to use the wx module instead. The wx model is a very full implementation of wxWidgets. The wx model internalizes the connection between the GUI and the Erlang code. Learning wx isn't easy but it is a lot easier than learning an entirely new language (i.e. Rebol).
Also, note that the images on this site reference subdomain that's no longer current. Instead of erlbol.douglasedmunds.com, the correct reference should be erlbol.dougedmunds.com. I don't expect to update the images at any time in the near future. Sorry for the confusion.
Erlbol has two sides: Erlbol-Erlang (server) and Erlbol-REBOL (client). The sides communicate using native Erlang binary format, over a TCP/IP connection. Erlbol-Erlang, is an interface between any Erlang module and the connection. It is responsible for assuring that data that is received is properly resolved into the correct data types used by the Erlang module.
The primary Erlbol-REBOL functionality is the ability to read and write Erlang binary format (most supported datatypes). The secondary functionality is to connect that data to a GUI. The primary functionality should be left alone. A programmer can look at the various modifications made to construct a GUI appropriate for his/her project. The programmer should only use the GUI for user data entry and display of results. Do all the 'work' on the Erlang side.
With proper modification, any Erlang program that either needs input or gives feedback can be 'plugged-in' on the Erlbol-Erlang side. The functionality (and correctness) of the programmer's Erlang module is not at risk when using Erlbol. The programmer takes on the responsiblity to assure that the correct datatypes are passed into his Erlang module.
Unmodified Erlang module <- -> Erlbol-Erlang Server <- TCP/iP -> Erlbol-Rebol Client
Description of files in Downloads
1. erlbol.erl and erlbol.r are the base demo files.
2. erlbol_mod.erl and erlbol_mod.r demonstrate how to add a new Erlang function to the interface.
3. erlbol_list1.r and erlbol_list2.r provide alternative GUIs for the erlbol.erl server.
The demo code has been successfully tested on XP, with these versions:
- Erlang/OTP R13A (March 17, 2009)
- REBOL/View 220.127.116.11.1 (14-Mar-2008)
REBOL is used for its ability to create graphical user interfaces on the fly with minimal coding. Also, it is free (standard version) and is OS independent. REBOL is not opensource. REBOL resembles LISP code without the parentheses (but it has its own keywords).