After some hard work with Simon Weitzhofer, an undergraduate student at Johannes Kepler University, Linz, Austria, we finally published a GeoGebraWeb version which contains a built-in computer algebra system (CAS), “binary the same” to the desktop version of GeoGebra.
Ted Kosan, a pioneer of converting computer algebra systems from different languages to others, was one of the first hard worker in this long story. Ted, the lead developer of MathPiper, also did a great effort on converting YaCAS into Java, back in 2008. Because of Reduce has been open sourced since December 2008, and a Java interface (JLisp) was also available for it, Ted decided to try to convert it to JavaScript by using the Google Web Toolkit “Java to JavaScript” compiler (GWT). His adventure was inspired by Gábor Ancsin, a former web designer, who had surprisingly great results in compiling the GeoGebra source code into JavaScript with GWT. Now Ted’s work is a part of Reduce under the name “JSLisp“, and it is also built into GeoGebra as “GGBReduce“. With Ted’s help we have been using the Java version of Reduce by inserting its bytecode stream for the desktop platform, and finally we were also able to put the same bytecode into GeoGebraWeb as a static text. (In fact, Ted was already finished with his prototype back in May 2011.)
To try it out, the user should simply go to the alpha test page of the web platform version of GeoGebra. Then enter
f(x)=x^2*sin(x)
into the input box, press ENTER, and as another command, enter
g(x)=f'(x)
In some seconds (depending on the internet connection and the machine speed, and also the browser) the output g(x)=x^2*cos(x)+2x*sin(x) will be shown in the Algebra View on the left. Google Chrome users may want to try to install GeoGebra from the Google webstore as well to make all of this work offline on their workstation, too.
Yes! No magic any longer – a full featured computer algebra system fits in HTML5 and JavaScript. The next step is to do it faster – to offer convenient use for smartphone users as well. A smartphone can be really slow, and have just limited resources, so this sounds another great challenge.
[…] I forgot my own introduction in the first post, but maybe it is more important for me that I work in a great team. Balazs already wrote a few […]