Design Goals

Why did I do this editor?

Here are some reasons.

Show that this can be done in Java!

That is, Java can provide a development system for a feature rich and fast application. Java has been criticized as being slow and missing API elements that would make it suitable for real life applications. I already knew that this is not true. But I wanted to try something harder myself. I did a client for the Internet Go server before, but an editor has other design problems.

The development platform was mostly a Pentium 90 with 96 MB, Matrox Millenium 200 running Windows NT 4.0 and Java 1.1.8. I also tested on Java 1.2.1 and a Linux JDK 1.1.7 on the same machine. This is no top machine, but the editor runs at sufficient speed. The other platform I tested was a K6-2/300 with 64 MB, PCI Banshee running Windows 95 and the same combination of JDKs and Linux. This gives a better performance, of course.

Make it useful!

This may be the toughest part. There are already numerous editors around. I wrote one myself for X-Windows. Some of these editors even claim to be multi-platform, like Emacs. There are some written in Java, including the editor bean by Sun. So there should be features, which make this editor special. I tried to give it just the right balance between speed, ease of implementation and completeness in terms of features. E.g., most Java editors use the swing set, which slows them down too much. Emacs is too difficult to handle for me and most people who tried it.

Use it yourself!

Also I wanted to include the editor into other projects. An early version is already used as a viewer in the Jago project, and the editor itself will be used in a Java version of Euler, a math program I wrote.

Of course, I am using the editor as a development IDE for Java already. This keeps me informed about bugs and urgent features!

Make if free and open source!

This is to invite others to help in the development, and bring in their own ideas. Also, parts of this editor may be used in other projects. The license is similar to the Gnu License. Enhancements and bug fixes should be quick in dense releases. There will be a stable and a beta version available.

Make it fun to develop!

This is no easy development. But I took a lazy going approach without any time pressure. I started this a year ago and did not spend too much time to it, because I don't have it. All in all, it did take too much time already. However, it is fun to see this child grow more and more.

Again, Java proved to be a wonderful language for this project. This is due to the object oriented design of the language and its stable execution environment. I must admit that I did too often undermine the object oriented thinking and took a pragmatic approach, only to regret this some time later.