The goal of the AGNULA project is to create an entirely Free Software GNU/Linux distribution for professional audio users. When setting out with this goal, we didn't know how far we would come, but it turns out that it is indeed possible. As it so often is the case, one problem remains to be solved.
The "Java issues" often mentioned in several places is not a technical problem of Java as a programming language. It is rather in the way Java is being developed and maintained as a proprietary operating base.
There are two major Java implementations currently in use, one maintained by IBM, the other by Sun. Both of them may come without charge, but are without the freedom that would make them qualify as Free Software.
Consequently, all software written in Java — even software under a Free Software license, such as the GNU General Public License (GPL) or the BSD license — running on such a platform will put the users freedom at risk. A situation quite comparable to Free Software running on Microsoft Windows.
Alternative approaches to provide Free Software Java platforms exist, but due to the proprietary nature of the Java implementations, Free Software needs to re-engineer what the proprietary platforms have implemented after they have been released, putting Free Software implementations at a disadvantage. Furthermore, this is a tedious task that not many developers wish to undertake.
As a result, the proprietary Java platforms tend to be more feature rich than their Free Software counterparts, tempting programmers to make use of their advanced features.
When programs make use of these advanced features, they will not run on Free Software Java implementations. In fact they will often only run with one of the two major proprietary implementations. A situation comparable to Free Software that only runs on Microsoft Windows and cannot be made to run on a Free Software operating system.
If you seek more detailed information about the status of Free Software Java implementations, the following link should be useful:
Effect on AGNULA
There is only one package in AGNULA that has a dependency to a proprietary Java implementation. Unfortunately this is a very valuable project called jMax, written by IRCAM, one of the AGNULA project partners.
The project itself consists of a server written in C and licensed under the GNU General Public License (GPL), and a client written in Java, also licensed under the GNU General Public License.
So all that would be required is to make sure the Java client does not have proprietary dependencies.
What we have tried
Convince Sun to release their Java implementation as Free Software:
Because Microsofts .NET initative seems very likely to become the "Java killer," releasing their Java implementation as Free Software would greatly increase Suns chances to remain an important player in the market. Although there are some people inside Sun who would like to do this, it appears unlikely this will happen soon. Suns recent announcement to support Free Software Java implementations helps, but it is not enough to solve the immediate problem.
Make the jMax GUI use the GNU Java tools:
IRCAM has spent some time evaluating the possibilities and found that the GNU Java Compiler (gjc) would be up to the job, unfortunately the libraries needed for the GUI are still too rudimentary. The simplest solution along this route would have been to add the necessary features to GNU Classpath, a task that has been estimated with four person-years. Unfortunately IRCAM does not have the resources to do this and by European Commission rules, AGNULA can only finance integration, not development.
Create an alternative non-Java GUI:
Since it seems unlikely we'll be able to stick with Java and keep the project entirely free, the last alternative appears to be the writing of another GUI based upon a different programming language.
After some discussion it has been decided that Python would be a good choice for a platform independent Free Software GUI.
There are several possible ways to solve this problem that we have explored:
Creating a Python GUI for jMax
For the same reasons mentioned above, AGNULA cannot directly fund development of a Python GUI, nor can IRCAM afford the resources necessary for full development. We are determined to not fall short of our goal, so we will not include any of the proprietary Java runtime environments. Which is why we are asking for volunteers.
Call for volunteers
If you are a Python developer or somebody with an interest in music applications, please help us develop pyMax, the Python GUI for jMax, so we can offer this as another fully functional Free Software audio application on AGNULA.
IRCAM cannot do all the work themselves, but they are willing to offer volunteers priority support (answer time within 24hrs on working days) and all help that they can provide.
Should you wish to help with this problem, please subscribe to the IRCAM jMax development list and let people know that you want to help: