I write Java using the free Borland Java "Foundation" java development system. I highly recommend this. Here's a link:
Borland Java programming system downloads (I use "Foundation")

When one gets past a certain level of complexity, it becomes necessary to use a computer to facilitate calculations in Geometric algebra. For that reason, I wrote a Java applet that I use for this sort of thing: (bad instructions follow)

Your browser doesn't seem to support applets! Maybe you should get a new one. I use Microsoft's Internet Explorer.

Instructions: Most of the documentation is in the source code, which I am making available by download from the Yahoo "Euclidian Relativity" website: http://groups.yahoo.com/group/euclideanrelativity/files/

In brief, this GA calculator includes basis vectors i, x, y, z, s and t. You may adjust the signature of each of these basis vectors to be +/- 1 by push buttons at the top of the applet.

You may specify each of these basis vectors to be "geometric" or "notational". The geometric vectors in a clifford algebra are the ones that anticommute with each other, these are the only ones that most people talk about. What I call the "notational" vectors are the basis vectors for stuff like imaginary numbers and the like.

When the applet starts, "i" is the only notational vector. It gives a "complexification" of the algebra. If you want to do computations with a real GA, then simply don't make any of your values complex. Similarly, if you don't want to include the hidden dimension "s", then simply don't use it in your calculations. Of the geometric basis vectors, I've chosen the startup signature to be +1 for x,y,z and s, and -1 for t. This is opposite to what Hestenes uses in the "Space Time Algebra", but I like it better for various reasons.

The calculator has a memory of 26 GA values, "A" to "Z". Since there are 6 basis vectors (including notational ones), each of these 26 GA values consists of 2**6 = 64 real (double precision) numbers. One types commands in the upper pane. Upon typing return, the command is executed and the result is printed in the lower pane. You can use the usual Windows control keys to capture text in either pane and to paste it into the upper pane.

There are no parentheses and all calculations are computed from the left to the right. All commands consist of an assignment of the form X=.... where "X" is any capital letter (corresponding to one of the 26 GA values in memory) and "...." is a string of constants or capital letters, separated by operations. Constants are defined as real numbers followed by a sequence of basis vectors. For example, 1.4ixy. The constant may or may not have a decimal point. The sequence of basis vectors is ignored (which is contrary to the rules for the GA, but was easier to code), so that "xy" and "yx" both mean, in fact, "xy".

As an example of a calculation, let us use the startup GA geometry and compute (1+xt)/2, which is an idempotent. We will place this value in the "L" and then square it to see that it is idempotent:

L=1.0+xt*0.50
L=L*L

The result of the calculation will be shown in the bottom pane as:

L=0.5+0.5xt
L=0.5+0.5xt

Known bug: Sometimes the parser loses the last character in a command. I always end a command with a character that doesn't matter, such as the zero of the above example, or a blank. If you wade through the java and figure out why it does this, please do tell. Also, the source code is copyrighted, "no rights reserved", which means that you can do what you like with it.

The Java applet was written using Borland's free Java development program, "Foundation JBuilder" which I highly recommend and applaud. It is available as a free download here:
http://www.borland.com/jbuilder/

If you use this applet for anything more than a few simple things you will want to write your own commands. I have already implemented a bunch of them. They are documented (poorly) in the source code. For example, the command "A~B" causes the scalar part of A to be used to normalize B. I forget why I needed this. It had something to do with when I was (fruitlessly) looking for GA idempotents that had real portions similar to the charges of quarks. I eventually deduced that all idempotents had real parts of the form n*2^-m, which, sure enough, was already well known to be impossible by the mathematicians. Anyway, you get the idea. When you want something new, go to the Java source and modify it to make the calculator do what you want.